{"version":3,"file":"main.js","mappings":"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,kDAAkD;QAC/D,qBAAqB,EAAE,0DAA0D;QACjF,SAAS,EAAE,kDAAkD;QAC7D,UAAU,EAAE,+CAA+C;QAC3D,cAAc,EAAE,0EAA0E;QAC1F,aAAa,EAAE,sCAAsC;QACrD,4BAA4B,EAAE,wDAAwD;KACvF,CAAC;CACH;AAEM,MAAM,WAAW,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;AClJS;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;;;;;;;;;;ACAA","sources":["./src/app/CommonComponents/Dynamic-Kendo-UI/Dynamic-kendo-Grid.component.ts","./src/app/CommonComponents/Dynamic-Kendo-UI/Dynamic-kendo-Grid.component.html","./src/app/CommonComponents/Dynamic-Kendo-UI/Service/Dynamic-kendo.service.ts","./src/app/CommonComponents/authcallback/auth-callback.components.ts","./src/app/CommonComponents/authcallback/index.ts","./src/app/CommonComponents/autocomplete-component/autocomplete.component.ts","./src/app/CommonComponents/autocomplete-component/autocomplete.component.html","./src/app/CommonComponents/create-communication/create-communication.component.ts","./src/app/CommonComponents/create-communication/create-communication.component.html","./src/app/CommonComponents/datepicker-filter/datepicker-filter.component.ts","./src/app/CommonComponents/datepicker-filter/datepicker-filter.component.html","./src/app/CommonComponents/dci-filter/dci-filter.component.ts","./src/app/CommonComponents/dci-filter/dci-filter.component.html","./src/app/CommonComponents/document-message-grid/document-message-view/document-message-view.component.ts","./src/app/CommonComponents/document-message-grid/document-message-view/document-message-view.component.html","./src/app/CommonComponents/dropdown-filter/dropdown-filter.component.ts","./src/app/CommonComponents/dropdown-filter/dropdown-filter.component.html","./src/app/CommonComponents/dynamic-form/components/EIPDatePicker/eipdatepicker.component.ts","./src/app/CommonComponents/dynamic-form/components/EIPDatePicker/eipdatepicker.component.html","./src/app/CommonComponents/dynamic-form/components/EIPDateRange/eipdaterange.component.ts","./src/app/CommonComponents/dynamic-form/components/EIPDateRange/eipdaterange.component.html","./src/app/CommonComponents/dynamic-form/components/dynamic-field/dynamic-field.directive.ts","./src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component.ts","./src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component.html","./src/app/CommonComponents/dynamic-form/components/input/input.component.ts","./src/app/CommonComponents/dynamic-form/components/input/input.component.html","./src/app/CommonComponents/dynamic-form/components/label/label.component.ts","./src/app/CommonComponents/dynamic-form/components/label/label.component.html","./src/app/CommonComponents/dynamic-form/components/select/select.component.ts","./src/app/CommonComponents/dynamic-form/components/select/select.component.html","./src/app/CommonComponents/edms-cart/edms-cart.component.ts","./src/app/CommonComponents/edms-cart/edms-cart.component.html","./src/app/CommonComponents/edms-common-header/edms-common-header.component.ts","./src/app/CommonComponents/edms-common-header/edms-common-header.component.html","./src/app/CommonComponents/file-compare-component/file-compare.component.ts","./src/app/CommonComponents/file-compare-component/file-compare.component.html","./src/app/CommonComponents/file-list/file-list.component.ts","./src/app/CommonComponents/file-list/file-list.component.html","./src/app/CommonComponents/file-upload/drag-and-drop.directive.ts","./src/app/CommonComponents/file-upload/file-upload.component.ts","./src/app/CommonComponents/file-upload/file-upload.component.html","./src/app/CommonComponents/footer/footer.component.ts","./src/app/CommonComponents/footer/footer.component.html","./src/app/CommonComponents/forge-viewer/forge-viewer.component.ts","./src/app/CommonComponents/forge-viewer/forge-viewer.component.html","./src/app/CommonComponents/header/header-calculator/header-calculator.component.ts","./src/app/CommonComponents/header/header-calculator/header-calculator.component.html","./src/app/CommonComponents/header/header-notes/header-notes.component.ts","./src/app/CommonComponents/header/header-notes/header-notes.component.html","./src/app/CommonComponents/header/header.component.ts","./src/app/CommonComponents/header/header.component.html","./src/app/CommonComponents/header/helpdesk-support-details/helpdesk-support-details.component.ts","./src/app/CommonComponents/header/helpdesk-support-details/helpdesk-support-details.component.html","./src/app/CommonComponents/loader/loader.component.ts","./src/app/CommonComponents/loader/loader.component.html","./src/app/CommonComponents/optionsscroll/options-scroll.directive.ts","./src/app/CommonComponents/project-elements/project-elements.component.ts","./src/app/CommonComponents/project-elements/project-elements.component.html","./src/app/Modules/authentication/authentication-routing.module.ts","./src/app/Modules/authentication/dialogs/Forget-Password-OTP-Verification/Change-Password-Otp-Verification.component.ts","./src/app/Modules/authentication/dialogs/Forget-Password-OTP-Verification/Change-Password-Otp-Verification.component.html","./src/app/Modules/authentication/forget-password/forget-password.component.ts","./src/app/Modules/authentication/forget-password/forget-password.component.html","./src/app/Modules/authentication/login/login-page.component.ts","./src/app/Modules/authentication/login/login-page.component.html","./src/app/Modules/authentication/mail-redirect-handler/mail-redirect-handler.component.ts","./src/app/Modules/communication/attachment-dialog/attachment-dialog.component.ts","./src/app/Modules/communication/attachment-dialog/attachment-dialog.component.html","./src/app/Modules/communication/attachments-list/attachments-list.component.ts","./src/app/Modules/communication/attachments-list/attachments-list.component.html","./src/app/Modules/communication/common-cart/common-cart.component.ts","./src/app/Modules/communication/common-cart/common-cart.component.html","./src/app/Modules/communication/communication-routing.ts","./src/app/Modules/communication/create-message/create-message.component.ts","./src/app/Modules/communication/create-message/create-message.component.html","./src/app/Modules/communication/distribution-list/distribution-list.component.ts","./src/app/Modules/communication/distribution-list/distribution-list.component.html","./src/app/Modules/communication/document-cart/document-cart.component.ts","./src/app/Modules/communication/document-cart/document-cart.component.html","./src/app/Modules/communication/mail-advance-search/mail-advance-search.component.ts","./src/app/Modules/communication/mail-advance-search/mail-advance-search.component.html","./src/app/Modules/communication/mail-edit/mail-edit.component.ts","./src/app/Modules/communication/mail-edit/mail-edit.component.html","./src/app/Modules/communication/mail-history-log/mail-history-log.component.ts","./src/app/Modules/communication/mail-history-log/mail-history-log.component.html","./src/app/Modules/communication/mail-status-log/mail-status-log.component.ts","./src/app/Modules/communication/mail-status-log/mail-status-log.component.html","./src/app/Modules/communication/mail-view/mail-view.component.ts","./src/app/Modules/communication/mail-view/mail-view.component.html","./src/app/Modules/communication/mail/mail.component.ts","./src/app/Modules/communication/mail/mail.component.html","./src/app/Modules/communication/message-cart/message-cart.component.ts","./src/app/Modules/communication/message-cart/message-cart.component.html","./src/app/Modules/communication/message-group/message-group.component.ts","./src/app/Modules/communication/message-group/message-group.component.html","./src/app/Modules/communication/reply-message/reply-message.component.ts","./src/app/Modules/communication/reply-message/reply-message.component.html","./src/app/Modules/communication/search-dialog/search-dialog.component.ts","./src/app/Modules/communication/search-dialog/search-dialog.component.html","./src/app/Modules/communication/signature/signature.component.ts","./src/app/Modules/communication/signature/signature.component.html","./src/app/Modules/configuration/Drawing-Inactive-Response/Drawing-Inactive-Response.components.ts","./src/app/Modules/configuration/Drawing-Inactive-Response/Drawing-Inactive-Response.components.html","./src/app/Modules/configuration/Drawing-Inactive/Drawing-Inactive.components.ts","./src/app/Modules/configuration/Drawing-Inactive/Drawing-Inactive.components.html","./src/app/Modules/configuration/attribute-master/attribute-master.component.ts","./src/app/Modules/configuration/attribute-master/attribute-master.component.html","./src/app/Modules/configuration/business-group-link/business-group-link.component.ts","./src/app/Modules/configuration/business-group-link/business-group-link.component.html","./src/app/Modules/configuration/checklist-item/checklist-item.component.ts","./src/app/Modules/configuration/checklist-item/checklist-item.component.html","./src/app/Modules/configuration/checklist/checklist.component.ts","./src/app/Modules/configuration/checklist/checklist.component.html","./src/app/Modules/configuration/configuration-routing.module.ts","./src/app/Modules/configuration/delegate-access/delegate-access.component.ts","./src/app/Modules/configuration/delegate-access/delegate-access.component.html","./src/app/Modules/configuration/delete-documents/delete-document.components.ts","./src/app/Modules/configuration/delete-documents/delete-document.components.html","./src/app/Modules/configuration/dialogs/Copy-Bulk-Checklist-Response/Copy-Bulk-Checklist-Response.components.ts","./src/app/Modules/configuration/dialogs/Copy-Bulk-Checklist-Response/Copy-Bulk-Checklist-Response.components.html","./src/app/Modules/configuration/dialogs/Copy-Bulk-Checklist/Copy_Bulk_Checklist.ts","./src/app/Modules/configuration/dialogs/Copy-Bulk-Checklist/Copy_Bulk_Checklist.html","./src/app/Modules/configuration/dialogs/Delete-Document-Response/Delete-Document-Response.components.ts","./src/app/Modules/configuration/dialogs/Delete-Document-Response/Delete-Document-Response.components.html","./src/app/Modules/configuration/dialogs/add-element-link-dialog/add-element-link-dialog.component.ts","./src/app/Modules/configuration/dialogs/add-element-link-dialog/add-element-link-dialog.component.html","./src/app/Modules/configuration/dialogs/add-static-element-link-dialog/add-static-element-link-dialog.component.ts","./src/app/Modules/configuration/dialogs/add-static-element-link-dialog/add-static-element-link-dialog.component.html","./src/app/Modules/configuration/dialogs/project-workflow-status-dialog/project-workflow-status-dialog.component.ts","./src/app/Modules/configuration/dialogs/project-workflow-status-dialog/project-workflow-status-dialog.component.html","./src/app/Modules/configuration/document-revision-link/document-revision-link.component.ts","./src/app/Modules/configuration/document-revision-link/document-revision-link.component.html","./src/app/Modules/configuration/element-details-link/element-details-link.component.ts","./src/app/Modules/configuration/element-details-link/element-details-link.component.html","./src/app/Modules/configuration/element-link/element-link.component.ts","./src/app/Modules/configuration/element-link/element-link.component.html","./src/app/Modules/configuration/map-role-feature/map-role-feature.component.ts","./src/app/Modules/configuration/map-role-feature/map-role-feature.component.html","./src/app/Modules/configuration/member-element-detail-link/member-element-detail-link.component.ts","./src/app/Modules/configuration/member-element-detail-link/member-element-detail-link.component.html","./src/app/Modules/configuration/member-role-link/member-role-link.component.ts","./src/app/Modules/configuration/member-role-link/member-role-link.component.html","./src/app/Modules/configuration/menu-role-link/menu-role-link.component.ts","./src/app/Modules/configuration/menu-role-link/menu-role-link.component.html","./src/app/Modules/configuration/number-configuration/number-configuration.component.ts","./src/app/Modules/configuration/number-configuration/number-configuration.component.html","./src/app/Modules/configuration/project-member-link/project-member-link.component.ts","./src/app/Modules/configuration/project-member-link/project-member-link.component.html","./src/app/Modules/configuration/project-tender-link/project-tender-link/project-tender-link.component.ts","./src/app/Modules/configuration/project-tender-link/project-tender-link/project-tender-link.component.html","./src/app/Modules/configuration/project-workflow-status/projectworkflowstatus.component.ts","./src/app/Modules/configuration/project-workflow-status/projectworkflowstatus.component.html","./src/app/Modules/configuration/replace-member/replace-member.component.ts","./src/app/Modules/configuration/replace-member/replace-member.component.html","./src/app/Modules/configuration/static-element-link/static-element-link.component.ts","./src/app/Modules/configuration/static-element-link/static-element-link.component.html","./src/app/Modules/configuration/tender-add/edit-configur/edit-configur.component.ts","./src/app/Modules/configuration/tender-add/edit-configur/edit-configur.component.html","./src/app/Modules/dashboard/dashboard-routing.module.ts","./src/app/Modules/dashboard/home/Home.component.ts","./src/app/Modules/dashboard/home/home.component.html","./src/app/Modules/dashboard/schedule-document-view-popup/schedule-document-view-popup.component.ts","./src/app/Modules/dashboard/schedule-document-view-popup/schedule-document-view-popup.component.html","./src/app/Modules/engineering-schedule/Pipes/loadWorkflowDetails.pipe.ts","./src/app/Modules/engineering-schedule/Pipes/show-edit-icon-pipe.pipe.ts","./src/app/Modules/engineering-schedule/Pipes/show-workflow-icon-pipe.pipe.ts","./src/app/Modules/engineering-schedule/bulk-dci-supersede/bulk-dci-supersede.component.ts","./src/app/Modules/engineering-schedule/bulk-dci-supersede/bulk-dci-supersede.component.html","./src/app/Modules/engineering-schedule/bulk-dcisupersede-result/bulk-dcisupersede-result.component.ts","./src/app/Modules/engineering-schedule/bulk-dcisupersede-result/bulk-dcisupersede-result.component.html","./src/app/Modules/engineering-schedule/bulk_schedule_upload/bulk-schedule-upload.component.ts","./src/app/Modules/engineering-schedule/bulk_schedule_upload/bulk-schedule-upload.component.html","./src/app/Modules/engineering-schedule/change-control-create/ccn-print-dialog/ccn-print/ccn-print.component.ts","./src/app/Modules/engineering-schedule/change-control-create/ccn-print-dialog/ccn-print/ccn-print.component.html","./src/app/Modules/engineering-schedule/change-control-create/change-control-create.component.ts","./src/app/Modules/engineering-schedule/change-control-create/change-control-create.component.html","./src/app/Modules/engineering-schedule/change-control/ccn-advance-search/ccn-advance-search.component.ts","./src/app/Modules/engineering-schedule/change-control/ccn-advance-search/ccn-advance-search.component.html","./src/app/Modules/engineering-schedule/change-control/ccn-view/ccn-view.component.ts","./src/app/Modules/engineering-schedule/change-control/ccn-view/ccn-view.component.html","./src/app/Modules/engineering-schedule/change-control/change-control.component.ts","./src/app/Modules/engineering-schedule/change-control/change-control.component.html","./src/app/Modules/engineering-schedule/dci-supersede/dci-supersede.component.ts","./src/app/Modules/engineering-schedule/dci-supersede/dci-supersede.component.html","./src/app/Modules/engineering-schedule/docset-revise/docset-revise.component.ts","./src/app/Modules/engineering-schedule/docset-revise/docset-revise.component.html","./src/app/Modules/engineering-schedule/engineering-schedule-routing.module.ts","./src/app/Modules/engineering-schedule/iso-dci-upload/iso-dci-upload.component.ts","./src/app/Modules/engineering-schedule/iso-dci-upload/iso-dci-upload.component.html","./src/app/Modules/engineering-schedule/schedule-creation/schedule-creation.component.ts","./src/app/Modules/engineering-schedule/schedule-creation/schedule-creation.component.html","./src/app/Modules/engineering-schedule/schedule-definition-excel-upload/schedule-definition-excel-upload.component.ts","./src/app/Modules/engineering-schedule/schedule-definition-excel-upload/schedule-definition-excel-upload.component.html","./src/app/Modules/engineering-schedule/schedule-definition/schedule-definition.component.ts","./src/app/Modules/engineering-schedule/schedule-definition/schedule-definition.component.html","./src/app/Modules/engineering-schedule/schedule-document-mail-list/schedule-document-mail-list.component.ts","./src/app/Modules/engineering-schedule/schedule-document-mail-list/schedule-document-mail-list.component.html","./src/app/Modules/engineering-schedule/schedule-document-revision-history/schedule-document-revision-history.component.ts","./src/app/Modules/engineering-schedule/schedule-document-revision-history/schedule-document-revision-history.component.html","./src/app/Modules/engineering-schedule/schedule-edit/schedule-edit.component.ts","./src/app/Modules/engineering-schedule/schedule-edit/schedule-edit.component.html","./src/app/Modules/engineering-schedule/schedule-excel-upload/schedule-excel-upload.component.ts","./src/app/Modules/engineering-schedule/schedule-excel-upload/schedule-excel-upload.component.html","./src/app/Modules/engineering-schedule/schedule-list/schedule-list.component.ts","./src/app/Modules/engineering-schedule/schedule-list/schedule-list.component.html","./src/app/Modules/engineering-schedule/schedule-startworkflow/schedule-startworkflow.component.ts","./src/app/Modules/engineering-schedule/schedule-startworkflow/schedule-startworkflow.component.html","./src/app/Modules/engineering-schedule/schedule-view/schedule-view.component.ts","./src/app/Modules/engineering-schedule/schedule-view/schedule-view.component.html","./src/app/Modules/engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component.ts","./src/app/Modules/engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component.html","./src/app/Modules/engineering-schedule/standard-drawing-dialog/standard-drawing-dialog.component.ts","./src/app/Modules/engineering-schedule/standard-drawing-dialog/standard-drawing-dialog.component.html","./src/app/Modules/engineering-schedule/standard-drawing/standard-drawing-link/standard-drawing-link.component.ts","./src/app/Modules/engineering-schedule/standard-drawing/standard-drawing-link/standard-drawing-link.component.html","./src/app/Modules/engineering-schedule/standard-drawing/standard-drawing.component.ts","./src/app/Modules/engineering-schedule/standard-drawing/standard-drawing.component.html","./src/app/Modules/layouts/app-layout/app-home-layout.component.ts","./src/app/Modules/layouts/app-layout/app-home-layout.component.html","./src/app/Modules/layouts/auth-layout/auth-layout.component.ts","./src/app/Modules/layouts/auth-layout/auth-layout.component.html","./src/app/Modules/layouts/dashboard-layout/dashboard-layout.component.ts","./src/app/Modules/layouts/dashboard-layout/dashboard-layout.component.html","./src/app/Modules/master/add/edit-menu/edit-menu.component.ts","./src/app/Modules/master/add/edit-menu/edit-menu.component.html","./src/app/Modules/master/application-menu/application-menu.component.ts","./src/app/Modules/master/application-menu/application-menu.component.html","./src/app/Modules/master/dialogs/Enable_Similar_Project/Enable_Similar_Project.component.ts","./src/app/Modules/master/dialogs/Enable_Similar_Project/Enable_Similar_Project.component.html","./src/app/Modules/master/dialogs/elementdetails-dialog/edit-elementdetails-dialog.component.ts","./src/app/Modules/master/dialogs/elementdetails-dialog/edit-elementdetails-dialog.component.html","./src/app/Modules/master/dialogs/members-dialog/edit-member-dialog.component.ts","./src/app/Modules/master/dialogs/members-dialog/edit-member-dialog.component.html","./src/app/Modules/master/dialogs/organization-dialog/edit-organization-dialog.component.ts","./src/app/Modules/master/dialogs/organization-dialog/edit-organization-dialog.component.html","./src/app/Modules/master/dialogs/project-dialog/edit-project.component.ts","./src/app/Modules/master/dialogs/project-dialog/edit-project.component.html","./src/app/Modules/master/elementdetails/elementdetails.component.ts","./src/app/Modules/master/elementdetails/elementdetails.component.html","./src/app/Modules/master/elements/elements.component.ts","./src/app/Modules/master/elements/elements.component.html","./src/app/Modules/master/master-routing.module.ts","./src/app/Modules/master/members/members.component.ts","./src/app/Modules/master/members/members.component.html","./src/app/Modules/master/organization/organization.component.ts","./src/app/Modules/master/organization/organization.component.html","./src/app/Modules/master/projects/projects.component.ts","./src/app/Modules/master/projects/projects.component.html","./src/app/Modules/master/tender-quantity-add-data/tender-quantity-add-data.component.ts","./src/app/Modules/master/tender-quantity-add-data/tender-quantity-add-data.component.html","./src/app/Modules/master/tender-quantity/tender-quantity.component.ts","./src/app/Modules/master/tender-quantity/tender-quantity.component.html","./src/app/Modules/master/transmittal-template-copy/transmittal-template-copy.component.ts","./src/app/Modules/master/transmittal-template-copy/transmittal-template-copy.component.html","./src/app/Modules/master/transmittal-template/transmittal-template.component.ts","./src/app/Modules/master/transmittal-template/transmittal-template.component.html","./src/app/Modules/peer-review/add-comments/add-comments.component.ts","./src/app/Modules/peer-review/add-comments/add-comments.component.html","./src/app/Modules/peer-review/add-impacts/add-impacts.component.ts","./src/app/Modules/peer-review/add-impacts/add-impacts.component.html","./src/app/Modules/peer-review/add-response/add-impact-dialog/add-impact-dialog.component.ts","./src/app/Modules/peer-review/add-response/add-impact-dialog/add-impact-dialog.component.html","./src/app/Modules/peer-review/add-response/add-response.component.ts","./src/app/Modules/peer-review/add-response/add-response.component.html","./src/app/Modules/peer-review/dashboard/dashboard.component.ts","./src/app/Modules/peer-review/dashboard/dashboard.component.html","./src/app/Modules/peer-review/peer-review-routing.module.ts","./src/app/Modules/peer-review/pipe/sessionpipe.pipe.ts","./src/app/Modules/peer-review/pr-invitation/pr-invitation.component.ts","./src/app/Modules/peer-review/pr-invitation/pr-invitation.component.html","./src/app/Modules/peer-review/reports/final-report/final-report.component.ts","./src/app/Modules/peer-review/reports/final-report/final-report.component.html","./src/app/Modules/peer-review/reports/peer-review-comments-summary/peer-review-comments-summary.component.ts","./src/app/Modules/peer-review/reports/peer-review-comments-summary/peer-review-comments-summary.component.html","./src/app/Modules/peer-review/review-approval/review-approval.component.ts","./src/app/Modules/peer-review/review-approval/review-approval.component.html","./src/app/Modules/peer-review/review-comments/review-comments.component.ts","./src/app/Modules/peer-review/review-comments/review-comments.component.html","./src/app/Modules/peer-review/review-creation/review-creation.component.ts","./src/app/Modules/peer-review/review-creation/review-creation.component.html","./src/app/Modules/peer-review/review-impact/review-impact.component.ts","./src/app/Modules/peer-review/review-impact/review-impact.component.html","./src/app/Modules/peer-review/review-list/review-list.component.ts","./src/app/Modules/peer-review/review-list/review-list.component.html","./src/app/Modules/peer-review/review-response/review-response.component.ts","./src/app/Modules/peer-review/review-response/review-response.component.html","./src/app/Modules/peer-review/review-status/review-status.component.ts","./src/app/Modules/peer-review/review-status/review-status.component.html","./src/app/Modules/peer-review/review-view/review-view.component.ts","./src/app/Modules/peer-review/review-view/review-view.component.html","./src/app/Modules/peer-review/time-picker/time-picker.component.ts","./src/app/Modules/peer-review/time-picker/time-picker.component.html","./src/app/Modules/report/Communication-Protocol/Communication-Protocol.component.ts","./src/app/Modules/report/Communication-Protocol/Communication-Protocol.component.html","./src/app/Modules/report/CommunicationReports/message-sent-count/message-sent-count.component.ts","./src/app/Modules/report/CommunicationReports/message-sent-count/message-sent-count.component.html","./src/app/Modules/report/CommunicationReports/message-status-summary/message-status-summary.component.ts","./src/app/Modules/report/CommunicationReports/message-status-summary/message-status-summary.component.html","./src/app/Modules/report/DocumentRepositoryReport/document-count/document-count.component.ts","./src/app/Modules/report/DocumentRepositoryReport/document-count/document-count.component.html","./src/app/Modules/report/DocumentRepositoryReport/document-summary-report.component.ts","./src/app/Modules/report/DocumentRepositoryReport/document-summary-report.component.html","./src/app/Modules/report/Drawings_Schedule_Adherence_report/Drawings_Adherence_report.component.ts","./src/app/Modules/report/Drawings_Schedule_Adherence_report/Drawings_Adherence_report.component.html","./src/app/Modules/report/ScheduleDocumentReports/erm-reports/erm-reports.component.ts","./src/app/Modules/report/ScheduleDocumentReports/erm-reports/erm-reports.component.html","./src/app/Modules/report/ScheduleDocumentReports/schedule-document-reports/schedule-document-reports.component.ts","./src/app/Modules/report/ScheduleDocumentReports/schedule-document-reports/schedule-document-reports.component.html","./src/app/Modules/report/ccn-summary-report/ccn-summary-report.component.ts","./src/app/Modules/report/ccn-summary-report/ccn-summary-report.component.html","./src/app/Modules/report/dci-status-summary-report/dci-status-summary-report.component.ts","./src/app/Modules/report/dci-status-summary-report/dci-status-summary-report.component.html","./src/app/Modules/report/drawing-dashboard/drawing-dashboard.component.ts","./src/app/Modules/report/drawing-dashboard/drawing-dashboard.component.html","./src/app/Modules/report/final-drawing/final-drawing.component.ts","./src/app/Modules/report/final-drawing/final-drawing.component.html","./src/app/Modules/report/flex-report/flex-manhour/flex-manhour.component.ts","./src/app/Modules/report/flex-report/flex-manhour/flex-manhour.component.html","./src/app/Modules/report/flex-report/flex-report.component.ts","./src/app/Modules/report/flex-report/flex-report.component.html","./src/app/Modules/report/pending-drawing-status/pending-drawing-status.component.ts","./src/app/Modules/report/pending-drawing-status/pending-drawing-status.component.html","./src/app/Modules/report/productivity-report/documentwise-productivity/documentwise-productivity.component.ts","./src/app/Modules/report/productivity-report/documentwise-productivity/documentwise-productivity.component.html","./src/app/Modules/report/productivity-report/productivity-report/productivity-report.component.ts","./src/app/Modules/report/productivity-report/productivity-report/productivity-report.component.html","./src/app/Modules/report/project-dashboard/project-dashboard.component.ts","./src/app/Modules/report/project-dashboard/project-dashboard.component.html","./src/app/Modules/report/project-dashboard/project-progress-dashboard/project-progress-dashboard.component.ts","./src/app/Modules/report/project-dashboard/project-progress-dashboard/project-progress-dashboard.component.html","./src/app/Modules/report/project-dashboard/stage-wise-dashboard/stage-wise-dashboard.component.ts","./src/app/Modules/report/project-dashboard/stage-wise-dashboard/stage-wise-dashboard.component.html","./src/app/Modules/report/qpap-consolidation-report/qpap-consolidation-report.component.ts","./src/app/Modules/report/qpap-consolidation-report/qpap-consolidation-report.component.html","./src/app/Modules/report/report-routing.module.ts","./src/app/Modules/report/s-curve/s-curve.component.ts","./src/app/Modules/report/s-curve/s-curve.component.html","./src/app/Modules/repositorydocument/Pipe/document-check-delete.pipe.ts","./src/app/Modules/repositorydocument/Pipe/document-check-edit.pipe.ts","./src/app/Modules/repositorydocument/Pipe/document-check-supersede.pipe.ts","./src/app/Modules/repositorydocument/Pipe/ishare.pipe.ts","./src/app/Modules/repositorydocument/bulkupload/bulkupload.component.ts","./src/app/Modules/repositorydocument/bulkupload/bulkupload.component.html","./src/app/Modules/repositorydocument/document-inputs/document-inputs.component.ts","./src/app/Modules/repositorydocument/document-inputs/document-inputs.component.html","./src/app/Modules/repositorydocument/document-mail-list/document-mail-list.component.ts","./src/app/Modules/repositorydocument/document-mail-list/document-mail-list.component.html","./src/app/Modules/repositorydocument/document-repositoryhistory-dialog/document-repositoryhistory-dialog.component.ts","./src/app/Modules/repositorydocument/document-repositoryhistory-dialog/document-repositoryhistory-dialog.component.html","./src/app/Modules/repositorydocument/document-review/document-review.component.ts","./src/app/Modules/repositorydocument/document-review/document-review.component.html","./src/app/Modules/repositorydocument/document-revision-history/document-revision-history.component.ts","./src/app/Modules/repositorydocument/document-revision-history/document-revision-history.component.html","./src/app/Modules/repositorydocument/document-view/document-view.component.ts","./src/app/Modules/repositorydocument/document-view/document-view.component.html","./src/app/Modules/repositorydocument/document/document.component.ts","./src/app/Modules/repositorydocument/document/document.component.html","./src/app/Modules/repositorydocument/employee-cart-dialog/employee-cart-dialog.component.ts","./src/app/Modules/repositorydocument/employee-cart-dialog/employee-cart-dialog.component.html","./src/app/Modules/repositorydocument/excelupload/excelupload.component.ts","./src/app/Modules/repositorydocument/excelupload/excelupload.component.html","./src/app/Modules/repositorydocument/repositorydocument-routing.ts","./src/app/Modules/transmittal/attachments-list/attachments-list.component.ts","./src/app/Modules/transmittal/attachments-list/attachments-list.component.html","./src/app/Modules/transmittal/bulkdtn/bulkdtn.component.ts","./src/app/Modules/transmittal/bulkdtn/bulkdtn.component.html","./src/app/Modules/transmittal/delay-reason/delayreason/delayreason.component.ts","./src/app/Modules/transmittal/delay-reason/delayreason/delayreason.component.html","./src/app/Modules/transmittal/document-cart/document-cart.component.ts","./src/app/Modules/transmittal/document-cart/document-cart.component.html","./src/app/Modules/transmittal/document-grid/document-view-grid/document-view-grid.component.ts","./src/app/Modules/transmittal/document-grid/document-view-grid/document-view-grid.component.html","./src/app/Modules/transmittal/dtnrelease/dtnrelease.component.ts","./src/app/Modules/transmittal/dtnrelease/dtnrelease.component.html","./src/app/Modules/transmittal/pipe/i-get-member-name-pipe.pipe.ts","./src/app/Modules/transmittal/templates/hci-transmittal/hci-transmittal-template.component.ts","./src/app/Modules/transmittal/templates/hci-transmittal/hci-transmittal-template.component.html","./src/app/Modules/transmittal/templates/template_common/transmittal-template-common.component.ts","./src/app/Modules/transmittal/templates/template_common/transmittal-template-common.component.html","./src/app/Modules/transmittal/transmittal-creation/transmittal-creation.component.ts","./src/app/Modules/transmittal/transmittal-creation/transmittal-creation.component.html","./src/app/Modules/transmittal/transmittal-edit/transmittal-edit.component.ts","./src/app/Modules/transmittal/transmittal-edit/transmittal-edit.component.html","./src/app/Modules/transmittal/transmittal-list/transmittal-list.component.ts","./src/app/Modules/transmittal/transmittal-list/transmittal-list.component.html","./src/app/Modules/transmittal/transmittal-routing.module.ts","./src/app/Modules/transmittal/transmittal-template/transmittal-template.directive.ts","./src/app/Modules/transmittal/transmittal-view/trasnsmittal-view.component.ts","./src/app/Modules/transmittal/transmittal-view/transmittal-view.component.html","./src/app/Modules/workflow/dialogs/add-workflow-template-dialog/add-workflow-template-dialog.component.ts","./src/app/Modules/workflow/dialogs/add-workflow-template-dialog/add-workflow-template-dialog.component.html","./src/app/Modules/workflow/dialogs/document-previous-revision-checklist/document-previous-revision-checklist.component.ts","./src/app/Modules/workflow/dialogs/document-previous-revision-checklist/document-previous-revision-checklist.component.html","./src/app/Modules/workflow/dialogs/respond-worflow-action/respond-worflow-action.component.ts","./src/app/Modules/workflow/dialogs/respond-worflow-action/respond-worflow-action.component.html","./src/app/Modules/workflow/dialogs/respond-worflow-checklist-items/respond-worflow-checklist-items.component.ts","./src/app/Modules/workflow/dialogs/respond-worflow-checklist-items/respond-worflow-checklist-items.component.html","./src/app/Modules/workflow/dialogs/wft-action-assignto/wft-action-asssignto.component.ts","./src/app/Modules/workflow/dialogs/wft-action-assignto/wft-action-assignto.component.html","./src/app/Modules/workflow/dialogs/wft-action-dialog/wft-action-dialog.component.ts","./src/app/Modules/workflow/dialogs/wft-action-dialog/wft-action-dialog.component.html","./src/app/Modules/workflow/dialogs/wft-action-kendo-dialog/wft-action-kendo-dialog.component.ts","./src/app/Modules/workflow/dialogs/wft-action-kendo-dialog/wft-action-kendo-dialog.component.html","./src/app/Modules/workflow/dialogs/wft-cart-dialog/wft-cart-dialog.component.ts","./src/app/Modules/workflow/dialogs/wft-cart-dialog/wft-cart-dialog.component.html","./src/app/Modules/workflow/dialogs/wftd-body-input/wftd-body-input.component.ts","./src/app/Modules/workflow/dialogs/wftd-body-input/wftd-body-input.component.html","./src/app/Modules/workflow/dialogs/wftd-bottom-kendo/wftd-bottom-kendo.component.ts","./src/app/Modules/workflow/dialogs/wftd-bottom-kendo/wftd-bottom-kendo.component.html","./src/app/Modules/workflow/dialogs/workflow-status-ccn-dialog/workflow-status-ccn-dialog.component.ts","./src/app/Modules/workflow/dialogs/workflow-status-ccn-dialog/workflow-status-ccn-dialog.component.html","./src/app/Modules/workflow/dialogs/workflow-status-checklist-dialog/workflow-status-checklist-dialog.component.ts","./src/app/Modules/workflow/dialogs/workflow-status-checklist-dialog/workflow-status-checklist-dialog.component.html","./src/app/Modules/workflow/dialogs/workflow-tender-quantity/workflow-tender-quantity.component.ts","./src/app/Modules/workflow/dialogs/workflow-tender-quantity/workflow-tender-quantity.component.html","./src/app/Modules/workflow/dialogs/wtf-action-reassignto-dtn/wtf-action-reassignto-dtn.component.ts","./src/app/Modules/workflow/dialogs/wtf-action-reassignto-dtn/wtf-action-reassignto-dtn.component.html","./src/app/Modules/workflow/respond-worflow/respond-worflow.component.ts","./src/app/Modules/workflow/respond-worflow/respond-worflow.component.html","./src/app/Modules/workflow/workflow-routing.module.ts","./src/app/Modules/workflow/workflow-status/workflow-status.component.ts","./src/app/Modules/workflow/workflow-status/workflow-status.component.html","./src/app/Modules/workflow/workflow-template/workflow-template.component.ts","./src/app/Modules/workflow/workflow-template/workflow-template.component.html","./src/app/Service/Common.service.ts","./src/app/Service/Global/GlobalErrorHandler.service.ts","./src/app/Service/Global/GlobalHttpInterceptor.service.ts","./src/app/Service/Global/auth.guard.ts","./src/app/Service/Loader/loader.service.ts","./src/app/Service/ProjectWorkflowStatus/ProjectWorkflowStatus.service.ts","./src/app/Service/Report/Report.service.ts","./src/app/Service/application-menu/menu.service.ts","./src/app/Service/businessgroup-link/business-group-link.service.ts","./src/app/Service/ccn/ccn.service.ts","./src/app/Service/checklist/checklist.service.ts","./src/app/Service/communication/communication.service.ts","./src/app/Service/dashboard/dashboard.service.ts","./src/app/Service/data-format.service.ts","./src/app/Service/delegate-access/delegate-access.service.ts","./src/app/Service/deletedocument/deletedocument.service.ts","./src/app/Service/document-revision-link/document-revision-link.service.ts","./src/app/Service/document/document.service.ts","./src/app/Service/documentviewer/documentviewer.service.ts","./src/app/Service/element-details-link/element-details-link.service.ts","./src/app/Service/element-details.data.service.ts","./src/app/Service/element-link/element-link.service.ts","./src/app/Service/elementdetails/elementdetails.service.ts","./src/app/Service/elements/elements.service.ts","./src/app/Service/encrypt-decrypt.service.ts","./src/app/Service/file/file.service.ts","./src/app/Service/fina-drawing-report.service.ts","./src/app/Service/incident-tool/incident-tool.service.ts","./src/app/Service/login.service.ts","./src/app/Service/map-role-feature/map-role-feature.service.ts","./src/app/Service/member-element-detail-link/member-element-detail-link.service.ts","./src/app/Service/member-role-link/member-role-link.service.ts","./src/app/Service/member/external-member.service.ts","./src/app/Service/notification.service.ts","./src/app/Service/organization/organization.service.ts","./src/app/Service/peerReview/peer-review.service.ts","./src/app/Service/project-info/project-info.service.ts","./src/app/Service/projectMemberLink/project-member-link.service.ts","./src/app/Service/projectmaster/projectmaster.service.ts","./src/app/Service/pushnotification/pushnotification.service.ts","./src/app/Service/rest-api.service.ts","./src/app/Service/scheduledefintion/scheduledefintion.service.ts","./src/app/Service/scheduledocument/scheduleDocument.service.ts","./src/app/Service/tender-quantity/tender-quantity.service.ts","./src/app/Service/transmittal-template/transmittal-template.service.ts","./src/app/Service/transmittal/transmittal.service.ts","./src/app/Service/workflow-template/workflow-template-data.service.ts","./src/app/Service/workflow-template/workflow-template.service.ts","./src/app/ViewModel/CommunicationModel.ts","./src/app/ViewModel/DashboardModel.ts","./src/app/ViewModel/DeletedocumentModel.ts","./src/app/ViewModel/DocumentModel.ts","./src/app/ViewModel/MembersModel.ts","./src/app/ViewModel/PeerReviewModel.ts","./src/app/ViewModel/ProjectElementsModel.ts","./src/app/ViewModel/ProjectMasterModel.ts","./src/app/ViewModel/ProjectWorkflowStatus.ts","./src/app/ViewModel/ScheduleDocumentModel.ts","./src/app/ViewModel/StandardOutputModel.ts","./src/app/ViewModel/TransmittalModel.ts","./src/app/ViewModel/TransmittalTemplateModel.ts","./src/app/ViewModel/UserDetailsModel.ts","./src/app/ViewModel/WorkflowStatusModel.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/edmscommon.module.ts","./src/app/material.module.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|D:\\BuildAgents\\UIBldAgent\\UI02_61153\\_work\\25\\s\\node_modules\\crypto-js|crypto","ignored|D:\\BuildAgents\\UIBldAgent\\UI02_61153\\_work\\25\\s\\node_modules\\eipgeneral-cart\\fesm2015|xlsx"],"sourcesContent":["import { Component, Inject, OnInit, Input, Output, EventEmitter, ViewChildren } from \"@angular/core\";\r\n\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { DynamickendoService } from './Service/Dynamic-kendo.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-Dynamic-kendo-Grid',\r\n templateUrl: './Dynamic-kendo-Grid.component.html',\r\n styleUrls: ['./Dynamic-kendo-Grid.component.css']\r\n})\r\nexport class DynamickendoGridComponent implements OnInit {\r\n //@Input() DataList: any[];\r\n public _DataList!: any[];\r\n @Input() grdSettings!: any[];\r\n\r\n get DataList(): any[] {\r\n return this._DataList;\r\n }\r\n @Input() set DataList(value: any[]) {\r\n if (!!value && typeof value == \"object\") {\r\n this._DataList = value;\r\n // this.loadInitialData();\r\n // this._DataList.forEach((x) => {\r\n // let obj =x;\r\n // let binding : any= {} ;\r\n // this.grdSettings.forEach((s,i)=>{\r\n // if(obj.hasOwnProperty(s.field))\r\n // {\r\n // let property = s.field;\r\n // binding[s.field] = obj[property];\r\n // x[\"value\"+i] = x[s.field];\r\n // }\r\n // else{\r\n // x[\"value\"+i] = \"\";\r\n // binding[s.field] =\"\";\r\n // }\r\n // })\r\n // x.Header = Object.keys(binding);\r\n // x.value = Object.values(binding);\r\n // });\r\n }\r\n }\r\n @Input() PageName: any;\r\n @Input() Url: any;\r\n @Input() callbackFunction!: (IconData: any, ItemData: any) => boolean;\r\n @Output() VisibleEvent = new EventEmitter();\r\n @Output() ClickEvent = new EventEmitter();\r\n @ViewChildren('grd') public gridSettingDetails!: GridComponent;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n GridListIcons: any[] = [];\r\n GridHeaderIcons: any[] = [];\r\n GridToogleButtons: any[] = [];\r\n HeaderListIcons: any[] = [];\r\n constructor(private _DynamickendoService: DynamickendoService, private _commonService: CommonService, private _notificationService: NotificationService) {\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this.GridListIcons = this._DynamickendoService.getIcondetails(this.PageName);\r\n this.GridHeaderIcons = this.GridListIcons.filter(x=>x.Isheader);\r\n this.GridToogleButtons = this.GridListIcons.filter(x=>x.Istoogle); \r\n if (this.grdSettings) {\r\n this.grdSettings = this.grdSettings.map((x) => ({\r\n MemberID: x.MemberID,\r\n MenuId: x.MenuId,\r\n order: x.order,\r\n width: x.width,\r\n field: x.field,\r\n title: x.title,\r\n icons: this.GridListIcons\r\n }));\r\n }\r\n // if(this.DataList)\r\n // this.DataList.forEach(x => {\r\n // let obj =x;\r\n // x.Header = Object.keys(obj);\r\n // x.value = Object.values(obj);\r\n // });\r\n }\r\n\r\n /**\r\n * Get MemForm Controls value\r\n * @param controlName ControlName\r\n */\r\n\r\n Visible(Icondata: any, Itemdata: any): boolean {\r\n return this.callbackFunction(Icondata, Itemdata);\r\n\r\n\r\n }\r\n IconClick(Icondata: any, Itemdata ?: any) {\r\n let data: any = {\r\n Icondata: Icondata,\r\n Itemdata: Itemdata\r\n }\r\n this.ClickEvent.emit(data);\r\n }\r\n\r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n gridSettings() {\r\n this._DynamickendoService.gridSettings(this.gridSettingDetails,this.Url);\r\n }\r\n loadInitialData() {\r\n\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from 'rxjs';\r\nimport { IMemebersViewModel, IMemebersInputModel, IEipUserModel } from 'src/app/ViewModel/MembersModel';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\n\r\nexport enum PageIcons {\r\n Members,\r\n RespondWorkFlow\r\n}\r\n// export interface IconsSpec {\r\n// Name: string ,\r\n// IsAllow: boolean\r\n// class : string\r\n// title: string\r\n\r\n// }\r\n\r\n// export interface KendoUIOutputModel\r\n// {\r\n// MemberID : number ,\r\n// MenuId : number ,\r\n// order : number ,\r\n// width : number ,\r\n// field : string ,\r\n// title : string \r\n// }\r\n\r\n// export interface KendoUIinputModel\r\n// {\r\n// MemberID : number ,\r\n// MenuId : number ,\r\n// JsonData : string\r\n// }\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamickendoService {\r\n\r\n private GetGridSettingsUrl = 'Menu/GetGridSettings';\r\n private PostGridSettingsUrl = 'Menu/PostGridSettings';\r\n PIcons!: PageIcons;\r\n MemberId!: number;\r\n constructor(private restAPTService: RestApiService, private CommonService: CommonService, private _notificationService: NotificationService) { }\r\n\r\n\r\n /**\r\n * Get Members List API\r\n * @param member_Id 50\r\n * @param company_Code 50\r\n */\r\n public GetGridSettings(url: string): Observable {\r\n let obj = this.ConstructGridObject(url);\r\n return this.restAPTService.new_POST(this.GetGridSettingsUrl, obj);\r\n }\r\n\r\n /**\r\n * Insert and Update Member Details \r\n * @param memberDetails \r\n */\r\n public PostGridSettings(input: any): Observable {\r\n\r\n return this.restAPTService.new_POST(this.PostGridSettingsUrl, input);\r\n }\r\n\r\n\r\n\r\n\r\n gridSettings(obj: any, url: string) {\r\n\r\n let columnList: any = this.ConstructGridObject(url, obj);\r\n this.PostGridSettings(columnList).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n\r\n }\r\n }, err => {\r\n\r\n });;\r\n }\r\n\r\n public ConstructGridObject(url: string, input?: any): any {\r\n this.MemberId = this.CommonService.getLoggedInUserId();\r\n let Menu = JSON.parse(this.CommonService.getSessionStorageItem(\"Menu\"));\r\n let _MenuId!: number;\r\n let _JsonData: string = \"\";\r\n let _Sort :string = \"\";\r\n url = url.substring(1, url.length);\r\n let _urlobj = url.split(\"/\");\r\n if (Menu && Menu.length > 0 && _urlobj.length > 0) {\r\n Menu.forEach((element: any) => {\r\n if (element.childList && element.childList.length > 0 && element.childList.some((x: { menuUrl: string; }) => x.menuUrl.toUpperCase().trim() == url.toUpperCase().trim())) \r\n _MenuId = element.childList.filter((x: { menuUrl: string; }) => x.menuUrl.toUpperCase().trim() == url.toUpperCase().trim())[0].menuCode\r\n \r\n });\r\n }\r\n if(!_MenuId && Menu.some((y: { menuUrl: string; })=>y.menuUrl.toUpperCase().trim() == url.toUpperCase().trim()))\r\n {\r\n _MenuId = Menu.filter((y: { menuUrl: string; })=>y.menuUrl.toUpperCase().trim() == url.toUpperCase().trim())[0].menuCode;\r\n }\r\n // only for Save grid settings\r\n if (input) {\r\n let settingsObject: any[] = [];\r\n if (input && input.first.columnList.columns._results) {\r\n input.first.columnList.columns._results.forEach((element:any) => {\r\n\r\n\r\n settingsObject.push({\r\n order: element.leafIndex,\r\n width: element._width,\r\n field: element.field,\r\n title: element.title\r\n\r\n });\r\n\r\n });\r\n settingsObject = settingsObject.sort((a, b) => a.order - b.order);\r\n settingsObject = settingsObject.filter(x => x.field);\r\n _JsonData = JSON.stringify(settingsObject)\r\n\r\n }\r\n if(input._results[0]._sort)\r\n _Sort = JSON.stringify(input._results[0]._sort);\r\n }\r\n\r\n let obj: any = {\r\n MemberID: this.MemberId,\r\n MenuId: _MenuId,\r\n JsonData: _JsonData,\r\n ProjectId:this.CommonService.getProjectId(),\r\n GroupId : this.CommonService.getLoggedInUserGroupId(),\r\n Sort : _Sort\r\n }\r\n return obj\r\n }\r\n\r\n public getIcondetails(data: PageIcons): any[] {\r\n\r\n switch (data) {\r\n case PageIcons.Members:\r\n return [{ Name: \"Edit\", IsAllow: true, class: \"fa fa-pencil icon-my-10\", title: \"Edit Member\", Isheader: false, Istoogle: false },\r\n { Name: \"Unlock\", IsAllow: true, class: \"fa fa-unlock icon-my-10\", title: \"Unlock\", Isheader: false, Istoogle: false },\r\n { Name: \"Add Member\", IsAllow: true, class: \"fa fa-plus-circle icon-my-10\", title: \"Add Member\", Isheader: true, Istoogle: false },\r\n ];\r\n case PageIcons.RespondWorkFlow:\r\n return [{ Name: \"Edit\", IsAllow: true, class: \"fa fa-pencil icon-my-10\", title: \"Test Edit Member\" }];\r\n\r\n }\r\n }\r\n\r\n} ","import { Router } from '@angular/router';\r\nimport { AdalService } from 'adal-angular4';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { LoginService } from 'src/app/Service/login.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { UserDetailsViewModel } from 'src/app/ViewModel/UserDetailsModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-auth-callback',\r\n template: '
'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n\r\n constructor(\r\n public router: Router,\r\n private adal: AdalService,\r\n private loginService: LoginService,\r\n private commonService: CommonService,\r\n private _notificationService: NotificationService) {\r\n\r\n this.adal.handleWindowCallback();\r\n\r\n if (this.adal.userInfo.authenticated === false) {\r\n this._notificationService.showPopup('System failure. Please try again later', \"Warning\").then(\r\n x => this.loginService.Logout(true)\r\n );\r\n }\r\n else {\r\n let user = {\r\n jWTtoken: this.adal.userInfo.token,\r\n staffPsNO: this.adal.userInfo.profile.EmployeeID,\r\n isInternal: true,\r\n isLoginTime: true\r\n }\r\n // UserDetailsViewModel[]\r\n this.loginService.GetCurrentUserDetails(user).subscribe((data: any) => {\r\n if (data[\"successCode\"] === 200) {\r\n let isDuplicateLogin: any = data[\"isDuplicateLogin\"];\r\n this.commonService.setCurrentUserProfileCard(data);\r\n\r\n if (isDuplicateLogin === true) {\r\n this._notificationService.showPopup('Your login account is used in another device. The session in that device has been closed', \"Warning\").then(\r\n x => {\r\n this.router.navigate(this.commonService.redirectUserToPRAddComments ? ['/peer-review/review-add-comments'] : ['/dashboard']);\r\n }\r\n );\r\n }\r\n else {\r\n this.router.navigate(this.commonService.redirectUserToPRAddComments ? ['/peer-review/review-add-comments'] : ['/dashboard']);\r\n\r\n }\r\n }\r\n else {\r\n this._notificationService.showPopup('You are not a valid member, Kindly contact your Admin/Coordinator', \"Warning\");\r\n this.router.navigate(['/authentication/login']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export * from './auth-callback.components';\r\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { AbstractControl, FormGroup, ValidationErrors } from \"@angular/forms\";\r\nimport { MatAutocompleteSelectedEvent } from \"@angular/material/autocomplete\";\r\n\r\nimport { debounceTime, exhaustMap, filter, map, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { Observable ,Subject} from 'rxjs';\r\nimport { of } from 'rxjs/internal/observable/of';\r\n\r\n\r\n@Component({\r\n selector: 'edms-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.css']\r\n})\r\nexport class EdmsAutoCompleteComponent implements OnInit, OnDestroy {\r\n @ViewChild('searchText') searchText!: ElementRef;;\r\n @Input() data: any[] = [];\r\n @Input() textField: string = '';\r\n @Input() form!: FormGroup;\r\n @Input() controlName: string = '';\r\n @Input() label: string = '';\r\n @Input() error: string = '';\r\n @Input() value: any;\r\n @Input() isValidateOptionRequired: boolean = false;\r\n @Output() optionSelected = new EventEmitter();\r\n isSelectedEventTriggered: boolean = false;\r\n isPanelOpened: boolean = false;\r\n inputValue: string = '';\r\n filteredOptions: Observable | undefined;\r\n private _nextPage$ = new Subject();\r\n private _destroyed$ = new Subject();\r\n filter$: Observable | undefined;\r\n ngOnInit() {\r\n this.listenChange();\r\n if (this.value)\r\n this.form.get(this.controlName)?.setValue(this.value);\r\n if (this.isValidateOptionRequired)\r\n this.form.get(this.controlName)?.setValidators(this.validateOptionSelection.bind(this));\r\n }\r\n\r\n hasInputData(): boolean {\r\n if (this.data)\r\n return true;\r\n else\r\n\r\n return false;\r\n //&& this.data.length > 0;\r\n }\r\n\r\n listenChange(): void {\r\n let searchText: string = '';\r\n if (this.value)\r\n searchText = this.value[this.textField];\r\n // Note: listen for search text changes\r\n let _x: any = this.form.get(this.controlName)\r\n if (_x)\r\n this.filter$ = _x.valueChanges.pipe(\r\n startWith(searchText),\r\n debounceTime(200),\r\n // Note: If the option value is bound to object, after selecting the option\r\n // Note: the value will change from string to {}. We want to perform search \r\n // Note: only when the type is string (no match)\r\n map((value: any) => typeof value === 'string' ? value : value[this.textField]),\r\n filter(q => typeof q === \"string\"));\r\n this.filterOptions();\r\n }\r\n\r\n clearSearchText(): void {\r\n this.form.get(this.controlName)?.setValue('');\r\n this.resetControl('');\r\n this.isSelectedEventTriggered = false;\r\n if (!this.isPanelOpened)\r\n //Emit selected option to caller component\r\n this.optionSelected.emit(-1);\r\n }\r\n\r\n private filterOptions(): void {\r\n // Note: There are 2 stream here: the search text changes stream and the nextPage$ (raised by directive at 80% scroll)\r\n // Note: On every search text change, we issue a backend request starting the first page\r\n // Note: While the backend is processing our request we ignore any other NextPage emitts (exhaustMap).\r\n // Note: If in this time the search text changes, we don't need those results anymore (switchMap)\r\n this.filteredOptions = this.filter$?.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n //Note: Until the backend responds, ignore NextPage requests.\r\n exhaustMap(_ => this.getOptionsFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n //Note: This is a custom operator because we also need the last emitted value.\r\n //Note: Stop if there are no more pages, or no results at all for the current search text.\r\n //takeWhileInclusive(p => p.length > 0),\r\n scan((allOptions, newOptions: any) => allOptions.concat(newOptions), []),\r\n );\r\n })\r\n );\r\n }\r\n\r\n // Fake backend api\r\n private getOptionsFake(startsWith: string, page: number):any {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.data\r\n .filter(option => option[this.textField].toLowerCase().indexOf(startsWith.toLowerCase()) !== -1)\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n\r\n\r\n public displayProperty(obj: any) {\r\n return obj && obj[this.textField] ? obj[this.textField] : '';\r\n }\r\n\r\n validateOptionSelection(abstractControl: AbstractControl): ValidationErrors | null | void {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any = abstractControl.value;\r\n if (!this.data.includes(selectedValue)) {\r\n return { IsError: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n\r\n selected(event: MatAutocompleteSelectedEvent): void {\r\n this.resetControl(event.option.value[this.textField]);\r\n //Emit selected option to caller component\r\n this.optionSelected.emit(event.option.value);\r\n this.isSelectedEventTriggered = true;\r\n }\r\n\r\n closed(event: any): void {\r\n if (!this.isSelectedEventTriggered)\r\n //Emit selected option to caller component\r\n this.optionSelected.emit(-1);\r\n else\r\n //reset the selected event triggered as false\r\n this.isSelectedEventTriggered = false;\r\n this.isPanelOpened = false;\r\n }\r\n\r\n opened(event: any): void {\r\n this.isPanelOpened = true;\r\n }\r\n\r\n resetControl(value: string) {\r\n //Show the autocomplete panel automatically after clear the text\r\n this.searchText.nativeElement.value = value;\r\n this.searchText.nativeElement.blur();\r\n }\r\n\r\n onScroll() {\r\n //Note: This is called multiple times after the scroll has reached the 80% threshold position.\r\n this._nextPage$.next(true);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._destroyed$.next(null);\r\n this._destroyed$.complete();\r\n }\r\n\r\n hasRequiredError(): boolean | undefined {\r\n return this.form.get(this.controlName)?.hasError('required');\r\n }\r\n\r\n hasFormControlError(): boolean | void {\r\n if (this.form.get(this.controlName)?.errors && !this.form.get(this.controlName)?.hasError('required')) {\r\n return this.form.get(this.controlName)?.errors?.['IsError']\r\n }\r\n }\r\n}","\r\n \r\n {{label}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{option[textField]}}\r\n \r\n \r\n \r\n {{error}}\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n","import { Component, OnInit, ViewChild, Inject, ElementRef } from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { MatChipList } from '@angular/material/chips';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { IMessageInputModel, IMsgElementInputModel, IMsgSLNoInputModel, IMsgDocumentInputModel, IMsgAttachmentInputModel, IMsgReceiverInputModel, IMessageGroupListModel, IMsgAttachmentsModel, IMsgDocumentAttachmentModel, IMessageGroupOutputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { ISignatureOutputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\n\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { formatDate } from '@angular/common';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { SignatureComponent } from 'src/app/Modules/communication/signature/signature.component';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { FileUploadComponent } from '../file-upload/file-upload.component';\r\nimport { ITransmittalMemberModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { DocumentMessageViewComponent } from '../document-message-grid/document-message-view/document-message-view.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { of } from 'rxjs/internal/observable/of';\r\n\r\n\r\n@Component({\r\n selector: 'app-create-communication',\r\n templateUrl: './create-communication.component.html',\r\n styleUrls: ['./create-communication.component.css']\r\n})\r\nexport class CreateCommunicationComponent implements OnInit {\r\n\r\n\r\n @ViewChild(\"docSetForm\")\r\n dynamicForm!: DynamicFormComponent;\r\n panelOpenState = true;\r\n public inputType: any;\r\n public selectedMessages!: any[];\r\n public messageFormat!: string;\r\n public numFormat!: string;\r\n public readonly!: boolean;\r\n public responseRequired!: string;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public parentMessageId: number = 0;\r\n public msgNo!: string;\r\n public MessageId!: number;\r\n public autoSerialNo!: string;\r\n public msgSerialNo!: number;\r\n public messageNo!: string;\r\n public isMessageValid!: boolean;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public numElements: Map = new Map();\r\n public elementInp: IMsgElementInputModel[] = [];\r\n public elementInput: IMsgElementInputModel[] = [];\r\n public mailType: string = '';\r\n public messageGroup: string = '';\r\n public mailTypeList: IProjectElementDetailsOutput[] = [];\r\n public membersList: any[] = [];\r\n public CurrentProjectDetails!: ProjectViewModel;\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n @ViewChild('toInput')\r\n toInput!: ElementRef;\r\n @ViewChild('toauto')\r\n matToAutoComplete!: MatAutocomplete;\r\n @ViewChild('toChipList')\r\n toChipList!: MatChipList;\r\n @ViewChild('ccInput')\r\n ccInput!: ElementRef;\r\n @ViewChild('ccauto')\r\n matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList')\r\n ccChipList!: MatChipList;\r\n @ViewChild('bccInput')\r\n bccInput!: ElementRef;\r\n @ViewChild('bccauto')\r\n matbccAutoComplete!: MatAutocomplete;\r\n @ViewChild('bccChipList')\r\n bccChipList!: MatChipList;\r\n toMembers: ITransmittalMemberModel[] = [];\r\n tofilter$!: Observable;\r\n toFilteredMembers!: Observable;\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n ccfilter$!: Observable;\r\n ccFilteredMembers!: Observable;\r\n bccMembers: ITransmittalMemberModel[] = [];\r\n bccfilter$!: Observable;\r\n bccFilteredMembers!: Observable;\r\n private _nextPage$ = new Subject();\r\n private _destroyed$ = new Subject();\r\n selectedTo!: number;\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n multiple = false;\r\n isShowSerialNo = true;\r\n serialNoLength: number = 5;\r\n public messageForm: FormGroup = new FormGroup({\r\n txtMsgSerialNo: new FormControl({ value: '', disabled: true }),\r\n txtSerialNo: new FormControl({ value: '', disabled: true }, [Validators.pattern(\"^[0-9]*$\")]),\r\n lblIsConfidential: new FormControl(true),\r\n autoMailType: new FormControl(),\r\n ddlMailType: new FormControl(),\r\n autoMailFrom: new FormControl(),\r\n ddlMailFrom: new FormControl()\r\n });\r\n public messageContentForm: FormGroup = new FormGroup({\r\n txtMailSubject: new FormControl(),\r\n editor: new FormControl()\r\n });\r\n elementsConfig: FieldConfig[] = [];\r\n mailContent: string = '';\r\n registermailContent: string = '';\r\n mailSubject: string = '';\r\n IsShowAttachmentList = false;\r\n /*Signature*/\r\n IsShowPopup = false;\r\n public IsDisabled!: boolean;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n private popupAlignCenter: Align = { horizontal: 'center', vertical: 'top' };\r\n private anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n private popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n private anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n private popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public margin = { horizontal: -15, vertical: 10 };\r\n public signatureList: ISignatureOutputModel[] = [];\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n receivedDoc: any[] = [];\r\n mgList: any[] = [];\r\n groupList: IMessageGroupOutputModel[] = [];\r\n bindGroupList: IMessageGroupOutputModel[] = [];\r\n mailFrom: string = '';\r\n public fromList: any[] = [];\r\n mailTo: string = '';\r\n public toList: any[] = [];\r\n mailCC: string = '';\r\n public ccList: any[] = [];\r\n mailBCC: string = '';\r\n public bccList: any[] = [];\r\n public messageGroupForm!: FormGroup;\r\n public isRevisedDateInvalid!: boolean;\r\n public canManualNo: boolean = false;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RespondOn: string = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public sentdatevalue = new Date(this.getDateFormat());\r\n public SentOn: string = formatDate(this.sentdatevalue, 'dd-MM-yyyy', 'en-US');\r\n public isSentDateInvalid!: boolean;\r\n public mailFromList: any[] = [];\r\n attachmentsList: IMsgDocumentAttachmentModel[] = [];\r\n constructor(\r\n private _projService: ProjectInfoService,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public memberService: ExternalMemberService,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n private _elementLinkService: ElementLinkService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private notificationService: NotificationService,\r\n private formBuilder: FormBuilder,\r\n private transmittalService: TransmittalService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.inputType = this.data['inputType'];\r\n this.messageFormat = 'Mail';\r\n this.numFormat = 'Auto';\r\n this.readonly = true;\r\n this.IsDisabled = true;\r\n this.responseRequired = 'No';\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.CurrentProjectDetails = this.commonService.getCurrentProjectDetails();\r\n if (this.CurrentProjectDetails && this.CurrentProjectDetails.doc_Number_Format) {\r\n this.numFormat = this.CurrentProjectDetails.doc_Number_Format;\r\n this.onNumFormatChange(this.numFormat);\r\n }\r\n this.callMemberRoleandFeature();\r\n this.createCommunicationForm();\r\n this.getSerialNoLength();\r\n this.getDynamicForm();\r\n this.getSignatureList();\r\n this.getMailTypelist();\r\n this.getMailFromList();\r\n this.getMembers();\r\n this.getMessageGroupList();\r\n if (this.inputType == 'createDocumentMail' && this.data['selectedList'] != undefined && this.data['selectedList'].length > 0) {\r\n this.documentList = this.data['selectedList'];\r\n }\r\n else if (this.inputType != 'createMail' && this.data['selectedList'] != undefined && this.data['selectedList'].length > 0) {\r\n this.setMessageResponder();\r\n }\r\n else if (this.inputType == 'registerMail') {\r\n this.messageFormat = 'Register Incoming Message';\r\n }\r\n this.getRegisterContent();\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n this.transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.masterMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo\r\n };\r\n return transmittalMember;\r\n });\r\n this.tofilter$ = this.createSerachFilter('toMembersCtrl');\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.bccfilter$ = this.createSerachFilter('bccMembersCtrl');\r\n this.filterMembers();\r\n });\r\n\r\n }\r\n createCommunicationForm() {\r\n this.messageGroupForm = this.formBuilder.group({\r\n toMembersCtrl: new FormControl(),\r\n ccMembersCtrl: new FormControl(),\r\n bccMembersCtrl: new FormControl(),\r\n toMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n ccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n bccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n txtNoOfDays: new FormControl(),\r\n formToMember: new FormControl('', Validators.required),\r\n formMGList: new FormControl('', Validators.required)\r\n\r\n });\r\n }\r\n async getMembers() {\r\n this.membersList = await this.memberService.GetMembersList({ group_Id: this.groupId, member_Id: null }).toPromise();\r\n }\r\n\r\n async getSerialNoLength() {\r\n let slNoArray = await this._elementLinkService.getNumberingSlNoLength(this.projectId, this.groupId, Module.Communication).toPromise();\r\n this.serialNoLength = slNoArray.serialNoLength != 0 ? slNoArray.serialNoLength : 5;\r\n }\r\n\r\n getRegisterContent() {\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n var futureDate = formatDate(new Date(), 'dd-MM-yyyy', 'en-US');;\r\n this.registermailContent = '






This mail is registered by ';\r\n this.registermailContent += this.commonService.getLoggedInUserName();\r\n this.registermailContent += ' on ';\r\n this.registermailContent += futureDate;\r\n this.messageContentForm.controls['editor'].setValue(this.registermailContent);\r\n }\r\n }\r\n async setMessageResponder() {\r\n this.selectedMessages = this.data['selectedList'];\r\n this.parentMessageId = this.selectedMessages[0];\r\n let receivers = await this.communicationService.GetMessageReceiverList(this.parentMessageId).toPromise();\r\n if (this.inputType == 'replyMail') {\r\n this.toList = receivers.filter((x: any) => x.receiverType == 1).map((x: any) => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.mailTo = this.toList.map(x => x.title).toString();\r\n this.messageGroupForm.controls['txtMailTo'].setValue(this.mailTo);\r\n }\r\n if (this.inputType == 'replyAllMail') {\r\n this.toList = receivers.filter((x: any) => x.receiverType == 1).map((x: any) => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.mailTo = this.toList.map(x => x.title).toString();\r\n this.messageGroupForm.controls['txtMailTo'].setValue(this.mailTo);\r\n this.ccList = receivers.filter((x: any) => x.receiverType == 3).map((x: any) => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.mailCC = this.getMembersText(this.ccList);\r\n this.messageGroupForm.controls['txtMailCC'].setValue(this.mailCC);\r\n this.bccList = receivers.filter((x: any) => x.receiverType == 5).map((x: any) => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.mailBCC = this.getMembersText(this.bccList);\r\n this.messageGroupForm.controls['txtMailBCC'].setValue(this.mailBCC);\r\n }\r\n }\r\n\r\n getMembersText(list: IMessageGroupListModel[]) {\r\n let noGroup = list.filter(x => x.isGroup == false).map(x => x.title);\r\n let result = list.filter(x => x.isGroup).map(x => x.groupName);\r\n let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n return noGroup.toString() + filteredResult.toString();\r\n }\r\n\r\n onMessageFormatChange(value: any) {\r\n this.messageFormat = value;\r\n // this.reSet();\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n this.getRegisterContent();\r\n }\r\n }\r\n onNumFormatChange(value: any) {\r\n this.numFormat = value;\r\n this.isShowSerialNo = this.numFormat == 'Auto' || this.numFormat == 'Semi';\r\n if (this.numFormat == 'Auto') {\r\n this.messageForm.get('txtMsgSerialNo')?.disable();\r\n this.messageForm.get('txtSerialNo')?.disable();\r\n this.GetMessageSerialNo();\r\n } else if (this.numFormat == 'Semi') {\r\n this.messageForm.get('txtSerialNo')?.enable();\r\n this.messageForm.get('txtMsgSerialNo')?.disable();\r\n this.GetMessageSerialNo();\r\n }\r\n else if (this.numFormat == 'Manual') {\r\n this.messageForm.get('txtMsgSerialNo')?.setValue('');\r\n this.messageForm.get('txtSerialNo')?.setValue('');\r\n this.messageForm.get('txtMsgSerialNo')?.enable();\r\n this.messageForm.get('txtSerialNo')?.disable();\r\n }\r\n }\r\n public getMessageNumber(): string {\r\n let docNo: string = this.getFormValue(\"txtMsgSerialNo\", this.messageForm);\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi')\r\n return docNo + '-' + this.getFormValue(\"txtSerialNo\", this.messageForm);\r\n else\r\n return docNo;\r\n }\r\n onResponseRequiredChange(value: any) {\r\n this.responseRequired = value;\r\n }\r\n getDynamicForm() {\r\n this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Communication, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n\r\n this.projectElements = res;\r\n this.elementsConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.Communication,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n value: new BehaviorSubject(null)\r\n }\r\n if (x.isMandatory) {\r\n field.validations = [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: field.name + \" Required\"\r\n }\r\n ]\r\n }\r\n if (x.isNumbering) {\r\n this.numElements.set(x.elementDescription, '');\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n //Numbering elements array\r\n let numberingElements: string[] = Array.from(this.numElements.keys());\r\n numberingElements.forEach(element => {\r\n resForm.get(element)?.valueChanges.subscribe((x: any) => {\r\n\r\n if (this.numElements.has(element)) {\r\n this.numElements.set(element, x.dedShortDescription);\r\n }\r\n if (!!x && (this.numFormat == 'Auto' || this.numFormat == 'Semi')) {\r\n this.GetMessageSerialNo();\r\n }\r\n });\r\n });\r\n this.onCascadingAutocomplete_Change();\r\n });\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach(data => {\r\n if (!!data.child_de_id && data.deDescription) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe((x: any) => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = data.deDescription ? resForm.get(data.deDescription)?.value : null;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Communication,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n else {\r\n _field[0].values = [];\r\n /*this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Communication,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n }, err => { });*/\r\n }\r\n }, (err: any) => { });\r\n }\r\n else {\r\n _field[0].values = [];\r\n /*this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n }, err => { });*/\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n /**\r\n *Get Message Serial No\r\n */\r\n GetMessageSerialNo() {\r\n //Coin the Document number based on the element values selection changes\r\n let elementValues: string[] = Array.from(this.numElements.values());\r\n let selectedElementValues: string[] = elementValues.filter(val => val != '');\r\n this.msgNo = elementValues.filter(val => val != '').join('-');\r\n this.messageForm.get('txtMsgSerialNo')?.setValue(this.msgNo);\r\n //Ensure all the mandatory numering elements selected\r\n if (elementValues.length > 0 && elementValues.length == selectedElementValues.length) {\r\n\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInp = this.projectElements.filter(x => x.isNumbering).map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n let result: IMsgElementInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n });\r\n let inputModel: IMsgSLNoInputModel = { projectId: this.commonService.getProjectId(), groupId: 1, moduleId: 4, elementDetails: this.elementInp };\r\n this.communicationService.GetMsgSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n\r\n //Set manipulated value from the parent component(W.r.t other documents elements selection while bulk upload)\r\n this.msgSerialNo = +result.result;\r\n this.messageForm.get('txtSerialNo')?.setValue(String(this.msgSerialNo).padStart(this.serialNoLength, '0'));\r\n this.messageNo = this.msgNo + \"-\" + String(this.msgSerialNo).padStart(this.serialNoLength, '0');\r\n });\r\n }\r\n }\r\n /**\r\n * Get Mail Type\r\n */\r\n public getMailTypelist() {\r\n this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Communication, deDescription: 'Mail Type' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.mailTypeList = res;\r\n }, (err: any) => { });\r\n }\r\n public async getMailFromList() {\r\n this.mailFromList = await this.projectMemberLinkService.getSelectedMemberList(this.projectId, this.groupId).toPromise();\r\n }\r\n setMessageValues(event: any, formControlName: string) {\r\n if (formControlName == 'ddlMailType') {\r\n this.mailType = event.text;\r\n }\r\n this.messageForm.get(formControlName)?.setValue(event.value);\r\n }\r\n /**\r\n * Save Message Input\r\n */\r\n\r\n\r\n getMessageInput() {\r\n if (this.messageForm.valid) {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInput = this.projectElements.map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n let result: IMsgElementInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n });\r\n\r\n let docAttachments = this.documentList.map(x => {\r\n let result: IMsgDocumentInputModel = {\r\n memberId: this.memberId,\r\n messageId: 0,\r\n docId: x.docId,\r\n revisionNo: x.revision,\r\n response: 0,\r\n responseRemarks: null,\r\n isActive: true\r\n }\r\n return result;\r\n });\r\n let msgAttachments = this.messageList.map(x => {\r\n let result: IMsgAttachmentInputModel = {\r\n memberId: this.memberId,\r\n messageId: 0,\r\n attachedMessageId: x.messageId,\r\n isActive: true\r\n }\r\n return result;\r\n });\r\n let msgReceivers = this.setMessageReceivers();\r\n let disciplineId = 0;\r\n let discipline = this.elementInput.find(x => x.deDescription == 'Discipline');\r\n if (discipline != undefined) {\r\n disciplineId = discipline.dedId;\r\n }\r\n let category = this.mailType == \"Request For Information\" ? 5 : 2;\r\n category = this.mailType == \"Non Conformity Report\" ? 7 : 2;\r\n let semiNo: string = '0';\r\n let msgNo: string = this.getFormValue(\"txtMsgSerialNo\", this.messageForm);\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(\"txtSerialNo\", this.messageForm);\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n msgNo = msgNo + '-' + this.getFormValue(\"txtSerialNo\", this.messageForm);\r\n }\r\n let inputModel: IMessageInputModel = {\r\n CanSendMail: false,\r\n MessageNo: msgNo,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n MemberId: this.memberId,\r\n MessageId: this.MessageId,\r\n MsgSerialNo: +semiNo,\r\n DisciplineId: disciplineId,\r\n ParentMessageId: this.parentMessageId,\r\n MessageType: this.getFormValue('ddlMailType', this.messageForm),\r\n HasAttachments: this.documentList.length > 0 || this.messageList.length > 0,\r\n IsConfidential: this.getFormValue('lblIsConfidential', this.messageForm),\r\n MessageCategory: category,\r\n MessageSubject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n MessageBody: this.mailContent != '' ? this.mailContent : this.getFormValue('editor', this.messageContentForm),\r\n ResponseType: this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n RespondOn: this.responseRequired == 'No' ? null : this.RespondOn,\r\n IssueReason: 10,\r\n SentOn: (this.messageFormat != 'Register Incoming Message') ? null : this.SentOn,\r\n elementDetails: this.elementInput,\r\n documentAttachments: this.documentList.length > 0 ? docAttachments : [],\r\n messageAttachments: this.messageList.length > 0 ? msgAttachments : [],\r\n messageReceivers: msgReceivers,\r\n CurrentProjectDetails: this.CurrentProjectDetails\r\n };\r\n return inputModel;\r\n }\r\n return null;\r\n }\r\n\r\n saveMessage() {\r\n let inputModel = this.getMessageInput();\r\n if (inputModel != null) {\r\n this.communicationService.InsertMessage(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.updateAttachmentsMessgeId(+res.result);\r\n // this.reSet();\r\n this.closeDialog();\r\n }\r\n else if (res.successCode == 205) {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n this.updateAttachmentsMessgeId(+res.result);\r\n // this.reSet();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n updateAttachmentsMessgeId(messageId: number) {\r\n if (this.attachmentsList.length > 0) {\r\n let attachedDoc: IMsgAttachmentsModel = { projectId: this.projectId, msgId: messageId, createdBy: this.memberId, messageDocuments: this.attachmentsList }\r\n this.communicationService.updateCommunicationDocsMsgId(attachedDoc).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n async sendMessage() {\r\n\r\n let inputModel = this.getMessageInput();\r\n if (inputModel != null && this.toMembers.length > 0 && this.messageContentForm.valid) {\r\n let msgReceivers = inputModel.messageReceivers;\r\n\r\n let category = this.mailType == \"Request For Information\" ? 4 : 1;\r\n category = this.mailType == \"Non Conformity Report\" ? 6 : 1;\r\n inputModel.CanSendMail = true;\r\n inputModel.MessageCategory = category;\r\n inputModel.SentOn = this.SentOn;\r\n this.communicationService.InsertMessage(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.updateAttachmentsMessgeId(+res.result);\r\n this.closeDialog();\r\n // this.attachmentClick(res.result);\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n setMessageReceivers() {\r\n let receivers: IMsgReceiverInputModel[] = [];\r\n\r\n //this.toMembers.push(this.toMembers);\r\n\r\n if (this.mailType != \"Request For Information\" && this.messageFormat != 'Register Incoming Message') {\r\n receivers.push({\r\n memberId: this.memberId,\r\n messageId: 0,\r\n receiverType: 1,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n } else {\r\n receivers.push({\r\n memberId: this.getFormValue('ddlMailFrom', this.messageForm),\r\n messageId: 0,\r\n receiverType: 1,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n }\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n receivers.push({\r\n memberId: this.memberId,\r\n messageId: 0,\r\n receiverType: 4,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n }\r\n this.toMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 2,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 1,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n this.ccMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 3,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n\r\n this.bccMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 5,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n return receivers;\r\n }\r\n openSignaturePopup() {\r\n this.IsShowPopup = false;\r\n const dialogRef = this.dialog.open(SignatureComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw'\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.getSignatureList();\r\n if (res != undefined) {\r\n let editorText = this.getFormValue('editor', this.messageContentForm);\r\n this.mailContent = (editorText != null ? editorText : '
') + res;\r\n }\r\n });\r\n }\r\n selectSignature(sign: any) {\r\n let editorText = this.getFormValue('editor', this.messageContentForm);\r\n this.mailContent = (editorText != null ? editorText : '
') + sign.signatureText;\r\n }\r\n public showSignList(event: any) {\r\n if (this.signatureList.length > 0) {\r\n this.IsShowPopup = !this.IsShowPopup;\r\n this.anchorElementPopup = event.target;\r\n }\r\n }\r\n public closeSignList() {\r\n this.IsShowPopup = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n public getSignatureList() {\r\n this.communicationService.GetSignatureList({ MemberId: this.memberId })\r\n .subscribe((res: ISignatureOutputModel[]) => {\r\n this.signatureList = res;\r\n }, (err: any) => { });\r\n }\r\n public showAttachmentList(event: any) {\r\n this.IsShowAttachmentList = !this.IsShowAttachmentList;\r\n this.anchorElementPopup = event.target;\r\n }\r\n public closeAttachmentList() {\r\n this.IsShowAttachmentList = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n showDocumentCart() {\r\n let obj: any = {}\r\n obj[\"type\"] = \"Select Document\";\r\n if (this.documentList.length > 0) {\r\n obj[\"data\"] = this.documentList;\r\n }\r\n this.IsShowAttachmentList = false;\r\n const dialogRef = this.dialog.open(DocumentMessageViewComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.receivedDoc = res.filter((data: any) => data.isSelected == true);\r\n Array.prototype.push.apply(this.documentList, this.receivedDoc);\r\n }\r\n else {\r\n if (this.documentList.length < 0) {\r\n this.documentList = [];\r\n }\r\n }\r\n });\r\n }\r\n removeDocument(dataItem: any) {\r\n this.documentList.forEach((value, index) => {\r\n if (value.docId == dataItem.docId) {\r\n this.documentList.splice(index, 1);\r\n }\r\n });\r\n }\r\n showMessageCart() {\r\n let obj: any = {}\r\n obj[\"type\"] = \"Select Message\";\r\n if (this.messageList.length > 0) {\r\n obj[\"data\"] = this.messageList;\r\n }\r\n this.IsShowAttachmentList = false;\r\n const dialogRef = this.dialog.open(DocumentMessageViewComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.receivedDoc = res.filter((data: any) => data.isSelected == true);\r\n Array.prototype.push.apply(this.messageList, this.receivedDoc);\r\n }\r\n else {\r\n if (this.messageList.length < 0) {\r\n this.messageList = [];\r\n }\r\n }\r\n });\r\n }\r\n removeMessage(dataItem: any) {\r\n this.messageList.forEach((value, index) => {\r\n if (value.messageId == dataItem.messageId) {\r\n this.messageList.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n deleteFile(rowIndex: any) {\r\n this.attachmentsList.splice(rowIndex, 1);\r\n }\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n getValue(selectedText: any) {\r\n this.isRevisedDateInvalid = selectedText.value == null;\r\n this.RespondOn = selectedText.value;\r\n }\r\n getSentOnValue(selectedText: any) {\r\n this.isSentDateInvalid = selectedText.value == null;\r\n this.SentOn = selectedText.value;\r\n }\r\n getTimeValue(selectedText: any) {\r\n }\r\n addDays() {\r\n let value = this.getFormValue('txtNoOfDays', this.messageGroupForm);\r\n if (!isNaN(value)) {\r\n var futureDate = new Date();\r\n futureDate.setDate(futureDate.getDate() + value);\r\n this.RespondOn = formatDate(futureDate, 'dd-MM-yyyy', 'en-US');;\r\n this.datevalue = futureDate;\r\n return futureDate;\r\n }\r\n else {\r\n this.notificationService.showToast(\"Enter Valid Number\", \"Warning\");\r\n }\r\n return null;\r\n }\r\n\r\n validateMemberSelection(abstractControl: AbstractControl): ValidationErrors | null {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (selectedValue && !selectedValue.every(member => this.masterMembers.includes(member))) {\r\n return { IsError: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private createSerachFilter(formControlName: string): Observable {\r\n // Note: listen for search text changes\r\n let x: any = this.messageGroupForm\r\n return x ? x.get(formControlName).valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\")) : new Observable();;\r\n }\r\n private filterMembers(): void {\r\n this.toFilteredMembers = this.getFilteredMembers(this.tofilter$);\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n this.bccFilteredMembers = this.getFilteredMembers(this.bccfilter$);\r\n }\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n scan((allMembers, newMembers) => allMembers.concat(newMembers), []),\r\n );\r\n }\r\n ))\r\n }\r\n // Fake backend api\r\n private getMembersFake(startsWith: string, page: number): any {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter((option: any) => option.memberName.toLowerCase().includes(startsWith.toLowerCase()));\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"message\":\r\n this.messageGroupForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n }\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'to':\r\n this.toggleToSelection(member);\r\n break;\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n case 'bcc':\r\n this.togglebccSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'to':\r\n result = this.toMembers != null ? this.toMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'bcc':\r\n result = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n toggleToSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.toMembers != null ? this.toMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.toMembers.splice(index, 1);\r\n this.toFormMembers?.value.splice(index, 1);\r\n this.toFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.toMembers.push(member);\r\n this.toFormMembers?.value.push(member);\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n }\r\n }\r\n resetToMemberFilter() {\r\n this.messageGroupForm.get('toMembersCtrl')?.setValue('');\r\n this.toInput.nativeElement.value = '';\r\n this.toInput.nativeElement.blur();\r\n }\r\n removeTo(member: ITransmittalMemberModel): void {\r\n const index = this.toMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.toMembers.splice(index, 1);\r\n if (this.toFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.toFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.toFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetToMemberFilter();\r\n }\r\n }\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n resetCcMemberFilter() {\r\n this.messageGroupForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.ccMembers.splice(index, 1);\r\n if (this.ccFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n togglebccSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.bccMembers.splice(index, 1);\r\n this.bccFormMembers?.value.splice(index, 1);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.bccMembers.push(member);\r\n this.bccFormMembers?.value.push(member);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n resetbccMemberFilter() {\r\n this.messageGroupForm.get('bccMembersCtrl')?.setValue('');\r\n this.bccInput.nativeElement.value = '';\r\n this.bccInput.nativeElement.blur();\r\n }\r\n\r\n removebcc(member: ITransmittalMemberModel): void {\r\n const index = this.bccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.bccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.bccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n\r\n\r\n // use getter method to access toMembers control value easily\r\n get toFormMembers() {\r\n return this.messageGroupForm.get('toMembers');\r\n }\r\n get ccFormMembers() {\r\n return this.messageGroupForm.get('ccMembers');\r\n }\r\n get bccFormMembers() {\r\n return this.messageGroupForm.get('bccMembers');\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n clickLocalAttachment() {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, msgId: -1, libraryName: FileUploadLibrary.Communication, createdBy: this.memberId, documents: [{ value: -1, text: this.messageNo, revisionNo: \"\" }], isEditable: false },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n });\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n\r\n });\r\n await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canManualNo = result1.some(data => data.feature_Desc == 'Manual No');\r\n if (!this.canManualNo && this.numFormat == 'Manual')\r\n this.numFormat = 'Auto';\r\n });\r\n\r\n }\r\n\r\n async getMessageGroupList() {\r\n this.groupList = await this.communicationService.GetMessageGroup({ MemberId: this.memberId, ProjectId: this.projectId }).toPromise();\r\n let mgList1 = this.groupList.map((element => {\r\n return { \"groupId\": element.groupId, \"groupDescription\": element.groupDescription };\r\n }));\r\n this.mgList = mgList1.reduce((accumalator: any, current: any) => {\r\n if (\r\n !accumalator.some(\r\n (item: any) => item.groupId === current.groupId && item.groupDescription === current.groupDescription\r\n )\r\n ) {\r\n accumalator.push(current);\r\n }\r\n return accumalator;\r\n }, []);\r\n\r\n }\r\n\r\n onMGValueChange(event: any, formControlName: string) {\r\n\r\n if (formControlName == 'formMGList') {\r\n this.messageGroup = event.text;\r\n }\r\n // this.messageGroupForm.get(formControlName)?.setValue(event.value);\r\n this.bindMembers(event.value);\r\n }\r\n bindMembers(value: any) {\r\n this.bindGroupList = this.groupList.filter(x => x.groupId == value);\r\n this.toList = this.bindGroupList.filter(x => x.receiverType == 2).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.toMembers = this.getMGListMembers(this.toList);\r\n if (this.toMembers != null) {\r\n this.toMembers = this.toMembers.filter(data => data != null);\r\n this.toFormMembers?.setValue([...this.toMembers]);\r\n }\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n\r\n this.ccList = this.bindGroupList.filter(x => x.receiverType == 3).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.ccMembers = this.getMGListMembers(this.ccList);\r\n if (this.ccMembers != null) {\r\n this.ccMembers = this.ccMembers.filter(data => data != null);\r\n this.ccFormMembers?.setValue([...this.ccMembers]);\r\n }\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n\r\n this.bccList = this.bindGroupList.filter(x => x.receiverType == 5).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.bccMembers = this.getMGListMembers(this.bccList);\r\n if (this.bccMembers != null) {\r\n this.bccMembers = this.bccMembers.filter(data => data != null);\r\n this.bccFormMembers?.setValue([...this.bccMembers]);\r\n }\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n\r\n private getMGListMembers(members: any): ITransmittalMemberModel[] {\r\n\r\n\r\n return members.map((x: any) => {\r\n let findmember = this.masterMembers.filter(y => y.memberId == x.value)[0];\r\n if (!!findmember) {\r\n let member: ITransmittalMemberModel = {\r\n memberId: x.value,\r\n memberName: x.title,\r\n memberShortName: findmember.memberShortName,\r\n eMailId: findmember.eMailId,\r\n staffPSNo: findmember.staffPSNo,\r\n mobileNo: findmember.mobileNo,\r\n groupBy: x.receiverGroup\r\n };\r\n return member;\r\n }\r\n });\r\n }\r\n\r\n omit_special_char(event) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57) || (k > 43 && k < 48) || k==92 || k==95);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n New Message\r\n Register Incoming Message\r\n \r\n
\r\n
\r\n
\r\n
\r\n Numbering Format : \r\n \r\n Semi\r\n Manual\r\n Auto\r\n \r\n
\r\n | \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Message Number | \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n Document

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

Message

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Message Serial No\r\n \r\n \r\n
\r\n \r\n \r\n Serial No\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Mail Type is required\r\n \r\n
\r\n \r\n \r\n Confidential\r\n \r\n  \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Sent On is required\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Response Required

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n \r\n \r\n \r\n No Of Days\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Response Date is required\r\n \r\n \r\n \r\n
\r\n \r\n \r\n To\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Bcc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\" (click)=\"showSignList($event)\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{index+1}}{{sign.signatureName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Documents

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Messages

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Files

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName + '.'+ dataItem.fileExtension}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

{{messageList}}

\r\n","import { Component, Input } from '@angular/core';\r\nimport { BaseFilterCellComponent, FilterService } from '@progress/kendo-angular-grid';\r\nimport { CompositeFilterDescriptor } from '@progress/kendo-data-query';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-datepicker-filter',\r\n templateUrl: './datepicker-filter.component.html',\r\n styleUrls: ['./datepicker-filter.component.css']\r\n})\r\nexport class DatepickerFilterComponent extends BaseFilterCellComponent{\r\n //@Input() public filter!: CompositeFilterDescriptor;\r\n @Input() public filter: any;\r\n @Input() public field: any;\r\n\r\n constructor(filterService: FilterService, private datepipe: DatePipe) { super(filterService); }\r\n\r\n public List: string[] = [\"Date\",\"Month\",\"Year\"]\r\n public viewType = \"month\";\r\n public formatType = \"dd MMM yyyy\";\r\n public selectedItem: string = this.List[0];\r\n public val!: Date|null;\r\n public showClear: boolean = false;\r\n\r\n dateChange(val:Date) {\r\n this.showClear = true;\r\n this.filterService.filter(\r\n this.removeFilter(this.field)\r\n );\r\n let valueField = this.selectedItem==\"Date\" ? this.datepipe.transform(val, 'yyyy-MM-dd') : this.selectedItem==\"Month\" ? this.datepipe.transform(val, 'yyyy-MM') : this.datepipe.transform(val, 'yyyy')\r\n let valueField2 = this.selectedItem==\"Date\" ? this.datepipe.transform(val, 'yyyy.MM.dd') : this.selectedItem==\"Month\" ? this.datepipe.transform(val, 'yyyy.MM') : valueField\r\n let temp = [{\r\n field: this.field,\r\n operator: 'contains',\r\n value: valueField\r\n },\r\n {\r\n field: this.field,\r\n operator: 'contains',\r\n value: valueField2\r\n }]\r\n let filter = this.filter ? this.filter.filters : []\r\n filter.push({\r\n filters: temp,\r\n logic: 'or'\r\n })\r\n this.applyFilter({\r\n filters: filter,\r\n logic: 'and'\r\n });\r\n }\r\n\r\n public dropdownChange(val: string) {\r\n this.val = null;\r\n val==this.List[0] ? this.viewType = \"month\" : val==this.List[1] ? this.viewType = \"year\" : this.viewType = \"decade\";\r\n val==this.List[0] ? this.formatType = \"dd MMM yyyy\" : val==this.List[1] ? this.formatType = \"MMMM yyyy\" : this.formatType = \"yyyy\";\r\n }\r\n\r\n public clearDate() {\r\n this.val = null;\r\n this.showClear = false;\r\n this.filterService.filter(\r\n this.removeFilter(this.field)\r\n );\r\n }\r\n}","\r\n\r\n\r\n\r\n\r\n","import { AfterContentInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { ScheduleDefinitionService } from 'src/app/Service/scheduledefintion/scheduledefintion.service';\r\nimport { IDocSetModel } from 'src/app/ViewModel/ScheduleDefinitionModel';\r\nimport { DynamicFormComponent } from '../dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FieldConfig } from '../dynamic-form/interface/field.interface';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-dci-filter',\r\n templateUrl: './dci-filter.component.html',\r\n styleUrls: ['./dci-filter.component.css']\r\n})\r\nexport class DciFilterComponent implements OnInit, AfterContentInit {\r\n\r\n docIndex: number = 0;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public stageList: any[] = [];\r\n public dwgList!: any[];\r\n public discipline!: any[];\r\n public structure!: any[];\r\n public enableFilter = false;\r\n public memberLinkedGroupID!: number;\r\n public from_Date: string | null = null;\r\n public to_Date: string | null = null;\r\n public stages: number | null = null;\r\n public disciplineId: string | null = null;\r\n public structureId: string | null = null;\r\n public drg_Type: string | null = null;\r\n public fromDate: any;\r\n public requiredField!: any;\r\n public ToMinDate!: Date;\r\n public Doc_typeid!: any | null;\r\n public Doc_type: any[] = [\r\n { value: '1', viewValue: 'DCI' },\r\n { value: '2', viewValue: 'Ext DCI' },\r\n { value: '3', viewValue: 'Std DCI' },\r\n { value: '4', viewValue: 'Vendor DCI' },\r\n ];\r\n public transmittal_no: string | null = null;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n DCI_Type!: FormGroup;\r\n docSetList: IDocSetModel[] = [];\r\n public docset_id: number | null = null;\r\n public doc_no!: string;\r\n @Output() valueChange = new EventEmitter();\r\n @Input() inputFields!: string;\r\n\r\n @ViewChild(\"docSetForm\") dynamicForm: DynamicFormComponent;\r\n elementsConfig: FieldConfig[] = [];\r\n\r\n constructor(private _projInfoService: ProjectInfoService, private _formBuilder: FormBuilder,\r\n private _commonService: CommonService, private _scheDefService: ScheduleDefinitionService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getDropDownValue();\r\n this.setDCIType_form();\r\n this._commonService.getProjectMemberLinkGroupDetails(this.projectId, this.memberId).subscribe(data => {\r\n this.memberLinkedGroupID = data[0].groupId;\r\n })\r\n this.getDynamicForm();\r\n }\r\n\r\n ngAfterContentInit() {\r\n switch (this.inputFields) {\r\n case 'final_drawing':\r\n this.requiredField = {\r\n \"discipline\": true,\r\n \"structure\": true,\r\n \"dwg_doc\": true,\r\n \"workflow_Status\": true,\r\n \"doc_dci_type\": true,\r\n \"fromtodate\": true,\r\n \"transmittal_no\": false,\r\n \"document_Set\": false,\r\n \"btn-stylee-required\": true,\r\n \"doc_no\": false\r\n }\r\n break;\r\n case 'pending_drawing_status':\r\n this.requiredField = {\r\n \"discipline\": true,\r\n \"structure\": true,\r\n \"dwg_doc\": true,\r\n \"workflow_Status\": true,\r\n \"doc_dci_type\": true,\r\n \"fromtodate\": true,\r\n \"transmittal_no\": false,\r\n \"document_Set\": false,\r\n \"btn-stylee-required\": true,\r\n \"doc_no\": false\r\n }\r\n break;\r\n case 'respond_workflow':\r\n this.requiredField = {\r\n \"discipline\": true,\r\n \"structure\": true,\r\n \"dwg_doc\": true,\r\n \"workflow_Status\": true,\r\n \"fromtodate\": true,\r\n \"doc_dci_type\": true,\r\n \"doc_no\": false\r\n }\r\n break;\r\n case 'search_dci':\r\n this.requiredField = {\r\n \"discipline\": true,\r\n \"structure\": true,\r\n \"dwg_doc\": true,\r\n \"workflow_Status\": true,\r\n \"doc_dci_type\": true,\r\n \"fromtodate\": true,\r\n \"transmittal_no\": true,\r\n \"document_Set\": true,\r\n \"btn-stylee-required\": true,\r\n \"doc_no\": true\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n setDCIType_form() {\r\n this.DCI_Type = this._formBuilder.group({\r\n dci_dwg: new FormControl(false),\r\n ext_dci: new FormControl(false),\r\n std_drawing: new FormControl(false),\r\n ven_dwg: new FormControl(false),\r\n })\r\n }\r\n\r\n getDropDownValue() {\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Workflow Status'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.stageList = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'DWG / DOC'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.dwgList = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Discipline'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.discipline = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Structure / Package'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.structure = res;\r\n });\r\n\r\n this._scheDefService.getDocSetList({\r\n project_Id: this.projectId,\r\n group_Id: this.groupId\r\n }).subscribe((res: IDocSetModel[]) => {\r\n this.docSetList = res;\r\n });\r\n }\r\n\r\n getClass() {\r\n if (this.requiredField[\"btn-stylee-required\"]) {\r\n return 'my_class1'\r\n } else {\r\n return 'my_class2'\r\n }\r\n }\r\n\r\n selectedDwg(value: any) {\r\n if (value.value != \"-2\") {\r\n this.drg_Type = value.additionalValues.additionalValues.dedId.toString();\r\n } else {\r\n this.drg_Type = null;\r\n }\r\n }\r\n\r\n getFromDateValue(date: any) {\r\n this.from_Date = date;\r\n }\r\n\r\n getToDateValue(date: any) {\r\n this.to_Date = date;\r\n }\r\n\r\n selectedStage(value: any) {\r\n if (value.value != \"-2\") {\r\n this.stages = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.stages = null;\r\n }\r\n }\r\n\r\n selectedScheduleType(value: any) {\r\n let docdata\r\n if (value && value.emittingList)\r\n docdata = value.emittingList.map((x: {\r\n value: any;\r\n }) => +x.value);\r\n\r\n if (docdata && docdata.length > 0)\r\n this.Doc_typeid = docdata;\r\n else\r\n this.Doc_typeid = null;\r\n }\r\n\r\n selectedDiscipline(value: any) {\r\n if (value.value != \"-2\") {\r\n this.disciplineId = value.additionalValues.additionalValues.dedId.toString();\r\n } else {\r\n this.disciplineId = null;\r\n\r\n }\r\n }\r\n\r\n selectedSturcture(value: any) {\r\n if (value.value != \"-2\") {\r\n this.structureId = value.additionalValues.additionalValues.dedId.toString();\r\n } else {\r\n this.structureId = null;\r\n\r\n }\r\n }\r\n\r\n valueChanged() {\r\n switch (this.inputFields) {\r\n case 'final_drawing':\r\n this.finalDrawingFilterInputEmit();\r\n break;\r\n case 'pending_drawing_status':\r\n this.pendingDrawingFilterInputEmit();\r\n break;\r\n case 'respond_workflow':\r\n this.respondWorkFlowInputEmit();\r\n break;\r\n case 'search_dci':\r\n this.SearchDCI_InputEmit();\r\n break;\r\n }\r\n }\r\n\r\n SearchDCI_InputEmit() {\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj: any = {\r\n \"project_Id\": this.projectId,\r\n \"group_Id\": this.memberLinkedGroupID,\r\n \"from_Date\": this.from_Date,\r\n \"to_Date\": this.to_Date,\r\n \"stages\": this.stages,\r\n \"schedule_Type\": (!!this.Doc_typeid && this.Doc_typeid.length > 0) ? this.Doc_typeid.toString() : null,\r\n \"drg_Type\": this.drg_Type,\r\n \"disc_Id\": this.disciplineId,\r\n \"struct_Id\": this.structureId,\r\n \"transmittal_no\": this.transmittal_no,\r\n \"docset_id\": this.docset_id,\r\n \"doc_no\": this.doc_no,\r\n Dynamic_Id: res,\r\n }\r\n this.valueChange.emit(obj);\r\n })\r\n }\r\n\r\n finalDrawingFilterInputEmit() {\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj = {\r\n \"project_Id\": this.projectId,\r\n \"group_Id\": this.memberLinkedGroupID,\r\n \"from_Date\": this.from_Date,\r\n \"to_Date\": this.to_Date,\r\n \"stages\": this.stages,\r\n \"schedule_Type\": (!!this.Doc_typeid && this.Doc_typeid.length > 0) ? this.Doc_typeid.toString() : null,\r\n \"drg_Type\": this.drg_Type,\r\n \"disc_Id\": this.disciplineId,\r\n \"struct_Id\": this.structureId,\r\n Dynamic_Id: res,\r\n }\r\n this.valueChange.emit(obj);\r\n })\r\n }\r\n\r\n pendingDrawingFilterInputEmit() {\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj = {\r\n \"project_Id\": this.projectId,\r\n \"group_Id\": this.memberLinkedGroupID,\r\n \"from_Date\": this.from_Date,\r\n \"to_Date\": this.to_Date,\r\n \"stages\": this.stages,\r\n \"schedule_Type\": (!!this.Doc_typeid && this.Doc_typeid.length > 0) ? this.Doc_typeid.toString() : null,\r\n \"drg_Type\": this.drg_Type,\r\n \"disc_Id\": this.disciplineId,\r\n \"struct_Id\": this.structureId,\r\n Dynamic_Id: res,\r\n }\r\n this.valueChange.emit(obj);\r\n })\r\n }\r\n\r\n ScheduleTypeParamCreation(is_dci = false): any {\r\n let schedule_Type: any[] = [];\r\n if (this.DCI_Type.get('dci_dwg')?.value == true) {\r\n schedule_Type.push(1);\r\n }\r\n if (this.DCI_Type.get('ext_dci')?.value == true) {\r\n schedule_Type.push(2);\r\n }\r\n if (this.DCI_Type.get('std_drawing')?.value == true) {\r\n schedule_Type.push(4);\r\n }\r\n if (this.DCI_Type.get('ven_dwg')?.value == true) {\r\n schedule_Type.push(3);\r\n }\r\n let schedule_TypeIdConvert: any = schedule_Type.toString();\r\n if (!schedule_TypeIdConvert) {\r\n schedule_TypeIdConvert = null;\r\n }\r\n if (is_dci && schedule_Type.length > 0)\r\n return schedule_Type\r\n else\r\n return schedule_TypeIdConvert\r\n }\r\n\r\n respondWorkFlowInputEmit() {\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj = {\r\n \"disc_Id\": this.disciplineId,\r\n \"struct_Id\": this.structureId,\r\n \"dwgID\": this.drg_Type,\r\n \"workflowId\": this.stages,\r\n \"from_Date\": this.from_Date,\r\n \"to_Date\": this.to_Date,\r\n \"Doc_typeid\": this.Doc_typeid,\r\n Dynamic_Id: res,\r\n }\r\n this.valueChange.emit(obj);\r\n })\r\n }\r\n\r\n SelectedDocSet(value: any) {\r\n if (value.value != \"-2\") {\r\n this.docset_id = value.additionalValues.additionalValues.doc_Set_Id;\r\n }\r\n }\r\n\r\n async getDynamicForm() {\r\n this._projInfoService.getProjectElements({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n IsQueryForStaticElement: false\r\n }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n\r\n this.elementsConfig = res.filter(s => {\r\n return s.isMandatory == true;\r\n }).map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n value: new BehaviorSubject(null)\r\n };\r\n\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n this.onCascadingAutocomplete_Change();\r\n this.copyElementDetailsFromSource();\r\n });\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach((data: any) => {\r\n if (!!data.child_de_id) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe(x => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projInfoService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n } else {\r\n _field[0].values = [];\r\n }\r\n }, err => { });\r\n } else {\r\n _field[0].values = [];\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n private copyElementDetailsFromSource() {\r\n let sourceProjElementForm: FormGroup = this.dynamicForm.value;\r\n this.projectElements.filter(s => {\r\n return s.isNumbering == false\r\n }).forEach(x => {\r\n let selectedValue: IProjectElementDetailsOutput = sourceProjElementForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let field: FieldConfig | undefined = this.elementsConfig.find(ele => ele.de_id == selectedValue.deId && ele.deDescription == selectedValue.deDescription);\r\n if (field && field.value) {\r\n field.value.next(selectedValue.dedId);\r\n }\r\n }\r\n })\r\n }\r\n\r\n async LoadSearchDetails(): Promise {\r\n let resForm: FormGroup | undefined | null = this.dynamicForm.form;\r\n let FilterDetails: any[] = [];\r\n\r\n this.projectElements.map(async x => {\r\n let result: any;\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n result = {\r\n dE_Id: x.elementId,\r\n dED_Id: selectedValue.dedId\r\n }\r\n FilterDetails.push(result);\r\n })\r\n\r\n return FilterDetails;\r\n }\r\n}","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Transmittal No.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Document No.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { IDocumentListInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { IMsgListInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport * as moment from 'moment';\r\nimport { IPorjectInputModel } from 'src/app/ViewModel/ScheduleDefinitionModel';\r\nimport { IScheduleDocInfo } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\n\r\n@Component({\r\n selector: 'app-document-message-view',\r\n templateUrl: './document-message-view.component.html',\r\n styleUrls: ['./document-message-view.component.css']\r\n})\r\nexport class DocumentMessageViewComponent implements OnInit {\r\n\r\n public documentList!: any[];\r\n public mySelection: string[] = [];\r\n public gridView: any[] = [];\r\n public gridView1: any[] = [];\r\n public selectionAction: any[] = [];\r\n public currentPage!: string;\r\n public selecte_documentView: boolean = false;\r\n public LastViewingRecords = 30;\r\n public docType: string = '';\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number ;\r\n projectCode!: string ;\r\n public skip: number = 0;\r\n public RDDocList : any;\r\n public SDDocList : any;\r\n public MSGList : any;\r\n\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n @ViewChild(DataBindingDirective) directive!: DataBindingDirective;\r\n @ViewChild('docgrid') docGrid: any;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n public communicationService: CommunicationService,\r\n private encryptDecryptService: EncryptDecryptService,\r\n private docService: DocumentService,\r\n private scheduleDocService: ScheduleDocumentService,\r\n private commonService: CommonService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.currentPage = this.data.type;\r\n this.projectId = this.commonService.getProjectId();\r\n this.projectCode = this.commonService.getProjectCode();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.docType = 'RD';\r\n this.getGridData();\r\n }\r\n\r\n async getGridData() {\r\n\r\n if (this.data.type == \"Select Document\") {\r\n this.selecte_documentView = true;\r\n let inputModel: IDocumentListInputModel = {\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId(),\r\n memberId: this.commonService.getLoggedInUserId(),\r\n transType: 'MyDocuments',\r\n createdFromDays: 0,\r\n docId: null,\r\n docNo: null,\r\n revisionNo: null\r\n }\r\n this.documentList = await this.docService.getDocumentList(inputModel).toPromise();\r\n this.documentList = this.documentList.map((x, index) => {\r\n return {\r\n itemIndex: index,\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n authorisedByName: x.authorisedByName,\r\n createdByName: x.createdBy\r\n }\r\n });\r\n if (!!this.data.data) {\r\n let documentList = this.documentList.filter(data => {\r\n let result: boolean = true;\r\n for (let eleIndex = 0; eleIndex < this.data.data.length; eleIndex++) {\r\n let element: any = this.data.data[eleIndex];\r\n if (data.docId == element.docId && data.revision == element.revision) {\r\n result = false;\r\n break /*Once record match occured, break the inner loop*/\r\n }\r\n }\r\n return result;\r\n });\r\n this.gridView = documentList;\r\n }\r\n else {\r\n this.gridView = this.documentList;\r\n }\r\n\r\n this.RDDocList = this.gridView ;\r\n }\r\n else {\r\n this.selecte_documentView = false;\r\n var toDate = new Date(this.getDateFormat());\r\n let lastViewingDate = moment().add(-this.LastViewingRecords, 'days');\r\n var fromDate = new Date(lastViewingDate.toDate());\r\n let reqData: IMsgListInputModel = {\r\n transType: \"MyMessages\",\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId(),\r\n memberId: this.commonService.getLoggedInUserId(),\r\n mailBoxType: null,\r\n isConfidential: null,\r\n sentType: this.LastViewingRecords == 0 ? null : 'Sent',\r\n sentFrom: this.LastViewingRecords == 0 ? null : fromDate,\r\n sentTo: this.LastViewingRecords == 0 ? null : toDate,\r\n messageId: null,\r\n messageNo: null\r\n };\r\n this.documentList = await this.communicationService.GetMessageList(reqData).toPromise();\r\n if (!!this.data.data) {\r\n let documentList = this.documentList.filter(data => {\r\n let result: boolean = true;\r\n for (let eleIndex = 0; eleIndex < this.data.data.length; eleIndex++) {\r\n let element: any = this.data.data[eleIndex];\r\n if (data.messageId == element.messageId) {\r\n result = false;\r\n break /*Once record match occured, break the inner loop*/\r\n }\r\n }\r\n return result;\r\n });\r\n\r\n this.gridView1 = documentList;\r\n } else {\r\n this.gridView1 = this.documentList;\r\n }\r\n\r\n this.MSGList = this.gridView1 ;\r\n }\r\n\r\n }\r\n\r\n\r\n loadscheduleDocuments() {\r\n let inputModel: IPorjectInputModel = { project_Id: this.projectId, group_Id: this.groupId };\r\n\r\n inputModel.latestRecords_Count = 0;\r\n if (this.commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n inputModel.docId = requestedObject['inputDocId'];\r\n inputModel.revisionNo = requestedObject['inputRevNo'];\r\n }\r\n if (this.commonService.hasSearchedObject()) {\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('searchedObject')));\r\n inputModel.docNo = searchedObject['searchDocNo'];\r\n inputModel.revisionNo = searchedObject['searchRevNo'];\r\n }\r\n this.scheduleDocService.GetScheduleDocList(inputModel).subscribe((res: IScheduleDocInfo[]) => {\r\n res.forEach(x => x.isSelected = false)\r\n if(this.selectionAction.length>0){\r\n this.selectionAction.forEach(x => x.isSelected = true)\r\n }\r\n this.documentList = res.map((x, index) => {\r\n let document: any = {\r\n itemIndex: index,\r\n docId: x.doc_Id,\r\n revision: x.revision_No,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n createdBy: x.created_By,\r\n };\r\n return document;\r\n });\r\n\r\n if (!!this.data.data) {\r\n let documentList = this.documentList.filter(data => {\r\n let result: boolean = true;\r\n for (let eleIndex = 0; eleIndex < this.data.data.length; eleIndex++) {\r\n let element: any = this.data.data[eleIndex];\r\n if (data.docId == element.docId && data.revision == element.revision) {\r\n result = false;\r\n break /*Once record match occured, break the inner loop*/\r\n }\r\n }\r\n return result;\r\n });\r\n this.gridView = documentList;\r\n }\r\n else {\r\n this.gridView = this.documentList;\r\n }\r\n this.SDDocList = this.gridView ;\r\n this.dataBinding.skip = 0;\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n\r\n return today1;\r\n }\r\n\r\n\r\n public onFilterRD(inputValue: string): void {\r\n this.gridView = process(this.RDDocList, {\r\n filter: {\r\n logic: \"or\",\r\n filters: [\r\n {\r\n field: 'documentNo',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'title',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'revision',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'createdBy',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n\r\n ],\r\n }\r\n }).data;\r\n this.dataBinding.skip = 0;\r\n }\r\n\r\n\r\n public onFilterSD(inputValue: string): void {\r\n this.gridView = process(this.SDDocList, {\r\n filter: {\r\n logic: \"or\",\r\n filters: [\r\n {\r\n field: 'documentNo',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'title',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'revision',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'createdBy',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n\r\n ],\r\n }\r\n }).data;\r\n this.dataBinding.skip = 0;\r\n }\r\n\r\n public onFilterMSG(inputValue: string): void {\r\n this.gridView = process(this.MSGList, {\r\n filter: {\r\n logic: \"or\",\r\n filters: [\r\n {\r\n field: 'messageNumber',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'messageSubject',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'from',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n {\r\n field: 'messageTypeDesc',\r\n operator: 'contains',\r\n value: inputValue\r\n },\r\n\r\n ],\r\n }\r\n }).data;\r\n this.dataBinding.skip = 0;\r\n }\r\n onSelectionChangeRD(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem);\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { docId: any; revision: any; }; }) => {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (element.dataItem.docId == this.selectionAction[i].docId && element.dataItem.revision == this.selectionAction[i].revision) {\r\n this.selectionAction.splice(i, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSelectionChangeSD(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => { \r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem); \r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { docId: any; revision: any; }; }) => {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (element.dataItem.docId == this.selectionAction[i].docId && element.dataItem.revision == this.selectionAction[i].revision) {\r\n this.selectionAction.splice(i, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSelectionChangeMSG(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => { \r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem); \r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { messageId: any; }; }) => {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (element.dataItem.messageId == this.selectionAction[i].messageId) {\r\n this.selectionAction.splice(i, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close(this.selectionAction);\r\n }\r\n\r\n postData() {\r\n this.closeDialog();\r\n }\r\n onDocTypeChange(value: string) {\r\n this.docType = value;\r\n if (this.docType == 'SD') {\r\n this.loadscheduleDocuments();\r\n }\r\n if (this.docType == 'RD') {\r\n this.getGridData();\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n

{{currentPage}}

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Repository Document\r\n Workflow Document\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageTypeDesc}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FilterService, BaseFilterCellComponent } from '@progress/kendo-angular-grid';\r\nimport { CompositeFilterDescriptor } from '@progress/kendo-data-query';\r\n\r\n@Component({\r\n selector: 'app-dropdown-filter',\r\n templateUrl: './dropdown-filter.component.html',\r\n styleUrls: ['./dropdown-filter.component.css']\r\n})\r\nexport class DropdownFilterComponent extends BaseFilterCellComponent implements OnInit {\r\n // @ViewChild('select') select: MatSelect;\r\n // @ViewChild('search') inputVal;\r\n //@Input() public filter!: CompositeFilterDescriptor;\r\n @Input() public filter: any;\r\n @Input() public data!: string[];\r\n @Input() public Field!: string;\r\n public newlist2 :any= [];\r\n // public newList = [];\r\n // public selection = [];\r\n // public allSelected=false;\r\n // public isDisabled = false;\r\n \r\n constructor(filterService: FilterService) { super(filterService); }\r\n\r\n ngOnInit() {\r\n this.data = this.data.map((x:any) => x[this.Field]).filter((x, idx, xs) => xs.findIndex(y => y === x && y!=null && y!=\"\" && y!=\" \") === idx).sort();\r\n // this.newList = this.data;\r\n // if (!this.newList.length)\r\n // this.isDisabled=true;\r\n\r\n this.data.forEach((element,idx) => {\r\n this.newlist2.push({id:idx,name:element})\r\n });\r\n }\r\n\r\n /*\r\n Manual Filter\r\n **\r\n toggleAllSelection() {\r\n if (this.allSelected) {\r\n this.select.options.forEach((item: MatOption) => item.select());\r\n }\r\n else {\r\n this.select.options.forEach((item: MatOption) => item.deselect());\r\n }\r\n }\r\n\r\n optionClick() {\r\n let newStatus = true;\r\n this.select.options.forEach((item: MatOption) => {\r\n if (!item.selected) {\r\n newStatus = false;\r\n }\r\n });\r\n this.allSelected = newStatus;\r\n }\r\n\r\n public onChange(val: any): void {\r\n this.applyFilter(this.removeFilter(this.Field))\r\n if(val.value.length) {\r\n let temp = []\r\n val.value.forEach(element => {\r\n temp.push({\r\n field: this.Field,\r\n operator: 'eq',\r\n value: element\r\n })\r\n });\r\n let filter = this.filter ? this.filter.filters : []\r\n filter.push({\r\n filters: temp,\r\n logic: 'or'\r\n })\r\n this.applyFilter({\r\n filters: filter,\r\n logic: 'and'\r\n }); // update the root filter\r\n }\r\n }\r\n\r\n onKey(value) { \r\n this.newList = this.search(value);\r\n }\r\n \r\n search(value: string) { \r\n let filter = value.toLowerCase();\r\n return this.data.filter(option => option.toLowerCase().startsWith(filter));\r\n }\r\n\r\n triggerEvent(val) {\r\n if (val===false) {\r\n this.inputVal.nativeElement.value = ''\r\n this.newList = this.data;\r\n }\r\n }\r\n */\r\n\r\n public onChange2(val: any): void {\r\n this.applyFilter(this.removeFilter(this.Field))\r\n if(val.emittingList.length) {\r\n let temp: { field: string; operator: string; value: any; }[] = []\r\n val.emittingList.forEach((element: { text: any; value: any}) => {\r\n temp.push({\r\n field: this.Field,\r\n operator: 'eq',\r\n value: this.newlist2.filter(x=>x.id==element.value)[0].name\r\n })\r\n });\r\n let filter = this.filter ? this.filter.filters : []\r\n filter.push({\r\n filters: temp,\r\n logic: 'or'\r\n })\r\n this.applyFilter({\r\n filters: filter,\r\n logic: 'and'\r\n }); // update the root filter\r\n }\r\n }\r\n}","\r\n\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { FieldConfig } from \"../../interface/field.interface\";\r\n\r\n@Component({\r\n selector: 'form-field-date-picker',\r\n templateUrl: './eipdatepicker.component.html'\r\n})\r\nexport class EipDatePickerComponent {\r\n field!: FieldConfig;\r\n group!: FormGroup;\r\n formName:string = '';\r\n constructor() { }\r\n getWaterMark(): string | undefined {\r\n return this.field.label;\r\n }\r\n\r\n getId():string{\r\n return this.formName+this.field.name;\r\n }\r\n\r\n getSelectedDate(value: any) {\r\n if(this.field.name)\r\n this.group.get(this.field.name)?.setValue(value);\r\n }\r\n}","\r\n","import { AfterViewInit, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { EIPDateRangePickerComponent } from \"eipdate-range-picker\";\r\nimport { FieldConfig } from \"../../interface/field.interface\";\r\n\r\n@Component({\r\n selector: 'form-field-datarange',\r\n templateUrl: './eipdaterange.component.html'\r\n})\r\nexport class EipDateRangeComponent implements OnInit, AfterViewInit {\r\n @ViewChild('dateRangePicker') dateRange!: EIPDateRangePickerComponent;\r\n isSelectionRequired: boolean = true;\r\n startDate!: Date;\r\n endDate!: Date;\r\n field!: FieldConfig;\r\n group!: FormGroup;\r\n formName: string = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.field.Var) {\r\n this.startDate = null\r\n this.endDate = null;\r\n }\r\n else {\r\n this.startDate = this.field.startDate ? this.field.startDate : new Date();\r\n this.endDate = this.field.endDate ? this.field.endDate : new Date();\r\n }\r\n if (this.field.rangeControlNames) {\r\n this.group.get(this.field.rangeControlNames[0])?.setValue(this.startDate)\r\n this.group.get(this.field.rangeControlNames[1])?.setValue(this.endDate)\r\n //Update the startdate & enddate of daterange control, whenever changes in form control value update \r\n this.group.get(this.field.rangeControlNames[0])?.valueChanges.subscribe(x => this.startDate = x)\r\n this.group.get(this.field.rangeControlNames[1])?.valueChanges.subscribe(x => this.endDate = x)\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (!!this.field.minDate) {\r\n this.dateRange.Min = new Date(this.field.minDate);\r\n }\r\n if (!!this.field.maxDate) {\r\n this.dateRange.Max = new Date(this.field.maxDate);\r\n }\r\n //Update daterange, min & max date - Whenever changes are done in (field: FieldConfig) value\r\n if (this.field.value)\r\n this.field.value.subscribe((x: any[]) => {\r\n if (x && x.length == 2) {\r\n this.setStartDateValue(x[0] ? new Date(x[0]) : null);\r\n this.setEndDateValue(x[1] ? new Date(x[1]) : null);\r\n }\r\n if (!!this.field.minDate) {\r\n this.dateRange.Min = new Date(this.field.minDate);\r\n }\r\n if (!!this.field.maxDate) {\r\n this.dateRange.Max = new Date(this.field.maxDate);\r\n }\r\n });\r\n }\r\n\r\n getWaterMark(): string {\r\n return this.field.label ? this.field.label : '';\r\n }\r\n\r\n closedate(selectedText: Date, selectedText1: Date) {\r\n if (selectedText && this.field.rangeControlNames)\r\n this.group.get(this.field.rangeControlNames[0])?.setValue(null);\r\n if (selectedText && this.field.rangeControlNames)\r\n this.group.get(this.field.rangeControlNames[1])?.setValue(null);\r\n }\r\n getId(): string {\r\n return this.formName + this.field.name;\r\n }\r\n\r\n setStartDateValue(selectedText: Date) {\r\n if (selectedText && this.field.rangeControlNames)\r\n this.group.get(this.field.rangeControlNames[0])?.setValue(selectedText);\r\n // else\r\n // this.group.get(this.field.rangeControlNames[0])?.setValue(null);\r\n }\r\n\r\n setEndDateValue(selectedText: Date) {\r\n if (selectedText && this.field.rangeControlNames)\r\n this.group.get(this.field.rangeControlNames[1])?.setValue(selectedText);\r\n // else\r\n // this.group.get(this.field.rangeControlNames[1])?.setValue(null);\r\n }\r\n}","\r\n","import { ComponentFactoryResolver, Directive, Input, OnInit, ViewContainerRef } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { FieldConfig } from \"../../interface/field.interface\"\r\nimport { EipDatePickerComponent } from \"../EIPDatePicker/eipdatepicker.component\";\r\nimport { EipDateRangeComponent } from \"../EIPDateRange/eipdaterange.component\";\r\nimport { InputComponent } from \"../input/input.component\";\r\nimport { LabelComponent } from \"../label/label.component\";\r\nimport { SelectComponent } from \"../select/select.component\";\r\n\r\nconst componentMapper:any = {\r\n select: SelectComponent,\r\n input : InputComponent,\r\n eipdaterange : EipDateRangeComponent,\r\n eipdatepicker : EipDatePickerComponent,\r\n label : LabelComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[dynamicField]'\r\n})\r\nexport class DynamicFieldDirective implements OnInit {\r\n @Input() field!: FieldConfig;\r\n @Input() group!: FormGroup;\r\n @Input() formName:string = '';\r\n componentRef: any;\r\n constructor(private _resolver: ComponentFactoryResolver, private _container: ViewContainerRef) { }\r\n ngOnInit() {\r\n const factory = this._resolver.resolveComponentFactory(\r\n componentMapper[this.field.type]\r\n );\r\n this.componentRef = this._container.createComponent(factory);\r\n this.componentRef.instance.field = this.field;\r\n this.componentRef.instance.group = this.group;\r\n this.componentRef.instance.formName = this.formName;\r\n }\r\n}","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from \"@angular/forms\";\r\nimport { FieldConfig } from \"../../interface/field.interface\";\r\n@Component({\r\n selector: 'dynamic-form',\r\n templateUrl: './dynamic-form.component.html'\r\n})\r\nexport class DynamicFormComponent implements OnInit, AfterViewInit {\r\n @Input() repeatCount: number = 0;\r\n @Input() disabled: boolean = false;\r\n @Input() fields: FieldConfig[] = [];\r\n @Input() name: string = '';\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n subFields: FieldConfig[] = [];\r\n copyFields: FieldConfig[] = [];\r\n form!: FormGroup;\r\n constructor(private fb: FormBuilder) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n ngAfterViewInit() {\r\n }\r\n\r\n createControl() {\r\n const group = this.fb.group({});\r\n this.fields.forEach((field:any) => {\r\n if (field.type === \"button\") return;\r\n // For EIP DateRange Control, need to store start & end date value in form object\r\n if (field.type === \"eipdaterange\") {\r\n field.rangeControlNames?.forEach((val:any) => {\r\n const control = this.fb.control('');\r\n group.addControl(val, control);\r\n })\r\n }\r\n else {\r\n let formState: any;\r\n //Update selected value\r\n if (!!field.value) {\r\n let selectedDedId: any = field.value.value;\r\n if (!!selectedDedId)\r\n formState = field.value.value;\r\n }\r\n const control = this.fb.control(\r\n formState,\r\n this.bindValidations(field.validations || [])\r\n );\r\n if (this.disabled) {\r\n control.disable();\r\n }\r\n if(field.name)\r\n group.addControl(field.name, control);\r\n //form control for EIP Autocomplete component (Select component)\r\n if (field.type == \"select\") {\r\n const formControl = this.fb.control(\r\n formState,\r\n this.bindValidations(field.validations || [])\r\n );\r\n group.addControl(\"form\" + field.name, formControl);\r\n }\r\n }\r\n });\r\n this.form = group;\r\n }\r\n\r\n get value(): FormGroup {\r\n return this.form;\r\n }\r\n\r\n bindValidations(validations: any) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: { validator: any; }) => {\r\n validList.push(valid.validator);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n getCascadingAutocompleteDetails(name:any) {\r\n return this.fields.filter((data:any) => data.deDescription.trim() == name);\r\n }\r\n\r\n isNewRow(index: number): boolean {\r\n this.copyFields = [...this.fields];\r\n if (index == 1 || index % this.repeatCount == 1) {\r\n this.subFields = this.copyFields.splice(index - 1, this.repeatCount);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getColClass(): string {\r\n return \"col-\" + Number(12 / this.repeatCount);\r\n }\r\n\r\n fieldsLoaded(): boolean {\r\n return this.fields.length > 0;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { FieldConfig, Validator } from \"../../interface/field.interface\";\r\n\r\n@Component({\r\n selector: \"form-field-input\",\r\n templateUrl: './input.component.html'\r\n})\r\nexport class InputComponent implements OnInit {\r\n field!: FieldConfig;\r\n group!: FormGroup;\r\n formName:string = '';\r\n ngOnInit() {\r\n this.isMandatory();\r\n }\r\n\r\n isMandatory(): string | null {\r\n if (this.field.validations && this.field.validations.length > 0) {\r\n let requiredValidator: Validator | undefined = this.field.validations.find(x => x.name == 'required')\r\n if (requiredValidator)\r\n return 'required';\r\n }\r\n return null;\r\n }\r\n}\r\n","\r\n \r\n \r\n {{validation.message}}\r\n \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { FieldConfig } from \"../../interface/field.interface\";\r\n\r\n@Component({\r\n selector: \"form-field-label\",\r\n templateUrl: './label.component.html'\r\n})\r\nexport class LabelComponent implements OnInit {\r\n field!: FieldConfig;\r\n group!: FormGroup;\r\n formName:string = '';\r\n labelValue:string = '';\r\n ngOnInit() {\r\n if(!!this.field.value){\r\n this.labelValue = this.field.value.value;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

{{field.label}}

\r\n

{{labelValue}}

\r\n
","import { AfterViewInit, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { IProjectElementDetailsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { FieldConfig, Validator } from \"../../interface/field.interface\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { EIPAutoCompleteComponent } from \"eipauto-complete\";\r\n\r\n@Component({\r\n selector: 'form-field-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.css']\r\n})\r\nexport class SelectComponent implements OnInit, AfterViewInit {\r\n field: FieldConfig | any;\r\n group!: FormGroup;\r\n formName: string = '';\r\n formFieldName!: string;\r\n selectedDedId!: number;\r\n controlId!: string;\r\n waterMarkText: string | any;\r\n @ViewChild(EIPAutoCompleteComponent)\r\n autoCompleteComponent!: EIPAutoCompleteComponent;\r\n constructor(private _projectService: ProjectInfoService, private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.formFieldName = \"form\" + this.field.name;\r\n this.controlId = this.formFieldName + Date.now().toString();\r\n this.waterMarkText = this.isMandatory() ? this.field.name + \" * \" : this.field.name;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.bindElementDetails();\r\n //Update selected value, whenever dedId changes\r\n if (!!this.field.value) {\r\n this.field.value.subscribe((dedId: number) => {\r\n if (!!dedId && !!this.field.values && this.field.values.length > 0 && dedId > 0) {\r\n let selectedValue: IProjectElementDetailsOutput | any = this.field.values.find((x: { dedId: number; }) => x.dedId == dedId);\r\n if (!!selectedValue) {\r\n this.selectedDedId = selectedValue.dedId;\r\n this.group.get(this.formFieldName)?.setValue(this.selectedDedId);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n bindElementDetails() {\r\n this._projectService.getProjectElementDetails({\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId(), moduleId: this.field.module_id,\r\n deId: this.field.de_id, deDescription: this.field.deDescription, memberId: this.commonService.getLoggedInUserId()\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n this.field.values = res;\r\n //Update selected value, whenever dedId changes\r\n if (!!this.field.value) {\r\n let selectedDedId: any = this.field.value.value;\r\n if (!!selectedDedId && selectedDedId > 0) {\r\n this.field.value.next(selectedDedId)\r\n }\r\n else if (res.length == 1) {\r\n this.selectedDedId = this.field.values[0].dedId;\r\n this.group.get(this.formFieldName)?.setValue(this.selectedDedId);\r\n }\r\n }\r\n else if (res.length == 1) {\r\n this.selectedDedId = this.field.values[0].dedId;\r\n this.group.get(this.formFieldName)?.setValue(this.selectedDedId);\r\n }\r\n }, err => { });\r\n }\r\n\r\n isMandatory(): string | null {\r\n if (this.field.validations && this.field.validations.length > 0) {\r\n let requiredValidator: Validator | any = this.field.validations.find((x: { name: string; }) => x.name == 'required')\r\n if (requiredValidator)\r\n return 'required';\r\n }\r\n return null;\r\n }\r\n\r\n onselectedValueChange(val: any) {\r\n if (val.value != \"-2\") {\r\n this.group.get(this.field.name)?.setValue(val.additionalValues.additionalValues);\r\n } else if (val.value == \"-2\") {\r\n this.group.get(this.field.name)?.setValue(undefined);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n {{validation.message}}\r\n \r\n \r\n
\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSelectionList } from '@angular/material/list';\r\n\r\n@Component({\r\n\tselector: 'app-edms-cart',\r\n\ttemplateUrl: './edms-cart.component.html',\r\n\tstyleUrls: ['./edms-cart.component.css']\r\n})\r\nexport class EdmsCartComponent implements OnInit {\r\n\t@ViewChild(MatSelectionList) matSelectionList!: MatSelectionList;\r\n\t@Input() allItems!: any[];\r\n\t// @Input() selectedItems: any[] = [];\r\n\t@Input() key: any;\r\n\t@Input() textField: any;\r\n\tselectedItems = ['text', 'text'];\r\n\tngOnInit() {\r\n\t}\r\n\r\n\tdrop(event: CdkDragDrop) {\r\n\t\tmoveItemInArray(this.selectedItems, event.previousIndex, event.currentIndex);\r\n\t}\r\n\r\n\taddItems() {\r\n\t\tthis.matSelectionList.selectedOptions.selected.forEach(x => this.selectedItems.push(x.value));\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{item[textField]}}\r\n\t\t\t\r\n\t\t\r\n\t
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t{{item[textField]}}\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n
\r\n\t
\r\n\t Employee Cart\r\n\t \r\n\t
\r\n
\r\n
\r\n\t
\r\n\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t

Choose Items

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{item[textField]}}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t

Selected Items

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\ttext\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\ttext\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t \r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\t
\r\n
\r\n
\r\n\t
\r\n\t \r\n\t
\r\n
","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { LoginService } from 'src/app/Service/login.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { DataFormatService } from 'src/app/Service/data-format.service';\r\nimport { UserDetailsViewModel } from 'src/app/ViewModel/UserDetailsModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IElasticProjRedirectModel } from 'src/app/ViewModel/ElasticSearch.Model';\r\n\r\n@Component({\r\n\tselector: 'edms-common-header',\r\n\ttemplateUrl: './edms-common-header.component.html',\r\n\tstyleUrls: ['./edms-common-header.component.css']\r\n})\r\nexport class EdmsCommonHeaderComponent implements OnInit {\r\n\r\n\t@Input()\r\n\tshowProjectList!: boolean;\r\n\t@Input()\r\n\tshowDateDetails!: boolean;\r\n\t@Input()\r\n\tpageTitle!: string;\r\n\r\n\tloggedinUserId!:number ;\r\n\tprojectList: ProjectViewModel[] = [];\r\n\tprojectDetail!: ProjectViewModel;\r\n\tprojectStartDate!: string|null;\r\n\tprojectEndDate!: string|null;\r\n\tdiffInYears!: number|null;\r\n\tdaysCompletionPercentage!: number;\r\n\tprojectForm!: FormGroup;\r\n\tisPageRefreshRequired: boolean = false;\r\n\tselectedProject!: ProjectViewModel;\r\n\telasticProjModel!: IElasticProjRedirectModel;\r\n\tconstructor(private commonService: CommonService, private dataFormatService: DataFormatService, private projectInfoService: ProjectInfoService, private notificationService: NotificationService, private loginService: LoginService, private formBuilder: FormBuilder, private router: Router, private encryptDecryptService: EncryptDecryptService) {\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.loggedinUserId = this.commonService.getLoggedInUserId();\r\n\t\tthis.createprojectForm();\r\n\t\tthis.getProjectList();\r\n\t}\r\n\r\n\tcreateprojectForm() {\r\n\t\tthis.projectForm = this.formBuilder.group({\r\n\t\t\tproject: new FormControl('', [Validators.required])\r\n\t\t});\r\n\t}\r\n\r\n\tgetProjectList() {\r\n\t\tthis.projectInfoService.getProjectList(this.loggedinUserId).subscribe((data: ProjectViewModel[]) => {\r\n\t\t\tlet allProject: ProjectViewModel = {\r\n\t\t\t\tendDate: null,\r\n\t\t\t\tjobCode: \"All\",\r\n\t\t\t\tprojectType: \"Other\",\r\n\t\t\t\tprojectCode: \"All\",\r\n\t\t\t\tprojCodeDesc: \"All\",\r\n\t\t\t\tprojectDescription: \"All\",\r\n\t\t\t\tprojectId: 9999999,\r\n\t\t\t\tprojectLogoURL: null,\r\n\t\t\t\tprojectShortDescription: \"All\",\r\n\t\t\t\tprojectURL: null,\r\n\t\t\t\tstartDate: null,\r\n\t\t\t\tisCloudStorage: false,\r\n\t\t\t\tisCommonWorkflow: false\r\n\t\t\t}\r\n\t\t\tthis.projectList.push(allProject);\r\n\t\t\tthis.projectList = this.projectList.concat(data);\r\n\t\t\tfor (let i = 0; i < this.projectList.length; i++) {\r\n\t\t\t\tthis.projectList[i]['projCodeDesc'] = this.projectList[i].projectCode + ' - ' + this.projectList[i].projectDescription;\r\n\t\t\t}\r\n\t\t\tif (this.commonService.hasRequestedObject()) {/*Mail Redirection*/\r\n\t\t\t\tvar requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n\t\t\t\tlet requestedProject = this.projectList.filter(item => item.projectId.toString() == requestedObject['project']);\r\n\r\n\t\t\t\tif (requestedProject.length > 0) {\r\n\t\t\t\t\tthis.setProjectData(requestedProject[0]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.loginService.GetMemberProjectSelection({ \"projectId\": null, \"userId\": this.loggedinUserId, }).subscribe((data: any) => {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tlet event = this.projectList.filter(item => item.projectId === data['projectId']);\r\n\t\t\t\t\t\tif (event && event.length > 0) {\r\n\t\t\t\t\t\t\tthis.setProjectData(event[0]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.setProjectData(this.projectList[0]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic changeProjectFromES(elasticProjModel: IElasticProjRedirectModel) {\r\n\t\tlet newProject: ProjectViewModel = this.projectList.filter(x => x.projectId == elasticProjModel.projectId)[0];\r\n\t\tif (!!newProject) {\r\n\t\t\tthis.elasticProjModel = elasticProjModel;\r\n\t\t\tthis.changeProject(newProject);\r\n\t\t}\r\n\t}\r\n\treloadProject: boolean = false;\r\n\tchangeProject(event: ProjectViewModel) {\r\n\t\tif (this.selectedProject != null && Number(event) != -1) {\r\n\t\t\tthis.notificationService.showPopup(\"Are you want to change project ? \", 'Confirm').then(data => {\r\n\t\t\t\tif (data == 'yes') {\r\n\t\t\t\t\tthis.setProjectData(event);\r\n\t\t\t\t\tthis.reloadProject = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.projectForm.get('project')?.setValue(this.selectedProject);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif (Number(event) != -1) {\r\n\t\t\t\tthis.setProjectData(event);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetProjectData(event: ProjectViewModel ) {\r\n\t\tthis.selectedProject = event;\r\n\t\tif (this.projectForm.get('project')?.value == '') {\r\n\t\t\tthis.projectForm.get('project')?.setValue(this.selectedProject);\r\n\t\t}\r\n\t\tthis.getProjectDetails(this.loggedinUserId, this.selectedProject.projectId);\r\n\t}\r\n\r\n\tpublic getProjectDetails(userId: number, projectId: number) {\r\n\t\tthis.projectInfoService.getProjectDetails(projectId, userId).subscribe((data: ProjectViewModel[]) => {\r\n\t\t\tif (projectId == 9999999) {\r\n\t\t\t\tthis.projectList.filter(x => x.projectId == 9999999).map(y => data.splice(0, 0, y));\r\n\t\t\t}\r\n\t\t\tif (!!data) {\r\n\t\t\t\tthis.projectDetail = data[0];\r\n\t\t\t\tif (this.projectDetail) {\r\n\t\t\t\t\tlet user = {\r\n\t\t\t\t\t\tmemberId: userId,\r\n\t\t\t\t\t\tprojectId: this.projectDetail.projectId,\r\n\t\t\t\t\t\tisInternal: this.commonService.getLoggedInUserStatus()\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.loginService.GetCurrentUserDetails(user).subscribe((data: any) => {\r\n\t\t\t\t\t\tif (data[\"successCode\"] === 200) {\r\n\t\t\t\t\t\t\tthis.commonService.setCurrentUserProfileCard(data);\r\n\t\t\t\t\t\t\tthis.commonService.setProjectCode(this.selectedProject.projectCode, this.selectedProject.projectId, this.selectedProject);\r\n\t\t\t\t\t\t\tthis.calculateDates();\r\n\t\t\t\t\t\t\tif (!!this.elasticProjModel) {\r\n\t\t\t\t\t\t\t\tif (this.projectDetail.projectId == 9999999) {\r\n\t\t\t\t\t\t\t\t\tthis.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\t\t\t\t\t\t\t\t\tthis.router.onSameUrlNavigation = 'ignore';\r\n\t\t\t\t\t\t\t\t\tthis.router.navigate(['/dashboard/home']);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tthis.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\t\t\t\t\t\t\t\t\tthis.router.onSameUrlNavigation = 'reload';\r\n\t\t\t\t\t\t\t\t\tthis.router.navigate([this.elasticProjModel.redirectUrl]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tif (this.isPageRefreshRequired) {\r\n\t\t\t\t\t\t\t\t\tif (this.projectDetail.projectId == 9999999) {\r\n\t\t\t\t\t\t\t\t\t\tthis.isPageRefreshRequired = true;\r\n\t\t\t\t\t\t\t\t\t\tthis.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\t\t\t\t\t\t\t\t\t\tthis.router.onSameUrlNavigation = 'ignore';\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate(['/dashboard/home']);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tthis.isPageRefreshRequired = true;\r\n\t\t\t\t\t\t\t\t\t\tthis.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\t\t\t\t\t\t\t\t\t\tthis.router.onSameUrlNavigation = 'reload';\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate([this.router.url]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tif (this.projectDetail.projectId == 9999999) {\r\n\t\t\t\t\t\t\t\t\t\tthis.isPageRefreshRequired = true;\r\n\t\t\t\t\t\t\t\t\t\tthis.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\t\t\t\t\t\t\t\t\t\tthis.router.onSameUrlNavigation = 'ignore';\r\n\t\t\t\t\t\t\t\t\t\tthis.router.navigate(['/dashboard/home']);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.isPageRefreshRequired = true;\r\n\t\t\t\t\t\t\tif (this.reloadProject) {\r\n\t\t\t\t\t\t\t\tthis.reloadProject = false;\r\n\t\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.notificationService.showPopup('Invalid credential', \"Warning\").then(\r\n\t\t\t\t\t\t\t\tx => this.loginService.Logout(this.commonService.getLoggedInUserStatus())\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic calculateDates() {\r\n\t\t\r\n\t\tthis.projectStartDate = this.dataFormatService.formatDate(this.projectDetail.startDate);\r\n\t\tthis.projectEndDate = this.dataFormatService.formatDate(this.projectDetail.endDate);\r\n\t\tthis.diffInYears = this.dataFormatService.getDiffBtwDates(this.projectDetail.startDate, this.projectDetail.endDate, 'years');\r\n\t\t\r\n\t\tlet totalDays = this.dataFormatService.getDiffBtwDates(this.projectDetail.startDate, this.projectDetail.endDate),\r\n\t\t\tcompletedDays = this.dataFormatService.getDiffBtwDates(this.projectDetail.startDate, new Date().toISOString())\r\n\t\t\tif(totalDays && completedDays)\r\n\t\t\t{\r\n\t\t\t\tlet percentage:any = (completedDays / totalDays) * 100;\r\n\t\t\tthis.daysCompletionPercentage = Math.round(percentage);\r\n\t\t\t}\r\n\t}\r\n}\r\n","
\r\n
\r\n

\r\n {{pageTitle | uppercase}}\r\n

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

Project Start Date: \r\n \r\n \r\n {{ projectStartDate }}

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

Project End Date: \r\n \r\n \r\n {{ projectEndDate }}\r\n

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

Lapse Period: \r\n {{diffInYears}} year{{diffInYears > 1 ? 's':'' }}\r\n \r\n

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

Project Name:\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { EIPAutoCompleteComponent } from \"eipauto-complete\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { DocumentViewerService } from \"src/app/Service/documentviewer/documentviewer.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { IFileUrnModel } from \"src/app/ViewModel/FileUrn.Model\";\r\nimport { ForgeViewerComponent } from \"../forge-viewer/forge-viewer.component\";\r\n\r\n@Component({\r\n selector: 'app-file-compare',\r\n templateUrl: './file-compare.component.html',\r\n})\r\nexport class FileCompareComponent implements OnInit {\r\n allDataSource: IFileUrnModel[] = [];\r\n dataSource: IFileUrnModel[] = [];\r\n projectId!: number;\r\n groupId!: number;\r\n sourceFile!: IFileUrnModel;\r\n destinationFile!: IFileUrnModel;\r\n selectedDestinationDoc!: number;\r\n sourceFileGrid: IFileUrnModel[] = [];\r\n destinationFileGrid: IFileUrnModel[] = [];\r\n sourceUrnModel: IFileUrnModel | null=null;\r\n destinationUrnModel: IFileUrnModel | null=null;\r\n selectableSettings = {\r\n checkboxOnly: true,\r\n mode: \"single\"\r\n };\r\n @ViewChild('destinationDoc') destinationDoc!: EIPAutoCompleteComponent;\r\n @ViewChild('sourceGrid') sourceGrid: any;\r\n @ViewChild('destinationGrid') destinationGrid: any;\r\n ngOnInit(): void {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.loadCompareDocuments();\r\n }\r\n\r\n constructor(private dialog: MatDialog, private _commonService: CommonService, private _notificationService: NotificationService, private _docViewerService: DocumentViewerService,\r\n public dialogRef: MatDialogRef) {\r\n }\r\n\r\n loadCompareDocuments() {\r\n this._docViewerService.GetCompareDocuments({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: IFileUrnModel[]) => {\r\n this.allDataSource = res.map(x => {\r\n x.docTitle = x.docNo + '-' + x.title;\r\n return x;\r\n });\r\n this.dataSource = this.allDataSource.filter(\r\n (doc, i, arr) => arr.findIndex(t => t.docId === doc.docId) === i\r\n );\r\n })\r\n }\r\n\r\n onselectedValueChange(val: any, isSource: boolean) {\r\n if (isSource) {\r\n this.sourceFile = val.additionalValues.additionalValues;\r\n this.sourceFileGrid = this.allDataSource.filter(x => x.docId == this.sourceFile.docId);\r\n this.sourceUrnModel = null;\r\n this.selectedDestinationDoc = this.sourceFile.docId;\r\n //Reset the selection data changes\r\n this.sourceGrid.defaultSelection.selectedKeys = [];\r\n }\r\n else {\r\n this.destinationFile = val.additionalValues.additionalValues;\r\n this.destinationFileGrid = this.allDataSource.filter(x => x.docId == this.destinationFile.docId);\r\n this.destinationUrnModel = null;\r\n //Reset the selection data changes\r\n this.destinationGrid.defaultSelection.selectedKeys = [];\r\n }\r\n }\r\n\r\n onSelectionChange(event: any, isSource: boolean): void {\r\n if (event['selectedRows'].length > 0) {\r\n let selectedModel: IFileUrnModel = event['selectedRows'][0].dataItem;\r\n if (isSource)\r\n this.sourceUrnModel = selectedModel;\r\n else\r\n this.destinationUrnModel = selectedModel;\r\n }\r\n else{\r\n if(isSource)\r\n this.sourceUrnModel = null;\r\n else\r\n this.destinationUrnModel = null;\r\n }\r\n }\r\n\r\n isCompareEnable(): boolean {\r\n return !!this.sourceUrnModel && !!this.destinationUrnModel;\r\n }\r\n\r\n compareDrawings() {\r\n let dialogRef = this.dialog.open(ForgeViewerComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { sourceUrn: this.sourceUrnModel, destinationUrn: this.destinationUrnModel }\r\n });\r\n }\r\n\r\n public togglePopupDialog() {\r\n this.dataSource = [];\r\n this.dialogRef.close();\r\n }\r\n\r\n}","
\r\n
\r\n
\r\n Drawing Comparision\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n 0\" #sourceGrid [kendoGridBinding]=\"sourceFileGrid\"\r\n [selectable]=\"selectableSettings\" id=\"sourceFileGridView\" [sortable]=\"true\" [resizable]=\"true\"\r\n [reorderable]=\"true\" [selectable]=\"true\" [scrollable]=\"true\"\r\n class=\"form-group-grid auto-complete-equal kg-hover-icon\"\r\n (selectionChange)=\"onSelectionChange($event,true)\">\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdOn|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n 0\" #destinationGrid [kendoGridBinding]=\"destinationFileGrid\"\r\n [selectable]=\"selectableSettings\" id=\"destFileGridView\" [sortable]=\"true\" [resizable]=\"true\"\r\n [reorderable]=\"true\" [selectable]=\"true\" [scrollable]=\"true\"\r\n class=\"form-group-grid auto-complete-equal kg-hover-icon\"\r\n (selectionChange)=\"onSelectionChange($event,false)\">\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdOn|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import * as moment from 'moment';\r\nimport { formatDate } from '@angular/common';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { IFileValidationModel } from 'src/app/ViewModel/File.Model';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\r\nimport { ForgeViewerComponent } from '../forge-viewer/forge-viewer.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n\r\n@Component({\r\n selector: 'app-file-list',\r\n templateUrl: './file-list.component.html',\r\n styleUrls: ['./file-list.component.css']\r\n})\r\nexport class FileListComponent implements OnInit {\r\n public isDeleteEnable: boolean = false;\r\n public fileTypeList: RoleFeatureModel[] = [];\r\n public fileCollection: Array = new Array();\r\n public libraries: Array = new Array();\r\n public commonFileInput: Array = new Array();\r\n\r\n private uris = {\r\n dedAgainstDEGetUrl: \"DEDED/GetCommonDEDAgainstDE\"\r\n };\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n private restApiService: RestApiService, private dialogRef: MatDialogRef, private loaderService: LoaderService,\r\n private dialog: MatDialog, private _fileService: FileService, private _notificationService: NotificationService) {\r\n if (this.data['isDeleteEnable'])\r\n this.isDeleteEnable = this.data['isDeleteEnable'];\r\n }\r\n\r\n ngOnInit() {\r\n this.getFileType();\r\n if (!!this.data) {\r\n (Array.isArray(this.data['libraryName'])) == true ? this.libraries = this.data['libraryName'] : this.libraries.push(Number(this.data['libraryName']));\r\n this.getFileList();\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Invalid configuration\", \"Warning\");\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n public togglePopupDialog() {\r\n this.fileCollection = new Array();\r\n this.dialogRef.close();\r\n }\r\n\r\n public getFileList() {\r\n let fileCount = 0;\r\n for (let index = 0; index < this.libraries.length; index++) {\r\n switch (this.libraries[index]) {\r\n case FileUploadLibrary.Documents:\r\n let fileInput_Documents = {\r\n projectId: this.data.projectId,\r\n docId: this.data.docId,\r\n revisionNo: this.data.revisionNo\r\n }\r\n\r\n this.commonFileInput.push({ libraryNumber: FileUploadLibrary.Documents, value: JSON.stringify(fileInput_Documents) });\r\n\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.Documents, value: JSON.stringify(fileInput_Documents) })\r\n .toPromise().then((res: any[]) => {\r\n res.forEach((value, index) => {\r\n fileCount += 1;\r\n this.fileCollection.push({\r\n serial: fileCount, fileId: value.fileId, fileName: value.fileName, fileSize: value.fileSize, fileExtension: value.fileExtension,\r\n fileFullName: value.fileName + '.' + value.fileExtension, uploadedBy: value.createdBy, uploadedByName: value.createdByName, uploadedOn: this.getFormattedDate(value.createdOn),\r\n fileType: value.fileType, fileTypeName: this.getFileTypeName(value.fileType), fileUrn: value.urn, isStandardDrawingDocument: value.isStandardDrawingDocument,\r\n libraryNumber: FileUploadLibrary.Documents\r\n });\r\n });\r\n });\r\n break;\r\n case FileUploadLibrary.WorkflowDocument:\r\n let fileInput_WorkflowDocument = {\r\n projectId: this.data.projectId,\r\n docId: this.data.docId,\r\n revisionNo: this.data.revisionNo,\r\n task_SNo: this.data.task_SNo>=0 ? this.data.task_SNo : null,\r\n task_ID:this.data.task_ID?this.data.task_ID:null\r\n }\r\n\r\n this.commonFileInput.push({ libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(fileInput_WorkflowDocument) });\r\n\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(fileInput_WorkflowDocument) })\r\n .toPromise().then((res: any[]) => {\r\n res.forEach((value, index) => {\r\n fileCount += 1;\r\n this.fileCollection.push({\r\n serial: fileCount, fileId: value.fileId, fileName: value.fileName, fileSize: value.fileSize, fileExtension: value.fileExtension,\r\n fileFullName: value.fileName + '.' + value.fileExtension, uploadedBy: value.createdBy, uploadedByName: value.createdByName, uploadedOn: this.getFormattedDate(value.createdOn),\r\n fileType: value.fileType, fileTypeName: this.getFileTypeName(value.fileType), fileUrn: value.urn, isStandardDrawingDocument: value.isStandardDrawingDocument,\r\n libraryNumber: FileUploadLibrary.WorkflowDocument\r\n });\r\n });\r\n });\r\n break;\r\n case FileUploadLibrary.SignedDocuments:\r\n let fileInput_SignedDocuments :any= {\r\n projectId: this.data.projectId,\r\n messageId: this.data.messageId,\r\n docId: null,\r\n revisionNo: null\r\n }\r\n if (!!this.data.docId) {\r\n fileInput_SignedDocuments.docId = this.data.docId;\r\n }\r\n\r\n if (!!this.data.revisionNo) {\r\n fileInput_SignedDocuments.revisionNo = this.data.revisionNo\r\n }\r\n\r\n this.commonFileInput.push({ libraryNumber: FileUploadLibrary.SignedDocuments, value: JSON.stringify(fileInput_SignedDocuments) });\r\n\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.SignedDocuments, value: JSON.stringify(fileInput_SignedDocuments) })\r\n .toPromise().then((res: any[]) => {\r\n res.forEach((value, index) => {\r\n fileCount += 1;\r\n this.fileCollection.push({\r\n serial: fileCount, fileId: value.fileId, fileName: value.fileName, fileSize: value.fileSize, fileExtension: value.fileExtension,\r\n fileFullName: value.fileName + '.' + value.fileExtension, uploadedBy: value.createdBy, uploadedByName: value.createdByName, uploadedOn: this.getFormattedDate(value.createdOn),\r\n fileType: value.fileType, fileTypeName: this.getFileTypeName(value.fileType), fileUrn: value.urn, isStandardDrawingDocument: value.isStandardDrawingDocument,\r\n libraryNumber: FileUploadLibrary.SignedDocuments\r\n });\r\n });\r\n });\r\n break;\r\n case FileUploadLibrary.Communication:\r\n let fileInput_Communication = {\r\n projectId: this.data.projectId,\r\n messageId: this.data.messageId,\r\n }\r\n\r\n this.commonFileInput.push({ libraryNumber: FileUploadLibrary.Communication, value: JSON.stringify(fileInput_Communication) });\r\n\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.Communication, value: JSON.stringify(fileInput_Communication) })\r\n .toPromise().then((res: any[]) => {\r\n res.forEach((value, index) => {\r\n fileCount += 1;\r\n this.fileCollection.push({\r\n serial: fileCount, fileId: value.fileId, fileName: value.fileName, fileSize: value.fileSize, fileExtension: value.fileExtension,\r\n fileFullName: value.fileName + '.' + value.fileExtension, uploadedBy: value.createdBy, uploadedByName: value.createdByName, uploadedOn: this.getFormattedDate(value.createdOn),\r\n fileType: value.fileType, fileTypeName: this.getFileTypeName(value.fileType), fileUrn: value.urn,\r\n libraryNumber: FileUploadLibrary.Communication\r\n });\r\n });\r\n });\r\n break;\r\n case FileUploadLibrary.CCNDocuments:\r\n let fileInput_CCNDocuments = {\r\n projectId: this.data.projectId,\r\n ccnId: this.data.ccnId,\r\n revisionNo: this.data.revisionNo\r\n }\r\n\r\n this.commonFileInput.push({ libraryNumber: FileUploadLibrary.CCNDocuments, value: JSON.stringify(fileInput_CCNDocuments) });\r\n\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.CCNDocuments, value: JSON.stringify(fileInput_CCNDocuments) })\r\n .toPromise().then((res: any[]) => {\r\n res.forEach((value, index) => {\r\n fileCount += 1;\r\n this.fileCollection.push({\r\n serial: fileCount, fileId: value.fileId, fileName: value.fileName, fileSize: value.fileSize, fileExtension: value.fileExtension,\r\n fileFullName: value.fileName + '.' + value.fileExtension, uploadedBy: value.createdBy, uploadedByName: value.createdByName, uploadedOn: this.getFormattedDate(value.createdOn),\r\n fileType: value.fileType, fileTypeName: this.getFileTypeName(value.fileType), fileUrn: value.urn,\r\n libraryNumber: FileUploadLibrary.CCNDocuments\r\n });\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public getFormattedDate(date: moment.MomentInput): string | void {\r\n if (date != null) {\r\n let res = (moment(date)).format('DD-MMM-yyyy');\r\n return res;\r\n }\r\n\r\n }\r\n\r\n isEmpty(input: string | any[]): boolean {\r\n if (!input)\r\n return false;\r\n else if (input == '')\r\n return false;\r\n else if (input.length <= 0)\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n public downloadFile(dataItem: { libraryNumber: any; fileId: any; fileFullName: string; }) {\r\n this.loaderService.isLoading.next(true);\r\n\r\n this._fileService.DownloadFile({ libraryNumber: dataItem.libraryNumber, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(res);\r\n downloadLink.download = dataItem.fileFullName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n })\r\n }\r\n\r\n downloadAll_OnClick() {\r\n let zipFileName = this.isEmpty(this.data.documentNo) == false ? formatDate(new Date(), 'dd-MMM-yyyy_HH-MM-SS', 'en-US') : this.data.documentNo;\r\n this.loaderService.isLoading.next(true);\r\n this._fileService.DownloadAllFiles(this.commonFileInput).subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = zipFileName + \".zip\";\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, error => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n });\r\n }\r\n\r\n public viewFile(dataItem: { fileUrn: any; libraryNumber: any; fileId: any; fileFullName: any; }) {\r\n if (!!dataItem.fileUrn) {\r\n let dialogRef = this.dialog.open(ForgeViewerComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n width: '900px',\r\n data: dataItem\r\n });\r\n }\r\n else {\r\n this._fileService.DownloadFile({ libraryNumber: dataItem.libraryNumber, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(res);\r\n downloadLink.target = \"_blank\";\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in viewing attachment, try after some time\", \"Warning\");\r\n })\r\n }\r\n }\r\n\r\n public getFileType() {\r\n let reqData = { \"DEDescription\": \"File Type\" };\r\n return this.restApiService.new_POST(this.uris.dedAgainstDEGetUrl, reqData).subscribe(data => {\r\n this.fileTypeList = data;\r\n });\r\n }\r\n\r\n public getFileTypeName(fileType: number) {\r\n if (this.fileTypeList.filter(item => item.dedId == fileType).length > 0)\r\n return this.fileTypeList.filter(item => item.dedId == fileType)[0][\"dedDescription\"];\r\n else\r\n return '';\r\n }\r\n\r\n public deleteFile(dataItem: { libraryNumber: any; fileId: any; fileFullName: any; }) {\r\n this._notificationService.showPopup('Are you sure to delete', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this._fileService.DeleteFile({ libraryNumber: dataItem.libraryNumber, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe(data => {\r\n\r\n this.fileCollection.forEach((item, index) => {\r\n if (item === dataItem) this.fileCollection.splice(index, 1);\r\n });\r\n\r\n if (data[\"successCode\"] === 200) {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Warning\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public isAllowedBrowserView(dataItem:any) {\r\n if (!!dataItem.fileUrn) return true;\r\n else {\r\n switch (dataItem.fileFullName.split('.').pop().toLowerCase()) {\r\n case 'pdf': case \"jpg\": case \"jpeg\": case \"png\": case \"gif\": case 'txt': case 'txt': {\r\n return true;\r\n }\r\n default: {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n}","
\r\n
\r\n
\r\n File View / Download Wizard\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileFullName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileTypeName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedByName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedOn}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Actions\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDragAndDrop]'\r\n})\r\n\r\nexport class DragAndDropDirective {\r\n @HostBinding('class.fileover') fileOver!: boolean;\r\n @Output() fileDropped = new EventEmitter();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt: { preventDefault: () => void; stopPropagation: () => void; }) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: { preventDefault: () => void; stopPropagation: () => void; }) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt: { preventDefault: () => void; stopPropagation: () => void; dataTransfer: { files: any; }; }) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n this.fileDropped.emit(files);\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { Component, OnInit, Output, EventEmitter, Inject } from '@angular/core';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { DocumentViewerService } from 'src/app/Service/documentviewer/documentviewer.service';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\n\r\n@Component({\r\n selector: 'eip-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styles: [`\r\n .file-upload {\r\n color: white;\r\n border-radius: 21.5px;\r\n background-color: #1579ab;\r\n cursor: pointer;\r\n padding:7px 20px;\r\n margin-bottom:15px;\r\n }\r\n .btn-upload{\r\n\r\n padding: 3px 7px;\r\n }\r\n .container {\r\n\r\n padding: 15px;\r\n text-align: center;\r\n border: dashed 1px #979797;\r\n position: relative;\r\n margin: 0 auto;\r\n }\r\n.fs-40\r\n{\r\n font-size:40px;\r\n}\r\n.fs-25\r\n{\r\n font-size:25px;\r\n}\r\n .file-display {\r\n margin-top: 10px;\r\n padding-bottom: 5px;\r\n border: dashed 1px black;\r\n //width: 800px;\r\n max-height: 160px;\r\n overflow: scroll;\r\n }\r\n\r\n .notification {\r\n line-height: 10px;\r\n font-size: 14px;\r\n color: red;\r\n }\r\n\r\n .dialog-box-header{\r\n font-size: 18px;\r\n line-height: 1.3em;\r\n }\r\n `]\r\n})\r\n\r\nexport class FileUploadComponent implements OnInit {\r\n public isDialogOpen: boolean = false;\r\n public isfileUpload: boolean = false;\r\n public fileTypeList: RoleFeatureModel[] = [];\r\n public documentList: Array = new Array();\r\n public fileCollection: Array = new Array();\r\n public fileCollectionStack: Array = new Array();\r\n public fileCollectionValidation: Array = new Array();\r\n public fileAccepts: string = environment.fileTypeAccepts;\r\n isTranslationRequired!: boolean;\r\n isDocumentListDisabled: boolean = false;\r\n selecteDocument!: number[];\r\n libraryNumber!: number;\r\n libraryName!: string;\r\n enableFullscreen = false;\r\n setWidth: any = 130;\r\n public selectedFileList: any;\r\n public canAutoMapList: any;\r\n\r\n drawingFileFormats: string[] = ['dwg', 'rvt', 'nwd', '3dm', 'dwf', 'dxf', 'dwfx', 'dwt', 'rfa', 'ifc', 'nwc', 'rte']\r\n private headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n\r\n private uris = {\r\n dedAgainstDEGetUrl: \"DEDED/GetCommonDEDAgainstDE\"\r\n };\r\n\r\n @Output() public onUploadFinished = new EventEmitter();\r\n\r\n constructor(private restAPIService: RestApiService, private encryptDecryptService: EncryptDecryptService, private commonService: CommonService,\r\n private http: HttpClient, private loaderService: LoaderService, private _docViewerService: DocumentViewerService, @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef, private _fileService: FileService, private _notificationService: NotificationService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.getFileType();\r\n if (!!this.data) {\r\n this.libraryNumber = this.data['libraryName'];\r\n this.isTranslationRequired = this.libraryNumber == FileUploadLibrary.Documents || this.libraryNumber == FileUploadLibrary.WorkflowDocument;\r\n this.libraryName = FileUploadLibrary[this.libraryNumber];\r\n this.documentList = this.data['documents'];\r\n this.isDocumentListDisabled = Boolean(this.data['isEditable']);\r\n this.selecteDocument = this.documentList.length <= 1 ? this.documentList[0]['value'] : null;\r\n this.selectedFileList = this.data['documents'];\r\n if(this.data['isEnableFullScreen'])\r\n {\r\n this.enableFullscreen = this.data['isEnableFullScreen'];\r\n }\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Invalid configuration\", \"Warning\");\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n public togglePopupDialog() {\r\n this.fileCollection = new Array();\r\n this.fileCollectionStack = new Array();\r\n this.fileCollectionValidation = new Array();\r\n this.dialogRef.close();\r\n }\r\n\r\n public onFileDropped($event: any) {\r\n this.file_onChange($event, false);\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n if (this.enableFullscreen) {\r\n this.setWidth = 350;\r\n }\r\n else {\r\n this.setWidth = 130;\r\n }\r\n }\r\n\r\n public file_onChange = async (files: any, isFlushArray: any) => {\r\n if (files.length === 0)\r\n return;\r\n let fileList = Array.from(files);\r\n let fileAccepts = this.fileAccepts.split(',');\r\n this.autoMapDocuments(files,this.documentList);\r\n for (let index = 0; index < fileList.length; index++) {\r\n let file: any = fileList[index];\r\n let fileName: string = file['name'];\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf('.'));\r\n let isValidFile: boolean = fileAccepts.includes(fileExtn.toLowerCase());\r\n\r\n if (file['size'] === 0)\r\n fileList.splice(index, 1);\r\n\r\n if (!isValidFile)\r\n fileList.splice(index, 1);\r\n }\r\n\r\n if (fileList.length === 0) {\r\n this._notificationService.showPopup(\"Upload valid file with valid name\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (isFlushArray) {\r\n this.fileCollection = new Array();\r\n this.fileCollectionStack = new Array();\r\n this.fileCollectionValidation = new Array();\r\n }\r\n\r\n for (let index = 0; index < fileList.length; index++) {\r\n let file: any = fileList[index];\r\n let isFileExists = false;\r\n\r\n if (this.fileCollection.length > 0) {\r\n isFileExists = this.fileCollection.filter(item => item.fileName == file['name']).length != 0 ? true : false;\r\n }\r\n\r\n if (!isFileExists) {\r\n this.loaderService.isLoading.next(true);\r\n switch (this.libraryNumber) {\r\n case FileUploadLibrary.Documents:\r\n case FileUploadLibrary.WorkflowDocument:\r\n this.pushFileCollection(file, isFlushArray, index);\r\n break;\r\n case FileUploadLibrary.SignedDocuments:\r\n this.pushSignedDocumentsFileCollection(file, isFlushArray, index);\r\n break;\r\n case FileUploadLibrary.CCNDocuments:\r\n this.pushCCNDocumentsFileCollection(file, isFlushArray, index);\r\n break;\r\n case FileUploadLibrary.Communication:\r\n this.pushCommunicationDocumentsFileCollection(file, isFlushArray, index);\r\n break;\r\n }\r\n }\r\n }\r\n await this.validateFile();\r\n }\r\n\r\n private validateFile = async () => {\r\n this._fileService.ValidateFiles({ libraryNumber: this.libraryNumber, value: JSON.stringify(this.fileCollectionValidation) }).toPromise().then(x => {\r\n let returnData = x['fileCollection'];\r\n for (let index = 0; index < returnData['length']; index++) {\r\n this.fileCollection[index].fileSizeExists = returnData[index].fileSizeExists;\r\n this.fileCollection[index].isUploaded = returnData[index].isUploaded;\r\n this.fileCollection[index].progress = returnData[index].progress;\r\n this.fileCollection[index].status = returnData[index].status;\r\n this.fileCollection[index].fileType = returnData[index].fileType;\r\n this.fileCollection[index].fileName = returnData[index].fileName;\r\n this.fileCollection[index].displayFileName = returnData[index].fileName.length > 25 ? returnData[index].fileName.substring(0, 25) + '...' : returnData[index].fileName;\r\n\r\n if (this.fileCollection[index].progress == 100) {\r\n this.onUploadFinished.emit(this.fileCollection[index]);\r\n }\r\n }\r\n for (let index = 0; index < this.fileCollection.length; index++) {\r\n if (this.fileCollection[index].isLargeFile && this.fileCollection[index].status == \"Initiated\") {\r\n let totalPackets = ~~(this.fileCollection[index].fileSize / environment.maxFileSizeToUpload);\r\n this.fileCollection[index].totalPackets = (this.fileCollection[index].fileSize - (environment.maxFileSizeToUpload * totalPackets)) > 0 ? (totalPackets + 1) : totalPackets;\r\n }\r\n }\r\n\r\n this.fileCollection = this.getUnique(this.fileCollection, 'fileName');\r\n\r\n this.loaderService.isLoading.next(false);\r\n });\r\n }\r\n\r\n private getUnique(arr: any[], comp: string) {\r\n return arr.map(e => e[comp]).map((e, i, final) => final.indexOf(e) === i && i).filter((e: any) => arr[e]).map((e: any) => arr[e]);\r\n }\r\n\r\n public formatSizeUnits = (bytes: any) => {\r\n if (bytes >= 1073741824) { bytes = (bytes / 1073741824).toFixed(2) + \" GB\"; }\r\n else if (bytes >= 1048576) { bytes = (bytes / 1048576).toFixed(2) + \" MB\"; }\r\n else if (bytes >= 1024) { bytes = (bytes / 1024).toFixed(2) + \" KB\"; }\r\n else if (bytes > 1) { bytes = bytes + \" bytes\"; }\r\n else if (bytes == 1) { bytes = bytes + \" byte\"; }\r\n else { bytes = \"0 bytes\"; }\r\n return bytes;\r\n }\r\n\r\n public isDisabled = () => {\r\n if (this.fileCollection.filter(item => item.isLargeFile && item.progress < 100).length > 0)\r\n return true;\r\n else\r\n return (this.fileCollection.filter(item => item.progress < 100).length) > 1 ? false : true;\r\n }\r\n\r\n public deleteFile = (fileIndex: any) => {\r\n this.fileCollection = this.fileCollection.filter(item => item.fileIndex != fileIndex);\r\n this.fileCollectionStack = this.fileCollectionStack.filter(item => item.fileIndex != fileIndex);\r\n this.fileCollectionValidation = this.fileCollectionValidation.filter(item => item.fileIndex != fileIndex);\r\n\r\n for (let index = 0; index < this.fileCollection.length; index++) {\r\n this.fileCollection[index].fileIndex = index;\r\n this.fileCollectionStack[index].fileIndex = index;\r\n this.fileCollectionValidation[index].fileIndex = index;\r\n }\r\n }\r\n\r\n public createTranslateJob(selectedFile: any) {\r\n let fileName: string = selectedFile.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n if (this.drawingFileFormats.filter(x => x == fileExtn).length > 0) {\r\n this._docViewerService.CreateTranslateJob({\r\n projectId: selectedFile.projectId, docId: selectedFile.docId, revisionNo: selectedFile.revisionNo,\r\n fileName: selectedFile.fileName, extension: fileExtn\r\n }).subscribe(res => {\r\n }, err => { })\r\n }\r\n }\r\n\r\n public async upload(fileIndex: number) {\r\n this.isfileUpload = true;\r\n let selectedFile = this.fileCollection.filter(item => item.fileIndex == fileIndex)[0];\r\n if (selectedFile && selectedFile.progress != 100 && selectedFile.status == \"Initiated\") {\r\n await this.processChunkUpload(selectedFile);\r\n }\r\n this.isfileUpload = false; \r\n }\r\n\r\n public autoMapDocuments(fileList: any, DocumentList: any) {\r\n const docMap = new Array(fileList.length);\r\n for (let index = 0; index < fileList.length; index++) {\r\n const fileName: string = fileList[index].name;\r\n let isMatched = false;\r\n for (let i = 0; i < DocumentList.length; i++) {\r\n const selectedFileText = DocumentList[i].text;\r\n if (fileName.includes(selectedFileText)) {\r\n isMatched = true;\r\n docMap[index] = DocumentList[i].value;\r\n break;\r\n }\r\n }\r\n if (!isMatched) {\r\n docMap[index] = ''; \r\n }\r\n }\r\n this.selecteDocument = docMap;\r\n }\r\n \r\n \r\n \r\n\r\n public async uploadAll() {\r\n for (let index = 0; index < this.fileCollection.length; index++) {\r\n let selectedFile = this.fileCollection.filter(item => item.fileIndex == index)[0];\r\n if (selectedFile && selectedFile.progress != 100 && selectedFile.status == \"Initiated\") {\r\n await this.processChunkUpload(selectedFile);\r\n }\r\n }\r\n }\r\n\r\n private async processChunkUpload(fileInfo: any) {\r\n let hasError: boolean = false;\r\n switch (this.libraryNumber) {\r\n case FileUploadLibrary.Documents:\r\n case FileUploadLibrary.WorkflowDocument:\r\n if (!fileInfo.docId || !fileInfo.revisionNo) {\r\n hasError = true;\r\n }\r\n break;\r\n case FileUploadLibrary.SignedDocuments:\r\n if (!fileInfo.docId || !fileInfo.revisionNo) {\r\n hasError = true;\r\n }\r\n break;\r\n case FileUploadLibrary.CCNDocuments:\r\n if (!fileInfo.ccnId || !fileInfo.revisionNo) {\r\n hasError = true;\r\n }\r\n break;\r\n case FileUploadLibrary.Communication:\r\n if (!fileInfo.msgId) {\r\n hasError = true;\r\n }\r\n break;\r\n }\r\n\r\n if (hasError) {\r\n return\r\n }\r\n\r\n let isFileUploaded: boolean = false;\r\n let _fileName = fileInfo.fileName;\r\n let file: File = fileInfo.file;\r\n let chunkSize: number = 100 * 1024 * 1024; //100 MB\r\n let reminder: number = file.size % chunkSize;\r\n let numberOfChunks: number = Math.ceil(file.size / chunkSize);\r\n let isAppend = false;\r\n if (file.size > 100 * 1024 * 1024 && reminder > 0 && reminder < 2 * 1024 * 1024) {\r\n isAppend = true;\r\n }\r\n numberOfChunks = isAppend ? numberOfChunks - 1 : numberOfChunks;\r\n for (let chunkPos = 0; chunkPos < numberOfChunks; chunkPos++) {\r\n const formData: FormData = new FormData();\r\n fileInfo.isLastChunk = chunkPos == numberOfChunks - 1\r\n fileInfo.chunkPosition = chunkPos;\r\n fileInfo.task_SNo = this.documentList[0].task_SNo >= 0 ? this.documentList[0].task_SNo : null;\r\n let start: number = chunkPos * chunkSize;\r\n let end = Math.min(file.size, (chunkPos + 1) * chunkSize);\r\n if (fileInfo.isLastChunk && isAppend) {\r\n end = file.size;\r\n }\r\n fileInfo.contentRange = \"bytes \" + start + \"-\" + (end - 1) + \"/\" + file.size;\r\n formData.append('libraryNumber', this.libraryNumber.toString())\r\n formData.append('fileInfo', JSON.stringify(fileInfo))\r\n formData.append('fileChunk', file.slice(start, end), _fileName);\r\n await this._fileService.UploadChunkFile(formData).toPromise().then(async (res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n fileInfo.fileSizeExists += chunkSize;\r\n fileInfo.progress = Math.ceil((fileInfo.fileSizeExists / file.size) * 100);\r\n if (fileInfo.isLastChunk) {\r\n //Disable loader\r\n this.loaderService.isExternalLoading.next(true);\r\n let maxTryCount: number = 0;\r\n fileInfo.fileAsByteArray = [];\r\n while (!isFileUploaded && maxTryCount <= 3) {\r\n await this._fileService.GetFileUploadStatus({ libraryNumber: this.libraryNumber, value: JSON.stringify(fileInfo) }).toPromise().then((res: StandardOutputModel) => {\r\n if (res.successCode == 200 && res.result == \"100\") {\r\n this.onUploadFinished.emit(fileInfo);\r\n isFileUploaded = true;\r\n fileInfo.progress = 100;\r\n this._notificationService.showToast(_fileName + \" - uploaded successfully\", \"Success\");\r\n //Enable loader back to default functionality\r\n this.loaderService.isExternalLoading.next(false);\r\n if (this.isTranslationRequired) {\r\n setTimeout(() => {\r\n this.createTranslateJob(fileInfo);\r\n }, 3000);\r\n }\r\n }\r\n });\r\n if (!isFileUploaded) {\r\n maxTryCount++;\r\n await this.delay(4000);\r\n }\r\n }\r\n if (!isFileUploaded) {\r\n //Enable loader back to default functionality\r\n this.loaderService.isExternalLoading.next(false);\r\n this._notificationService.showToast(_fileName + \" - failed to upload\", \"Warning\");\r\n }\r\n }\r\n }\r\n else {\r\n this._notificationService.showPopup(_fileName + \" - failed to upload\", \"Warning\");\r\n }\r\n }, err => {\r\n this._notificationService.showPopup(_fileName + \" - failed to upload\", \"Warning\");\r\n })\r\n }\r\n }\r\n\r\n private delay(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n public getFileType() {\r\n let reqData = { \"DEDescription\": \"File Type\" };\r\n return this.restAPIService.new_POST(this.uris.dedAgainstDEGetUrl, reqData).subscribe(data => {\r\n this.fileTypeList = data;\r\n });\r\n }\r\n\r\n public onChange_FileType(event: { value: any; }, rowIndex: any, dataItem: any) {\r\n this.fileCollection.filter(item => item.fileIndex == rowIndex)[0].fileType = event.value;\r\n }\r\n\r\n public onChange_Document(event: { value: number; }, rowIndex: any, dataItem: { fileIndex: any; }) {\r\n if (this.isDocumentListDisabled && this.documentList.length > 1) {\r\n let _selectedDocument = this.documentList.filter(item => item.value == event.value)[0];\r\n let _selectedFile = this.fileCollection.filter(item => item.fileIndex == dataItem.fileIndex)[0];\r\n\r\n if (event.value != -2 && _selectedDocument && _selectedFile) {\r\n _selectedFile.docId = _selectedDocument.value;\r\n _selectedFile.revisionNo = _selectedDocument.revisionNo;\r\n }\r\n\r\n if (event.value == -2 && _selectedFile) {\r\n _selectedFile.docId = 0;\r\n _selectedFile.revisionNo = \"\";\r\n }\r\n }\r\n }\r\n\r\n private pushFileCollection(file: any, isFlushArray: boolean, index: number) {\r\n let fileContents = null;\r\n this.fileCollectionValidation.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n docId: this.data['docId'],\r\n revisionNo: this.data['revisionNo'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollection.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n fileAsByteArray: fileContents,\r\n file: file,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isLargeFile: file['size'] >= environment.maxFileSizeToUpload ? true : false,\r\n currentPacket: 0,\r\n totalPackets: 1,\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n docId: this.data['docId'],\r\n revisionNo: this.data['revisionNo'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollectionStack.push({\r\n fileIndex: isFlushArray ? index : this.fileCollectionStack.length,\r\n fileAsByteArray: fileContents\r\n });\r\n }\r\n\r\n private pushSignedDocumentsFileCollection(file: any, isFlushArray: boolean, index: number) {\r\n let fileContents = null;\r\n this.fileCollectionValidation.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n msgId: this.data['msgId'],\r\n docId: this.data['docId'],\r\n revisionNo: this.data['revisionNo'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollection.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n fileAsByteArray: fileContents,\r\n file: file,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isLargeFile: file['size'] >= environment.maxFileSizeToUpload ? true : false,\r\n currentPacket: 0,\r\n totalPackets: 1,\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n msgId: this.data['msgId'],\r\n docId: this.data['docId'],\r\n revisionNo: this.data['revisionNo'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollectionStack.push({\r\n fileIndex: isFlushArray ? index : this.fileCollectionStack.length,\r\n fileAsByteArray: fileContents\r\n });\r\n }\r\n\r\n private pushCCNDocumentsFileCollection(file: any, isFlushArray: boolean, index: number) {\r\n let fileContents = null;\r\n this.fileCollectionValidation.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n ccnId: this.data['ccnId'],\r\n revisionNo: this.data['revisionNo'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollection.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n fileAsByteArray: fileContents,\r\n file: file,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isLargeFile: file['size'] >= environment.maxFileSizeToUpload ? true : false,\r\n currentPacket: 0,\r\n totalPackets: 1,\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n ccnId: this.data['ccnId'],\r\n revisionNo: this.data['revisionNo'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollectionStack.push({\r\n fileIndex: isFlushArray ? index : this.fileCollectionStack.length,\r\n fileAsByteArray: fileContents\r\n });\r\n }\r\n\r\n private pushCommunicationDocumentsFileCollection(file: any, isFlushArray: boolean, index: number) {\r\n let fileContents = null;\r\n this.fileCollectionValidation.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n msgId: this.data['msgId'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollection.push({\r\n fileIndex: isFlushArray ? index : this.fileCollection.length,\r\n fileName: file['name'],\r\n displayFileName: file['name'].length > 25 ? file['name'].substring(0, 25) + '...' : file['name'],\r\n fileSize: file['size'],\r\n fileSizeExists: 0,\r\n fileAsByteArray: fileContents,\r\n file: file,\r\n lastModifiedDate: file['lastModifiedDate'],\r\n progress: 0,\r\n status: 'Initiated',\r\n isLargeFile: file['size'] >= environment.maxFileSizeToUpload ? true : false,\r\n currentPacket: 0,\r\n totalPackets: 1,\r\n isUploaded: false,\r\n projectId: this.data['projectId'],\r\n msgId: this.data['msgId'],\r\n createdBy: this.data['createdBy'],\r\n fileType: this.getDefaultAPI(),\r\n fileCategory: 0\r\n });\r\n\r\n this.fileCollectionStack.push({\r\n fileIndex: isFlushArray ? index : this.fileCollectionStack.length,\r\n fileAsByteArray: fileContents\r\n });\r\n }\r\n\r\n public getDefaultAPI(): number {\r\n var data = this.fileTypeList.filter(item => item.dedDescription.toLocaleLowerCase() == 'support');\r\n return data.length > 0 ? data[0].dedId : 0;\r\n }\r\n\r\n}","
\r\n
\r\n
\r\n File Upload Wizard\r\n \r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

Drag and drop file(s) here

\r\n

or

\r\n \r\n
★ File size more than 100MB, will consider as large file.
\r\n
\r\n
0\" style=\"max-height: 100%;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{dataItem.displayFileName}}\r\n {{dataItem.fileName}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{formatSizeUnits(dataItem.fileSize)}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, ViewChild, Inject, OnChanges } from '@angular/core';\r\nimport { trigger, transition, state, animate, style, AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n animations: [\r\n trigger('openDropdown', [\r\n // ...\r\n state('open', style({\r\n height: '*',\r\n opacity: 1,\r\n })),\r\n state('closed', style({\r\n height: 'initial',\r\n opacity: 1,\r\n })),\r\n transition('* => *', [\r\n animate('0.3s')\r\n ]),\r\n ])],\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n public currentYear: number = new Date().getFullYear();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n EDMS © {{currentYear}} L&T Construction. All Rights Reserved\r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Component({\r\n selector: 'app-forge-viewer',\r\n templateUrl: './forge-viewer.component.html'\r\n})\r\nexport class ForgeViewerComponent implements OnInit {\r\n viewerUrl: string = environment.viewerUrl;\r\n // viewerUrl: string = \"http://localhost:3001/forgeviewer/viewer?urn=\";\r\n compareUrl:string = environment.compareUrl;\r\n // compareUrl:string = \"http://localhost:3001/forgeviewer/compare?\";\r\n urlSafe!: SafeResourceUrl;\r\n constructor(public commonService:CommonService, public sanitizer: DomSanitizer,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public _data: any) { }\r\n ngOnInit() {\r\n if(!!this._data.fileUrn){\r\n let currentUserId:number = this.commonService.getLoggedInUserId();\r\n this.viewerUrl = this.viewerUrl+this._data.fileUrn+\"&userId=\"+currentUserId;\r\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.viewerUrl);\r\n }\r\n else if(!!this._data.sourceUrn && !!this._data.destinationUrn){\r\n this.compareUrl = this.compareUrl+\"urn1=\"+this._data.sourceUrn.urn+\"&urn2=\"+this._data.destinationUrn.urn;\r\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.compareUrl);\r\n }\r\n }\r\n\r\n public togglePopupDialog() {\r\n this.dialogRef.close();\r\n }\r\n}","
\r\n
\r\n
\r\n Online Viewer\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-header-calculator',\r\n templateUrl: './header-calculator.component.html',\r\n styleUrls: ['./header-calculator.component.css']\r\n})\r\nexport class HeaderCalculatorComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Press Esc To Close\r\n

\r\n
\r\n
\r\n \r\n Press Esc To Close\r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-header-notes',\r\n templateUrl: './header-notes.component.html',\r\n styleUrls: ['./header-notes.component.css']\r\n})\r\nexport class HeaderNotesComponent implements OnInit {\r\n eipNotesParam: any;\r\n userID = 0;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.eipNotesParam = data['eipNotesparam'];\r\n }\r\n\r\n ngOnInit() {\r\n this.userID = this.eipNotesParam.userID;\r\n }\r\n\r\n}\r\n","\r\nPress Esc To Close","import { PRIMARY_OUTLET, Router } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, Input, ElementRef, HostListener, Inject, Output, EventEmitter } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { LoginService } from 'src/app/Service/login.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\n\r\nimport { HelpdeskSupportDetailsComponent } from './helpdesk-support-details/helpdesk-support-details.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport html2canvas from 'html2canvas';\r\nimport { HeaderNotesComponent } from './header-notes/header-notes.component';\r\nimport { HeaderCalculatorComponent } from './header-calculator/header-calculator.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { PushNotificationService } from 'src/app/Service/pushnotification/pushnotification.service';\r\nimport { IMarkNotificationAsReadModel, INotifcationDetails } from 'src/app/ViewModel/PushNotificationModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { MenuViewModel } from 'src/app/ViewModel/MenuModel';\r\nimport { IElasticDocModel, IElasticProjRedirectModel } from 'src/app/ViewModel/ElasticSearch.Model';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { from } from 'rxjs/internal/observable/from';\r\n\r\ninterface Item {\r\n text: string;\r\n value: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n @ViewChild('searchInput') searchInput!: ElementRef;\r\n renderMenu = false;\r\n @Input() header: any;\r\n fileds = { name: 'menuDesc', url: 'menuUrl', icon: 'widgetImage', subMenu: 'childList' };\r\n menu :any= [];\r\n hoverClass = '';\r\n clickEventClass = '';\r\n @Input()\r\n public handleStyle = {};\r\n adminFlag = false;\r\n edms2Pages: string[] = ['Peer Review', 'DIARCL', 'DDP', 'RiskReport', 'ProjectRiskReport', 'Risk', 'CSRAnalysis', 'CSRRequest', 'CSR', 'Innovation And Learning'];\r\n eip4Uri: string = environment.eip4uriHost;\r\n returnUrl: string = environment.returnUrl;\r\n opendropdown = false;\r\n currentDateTime: any = '';\r\n isBackButtonEnabled = false;\r\n currentUserId: number = 0;\r\n currentUserName: string = '';\r\n currentUserEmailId: string = '';\r\n currentUserDesignation: string = '';\r\n currentUserNameInitial: string = '';\r\n currentUserContactNumber: string = '';\r\n eipUserId!: number;\r\n @Input() showFloatingIcons: boolean = true;\r\n @Input() HelpDeskParameters: any;\r\n @ViewChild('floatingiconTrigger') public floatingiconTrigger:any;\r\n showchatpopup = false;\r\n openhelpdesk = false;\r\n HelpdeskDocs: any;\r\n screen: any;\r\n img: any;\r\n breadcrumbs:any;\r\n isHDenable: any = true;\r\n helpdeskImgList: any = [];\r\n helpdeskImgListbytes: any = [];\r\n pushNotifications: any[] = [];\r\n incidentManagementUrl: string;\r\n isOpenDialogCalculator = false;\r\n placeholder: string = \"Type to Search\";\r\n showNotification = false;\r\n notificationsCount!: number;\r\n public listItems: Array = [\r\n { text: \" Please Select \", value: 0 },\r\n { text: \"Communication\", value: 1 },\r\n { text: \"Schedule Document\", value: 2 },\r\n { text: \"Repository Document\", value: 3 },\r\n ];\r\n public selectedItem: Item = this.listItems[0];\r\n esFilterOutput: IElasticDocModel[] = [];\r\n searchDefaultValue = '';\r\n displayText = '';\r\n @Output() esSelectedProjectChanged = new EventEmitter();\r\n constructor(public router: Router, private activatedRoute: ActivatedRoute,\r\n private commonService: CommonService, private encryptDecryptService: EncryptDecryptService,\r\n public dialog: MatDialog,\r\n private loginService: LoginService,\r\n private _notificationService: NotificationService,\r\n private _pushNotificationService: PushNotificationService,\r\n private notificationService: NotificationService,\r\n private route: Router, @Inject('environment') env: any) {\r\n\r\n this.routeEvent(this.route);\r\n\r\n setInterval(() => {\r\n this.currentDateTime = new Date();\r\n }, 1);\r\n const redirectUrl = `${environment.eip4uriHost}helpdesk/CommonGetSession.aspx?strPage=HDSCallReviewList.aspx&SessionID=`;\r\n this.incidentManagementUrl = `${environment.eip4uriHost}eiproot/sessiontransfer?URL=${encodeURIComponent(redirectUrl)}`;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.commonService.hasJWT()) {\r\n let profileCard = this.commonService.getCurrentUserProfileCard();\r\n this.currentUserId = profileCard['memberId'];\r\n this.currentUserName = profileCard['memberName'];\r\n this.currentUserNameInitial = this.currentUserName.charAt(0);\r\n this.currentUserEmailId = profileCard['eMailId'];\r\n this.currentUserDesignation = profileCard['designation'];\r\n this.currentUserContactNumber = profileCard['mobileNo'];\r\n this.eipUserId = profileCard['eipUserId'];\r\n this._pushNotificationService.getPushNotificationList().subscribe((res: any[]) => {\r\n this.pushNotifications = res;\r\n this.notificationsCount = this.pushNotifications.length;\r\n });\r\n this.commonService.selectedProjectId.subscribe((data:any) => {\r\n if (data != null || data != undefined) {\r\n this.getMenus(data, this.commonService.getLoggedInUserId(), this.commonService.getLoggedInUserGroupId());\r\n }\r\n });\r\n }\r\n\r\n let snapshot = this.router.routerState.snapshot;\r\n this.breadcrumbs = [];\r\n let url = snapshot.url;\r\n let routeData:any = this.activatedRoute.snapshot.data;\r\n\r\n let label = routeData['breadcrumb'];\r\n let params = snapshot.root.params;\r\n\r\n this.breadcrumbs.push({\r\n url: url,\r\n label: label,\r\n params: params\r\n });\r\n let Url: string = this.breadcrumbs[0].url;\r\n let splitUrl = Url.split('/');\r\n splitUrl = splitUrl.filter(data => data);\r\n this.breadcrumbs = this.breadcrumbs.map((data:any) => {\r\n return {\r\n parentUrl: this.capitalizeFirstLetter(splitUrl[0]),\r\n childurl: this.capitalizeFirstLetter(splitUrl[1]),\r\n url: data.url,\r\n label: data.label,\r\n params: data.params\r\n }\r\n })\r\n\r\n this.screen = document.getElementsByTagName('body')[0];\r\n }\r\n // program to convert first letter of a string to uppercase\r\n capitalizeFirstLetter(str: string) {\r\n // converting first letter to uppercase\r\n const capitalized = str.charAt(0).toUpperCase() + str.slice(1);\r\n return capitalized;\r\n }\r\n\r\n Opendropdown() {\r\n this.opendropdown = !this.opendropdown;\r\n }\r\n\r\n navigateToHome() {\r\n this.router.navigate(['/dashboard/home']);\r\n }\r\n\r\n onSignOut() {\r\n this.loginService.Logout(this.commonService.getLoggedInUserStatus());\r\n }\r\n\r\n chatpopup() {\r\n this.showchatpopup = !this.showchatpopup;\r\n const ele = this.floatingiconTrigger.nativeElement;\r\n if (this.showchatpopup) {\r\n ele.classList.add('activepopup');\r\n } else {\r\n ele.classList.remove('activepopup');\r\n }\r\n }\r\n\r\n chatHandler() {\r\n window.open('https://aka.ms/mstfw', '_blank');\r\n }\r\n\r\n // HELPDESK SUPPORT FMS\r\n openHelpdesk() {\r\n if (this.HelpDeskParameters) {\r\n const body = this.HelpDeskParameters;\r\n // const helpdeskSubscriber = this.eipHeaderService.GetHelpdeskDocuments(body).\r\n // subscribe(result => {\r\n // this.HelpdeskDocs = result;\r\n // this.HelpdeskDocs = this.eipHeaderHelper.setFileExtension(this.HelpdeskDocs);\r\n // if (helpdeskSubscriber) {\r\n // helpdeskSubscriber.unsubscribe();\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n public downloadFile(file: any) {\r\n }\r\n\r\n capture() {\r\n const options = {\r\n logging: false\r\n };\r\n this.floatingiconTrigger.nativeElement.style.display = 'none';\r\n this.commonService.clearImgList = new BehaviorSubject(false); \r\n return from(\r\n html2canvas(this.screen, options).then(\r\n (canv:any) => {\r\n const img = canv.toDataURL('image/png');\r\n\r\n this.img = img;\r\n this.floatingiconTrigger.nativeElement.style.display = 'block';\r\n\r\n var BASE64_MARKER = ';base64,';\r\n var base64Index = img.indexOf(BASE64_MARKER) + BASE64_MARKER.length;\r\n var base64 = img.substring(base64Index);\r\n var raw = window.atob(base64);\r\n var rawLength = raw.length;\r\n var array = new Uint8Array(new ArrayBuffer(rawLength));\r\n\r\n for (var i = 0; i < rawLength; i++) {\r\n array[i] = raw.charCodeAt(i);\r\n }\r\n this.helpdeskImgList.push({ 'Base64': this.img, 'bytes': array });\r\n this._notificationService.showToast('Screenshot Taken', 'Information');\r\n return img;\r\n }, (err: string ) => {\r\n this._notificationService.showToast(err, 'Error');\r\n throw new Error(err);\r\n }\r\n ).catch((res: string ) => {\r\n throw new Error(res);\r\n })\r\n );\r\n\r\n }\r\n\r\n summaryOpener() {\r\n const dialogRef = this.dialog.open(HelpdeskSupportDetailsComponent, {\r\n data: { imgList: this.helpdeskImgList, userId: this.currentUserId },\r\n width: '95%',\r\n height: 'auto',\r\n panelClass: 'mat-dialog-primary',\r\n });\r\n dialogRef.afterClosed().subscribe((result:any) => {\r\n const sub = this.commonService.clearImgList.subscribe((value:any) => {\r\n if (value) { this.helpdeskImgList = []; }\r\n sub.unsubscribe();\r\n });\r\n });\r\n }\r\n\r\n eipnotesHandler() {\r\n this.isOpenDialogCalculator = true;\r\n this.openEIPNotesDialog();\r\n }\r\n openEIPNotesDialog(): void {\r\n const eipNotesparam = {\r\n userID: this.currentUserId\r\n };\r\n if (this.isOpenDialogCalculator) {\r\n const dialogRef = this.dialog.open(HeaderNotesComponent, {\r\n data: { eipNotesparam }\r\n });\r\n dialogRef.afterClosed().subscribe((result:any) => {\r\n this.isOpenDialogCalculator = false;\r\n });\r\n }\r\n }\r\n\r\n calculatorHandler() {\r\n this.isOpenDialogCalculator = true;\r\n this.openEIPCaluclatorDialog();\r\n }\r\n\r\n openEIPCaluclatorDialog(): void {\r\n if (this.isOpenDialogCalculator) {\r\n const dialogRef = this.dialog.open(HeaderCalculatorComponent, {\r\n data: {}\r\n });\r\n dialogRef.afterClosed().subscribe((result:any) => {\r\n this.isOpenDialogCalculator = false;\r\n });\r\n }\r\n }\r\n\r\n searchTypeChange(data:any) {\r\n this.selectedItem = data;\r\n this.esFilterOutput = [];\r\n this.searchInput.nativeElement.value = '';\r\n\r\n if (data.value == 0)\r\n this.placeholder = \"Type to Search\";\r\n else\r\n this.placeholder = \"Type to Search within \" + data.text;\r\n }\r\n\r\n searchOnChange() {\r\n this.esFilterOutput = [];\r\n let searchText: string = this.searchInput.nativeElement.value;\r\n if (searchText.length <= 2)\r\n return;\r\n\r\n this.commonService.elasticSearchFilter(searchText).subscribe((data: IElasticDocModel[]) => {\r\n if (data) {\r\n this.esFilterOutput = data;\r\n }\r\n });\r\n }\r\n\r\n autoCompleteChange(esdata: IElasticDocModel) {\r\n this.displayText = esdata.displayText;\r\n let currentProjId: number = this.commonService.getProjectId();\r\n let data = {\r\n searchDocNo: esdata.recordNumber,\r\n searchRevNo: esdata.revisionNo\r\n }\r\n this.commonService.setSessionStorageItem('searchedObject', this.encryptDecryptService.encrypt(JSON.stringify(data)));\r\n let redirectURL: string = '';\r\n switch (esdata.moduleId) {\r\n case 1:\r\n redirectURL = '/documents/document';\r\n break;\r\n case 2:\r\n redirectURL = '/engineeringschedule/schedulelist';\r\n break;\r\n case 3:\r\n redirectURL = '/communication/communication';\r\n break;\r\n }\r\n //Reset the search result\r\n this.esFilterOutput = [];\r\n this.displayText = '';\r\n //If search result is from another project, need to switch the project\r\n if (currentProjId != esdata.projectId) {\r\n let elasticProjModel: IElasticProjRedirectModel = { projectId: esdata.projectId, redirectUrl: redirectURL }\r\n this.esSelectedProjectChanged.emit(elasticProjModel);\r\n }\r\n else {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([redirectURL]);\r\n }\r\n }\r\n\r\n toggleNotification() {\r\n this.showNotification = !this.showNotification;\r\n }\r\n\r\n clearNotifications() {\r\n if (this.notificationsCount > 0) {\r\n let reqModel: IMarkNotificationAsReadModel = {\r\n idList: this.pushNotifications.map(x => {\r\n let notificationDetails: INotifcationDetails = { notificationId: x.notificationId }\r\n return notificationDetails;\r\n })\r\n };\r\n this._pushNotificationService.markAsReadNotification(reqModel).subscribe((x: StandardOutputModel) => {\r\n if (x.successCode == 200) {\r\n this.notificationsCount = 0;\r\n this.pushNotifications = [];\r\n this.showNotification = false;\r\n }\r\n }, (err:any) => {\r\n\r\n })\r\n }\r\n }\r\n\r\n getMenus(projectId: number, userId: number, groupId: number): void {\r\n if ((projectId != null || projectId != undefined) && userId) {\r\n this.commonService.getNavigationMenu(projectId, userId, groupId).subscribe((data: MenuViewModel[]) => {\r\n this.commonService.setSessionStorageItem(\"Menu\", JSON.stringify(data));\r\n this.menu = data;\r\n this.renderMenu = data.length > 0;\r\n\r\n if (this.commonService.hasRequestedObject()) {/*Mail Redirection*/\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n let requestedPage = this.menu.filter((x: { menuUrl: string; }) => x.menuUrl.split('/')[1] == requestedObject['page']);\r\n\r\n if (requestedPage.length <= 0) {\r\n for (let index = 0; index < this.menu['length']; index++) {\r\n if (requestedPage.length <= 0 && this.menu[index].childList.length > 0) {\r\n requestedPage = this.menu[index].childList.filter((y: { menuUrl: string; }) => y.menuUrl.split('/')[1] == requestedObject['page']);\r\n }\r\n }\r\n }\r\n\r\n if (requestedPage.length > 0)\r\n this.navigatePage(requestedPage[0]);\r\n }\r\n });\r\n }\r\n }\r\n\r\n routeEvent(router: Router) {\r\n this.render();\r\n }\r\n\r\n navigationEndEvent(e: NavigationEnd) {\r\n this.render();\r\n }\r\n\r\n render() {\r\n //this.renderMenu = true;\r\n // this.commonService.selectedProjectId.subscribe(data => {\r\n // if (data) {\r\n // this.getMenus(data, this.commonService.getLoggedInUserId());\r\n // }\r\n // });\r\n }\r\n\r\n navigatePage(item: MenuViewModel) {\r\n if (item.isClickable) {\r\n if (this.edms2Pages.filter(x => x == item.menuDesc).length > 0) {\r\n let redirectUrl: string = this.eip4Uri + this.returnUrl + encodeURIComponent(\"?URL=\" + this.eip4Uri + \"EDMS/CommonGetSession.aspx?strPage=Common/EDMSMailRedirect.aspx\");\r\n //Queryparameters builder\r\n let queryParams: string = \"&Page_Name=\" + item.menuDesc;\r\n queryParams = queryParams + \"&Project_Short_Desc=\" + this.commonService.getProjectCode();\r\n let parameters: string = encodeURIComponent(encodeURIComponent(queryParams));\r\n let sessionId: string = \"&SessionID=\";\r\n sessionId = encodeURIComponent(sessionId);\r\n let encodedUrl: string = redirectUrl + parameters + sessionId;\r\n window.open(encodedUrl, \"_blank\");\r\n }\r\n else {\r\n this.route.navigate([item.menuUrl]);\r\n this.onHoverTrigger(close);\r\n }\r\n }\r\n else {\r\n this.notificationService.showToast('Access denied, please contact HelpDesk', \"Warning\");\r\n }\r\n }\r\n\r\n mouseCliked: boolean = true;\r\n @HostListener('document:click', ['$event'])\r\n onDocClick(evt:any) {\r\n // this.mouseCliked = !this.mouseCliked; \r\n // if(this.mouseCliked == true){\r\n // this.hoverClass ='close';\r\n // return;\r\n // } \r\n // this.hoverClass = '';\r\n }\r\n\r\n onHoverTrigger(e:any) {\r\n if (this.hoverClass == 'open') {\r\n this.hoverClass = '';\r\n } else {\r\n this.hoverClass = 'open';\r\n }\r\n }\r\n\r\n isLegacyAppUrl(item: MenuViewModel): boolean {\r\n return this.edms2Pages.filter(x => x == item.menuDesc).length > 0\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
{{ currentUserName }}\r\n
\r\n
{{ currentDateTime | date:'dd-MMM-yyyy HH:mm a' }}
\r\n
\r\n
{{ currentUserNameInitial }}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\"User\"\r\n
\r\n
\r\n
\r\n

{{ currentUserEmailId }}

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

{{ currentUserDesignation }}

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

\r\n {{ currentUserContactNumber }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{notificationsCount}}\r\n
0\">\r\n
\r\n

Clear All\r\n

\r\n
\r\n
\r\n
\r\n
{{item.message}}
\r\n
\r\n

{{item.createdOn | date:'medium'}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{data.displayText}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n \r\n \r\n \r\n
  • \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n TeamsChat\r\n \r\n
\r\n
\r\n
\r\n Notes\r\n \r\n
\r\n
\r\n Calculator\r\n \r\n
\r\n \r\n
0\">\r\n \r\n Incident Mgmt\r\n \r\n \r\n
\r\n
Support
\r\n
No Documents Available
\r\n
\r\n
{{item.AttachmentFileName}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
0\">\r\n \r\n Ticket\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { NgImageSliderComponent } from 'ng-image-slider';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { IncidentManagerService } from 'src/app/Service/incident-tool/incident-tool.service';\r\n\r\nexport interface slider {\r\n image: string;\r\n thumbImage: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-helpdesk-support-details',\r\n templateUrl: './helpdesk-support-details.component.html',\r\n styleUrls: ['./helpdesk-support-details.component.css']\r\n})\r\nexport class HelpdeskSupportDetailsComponent implements OnInit {\r\n helpdesk_Detail_desc: any;\r\n helpdesk_Summary: any;\r\n matCatClear = 'N';\r\n eipUserId!:number;\r\n @ViewChild('nav') slider!: NgImageSliderComponent;\r\n\r\n imageObject: Array = [];\r\n helpdeskImgList :any= [];\r\n emittedDTDOPTSubscriber!: Subscription;\r\n emittedDTDOPTList: any[] = [];\r\n\r\n slider1!: slider;\r\n reqData: any;\r\n selectedimages: any[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private _notificationService: NotificationService,\r\n private commonService: CommonService,\r\n private incidentManagerService : IncidentManagerService\r\n ) {\r\n this.helpdeskImgList = data.imgList;\r\n }\r\n\r\n ngOnInit() {\r\n this.eipUserId = this.commonService.getLoggedInUserEipUserId();\r\n // this.emittedDTDOPTSubscriber = this.eipCommonSvc.emittedDoptList.subscribe(value => {\r\n // this.emittedDTDOPTList = value;\r\n // });\r\n for (var i = 0; i < Object.keys(this.helpdeskImgList).length; i++) {\r\n this.slider1 = {\r\n image: this.helpdeskImgList[i].Base64,\r\n thumbImage: this.helpdeskImgList[i].Base64,\r\n title: 'Screenshot - ' + i\r\n }\r\n this.imageObject.push(this.slider1);\r\n this.selectedimages.push(this.slider1.title);\r\n }\r\n }\r\n\r\n imageClickHandler(e:any) {\r\n \r\n }\r\n\r\n prevImageClick() {\r\n this.slider.prev();\r\n }\r\n\r\n nextImageClick() {\r\n this.slider.next();\r\n }\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n async HelpdeskSend() {\r\n if (this.helpdesk_Detail_desc == '' || this.helpdesk_Detail_desc == undefined || this.helpdesk_Detail_desc == null) {\r\n const message = {\r\n messageSeverity: '0',\r\n messageText: 'Please enter the Issue Detail.'\r\n };\r\n this._notificationService.showPopupMessageBox(message, this.cancelOkHandler.bind(this), this.cancelOkHandler.bind(this));\r\n return;\r\n }\r\n\r\n // creating input for uploading\r\n const imgList:any = [];\r\n const input:any = {\r\n jsonAttach: [],\r\n Tuid: this.eipUserId,\r\n priority: 'Medium',\r\n summary: '',\r\n problem_details: this.helpdesk_Detail_desc,\r\n ip_address: '',\r\n dtCode: 1234,\r\n jsonSessionData: '',\r\n jsonFormData: ''\r\n };\r\n if (this.helpdeskImgList.length > 0) {\r\n this.helpdeskImgList.forEach((image:any, i:any) => {\r\n const reqData = {\r\n ModuleName: 'HDS',\r\n DocumentType: 'InternalDocuments',\r\n File: Object.keys(image.bytes).map(key => image.bytes[key]),\r\n FileName: `Screenshot-${i}.png`,\r\n FileDescription: 'Help Desk Screenshot',\r\n DocumentId: '',\r\n DocType: '1234',\r\n UID: 1692687\r\n };\r\n this.incidentManagerService.uploadIncidentScreenshot(reqData).subscribe((resData: any) => {\r\n imgList.push({\r\n sFileName: `Screenshot-${i}.png`,\r\n iFileSize: image.bytes.length,\r\n sOrgFileName: `Screenshot-${i}.png`,\r\n iSPSID: resData[0].UniqueID,\r\n sSPSDocLibrary: 'HelpdeskDocs',\r\n sSPS_Site_URL: ''\r\n });\r\n if (imgList.length === this.helpdeskImgList.length) {\r\n input.jsonAttach = imgList;\r\n this.InsertINCDetails(input);\r\n }\r\n });\r\n });\r\n } else {\r\n this.InsertINCDetails(input);\r\n }\r\n }\r\n\r\n InsertINCDetails(data: any) {\r\n this.incidentManagerService.createIncident(data).subscribe((responseData: any) => {\r\n this.imageObject = [];\r\n const message = {\r\n messageSeverity: '1',\r\n messageText: 'Ticket Number :' + responseData.configValue,\r\n };\r\n this._notificationService.showPopupMessageBox(message, this.cancelOkHandler.bind(this), this.cancelOkHandler.bind(this));\r\n });\r\n }\r\n\r\n cancelOkHandler() {\r\n // do nothing\r\n this.commonService.clearImgList.next(true);\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
Ticket\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 0 else NoScreenshots\" #nav [images]=\"imageObject\" [infinite]=\"false\"\r\n [autoSlide]=\"5\" [imageSize]=\"{width: 541, height: 300,space: 4}\" slideImage=\"1\" showArrow=\"true\">\r\n \r\n \r\n No Screenshots available\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.css']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n loading!: boolean;\r\n externalLoading!:boolean;\r\n\r\n constructor(private loaderService: LoaderService) {\r\n\r\n this.loaderService.isLoading.subscribe((v) => {\r\n this.loading = v;\r\n });\r\n this.loaderService.isExternalLoading.subscribe((res)=>{\r\n this.externalLoading = res;\r\n })\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n}","
","import { Directive, EventEmitter, Input, Output, OnDestroy } from '@angular/core';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete'\r\nimport { Subject } from 'rxjs';\r\nimport { tap, takeUntil } from 'rxjs/operators';\r\n\r\nexport interface IAutoCompleteScrollEvent {\r\n autoComplete: MatAutocomplete;\r\n scrollEvent: Event;\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-autocomplete[optionsScroll]'\r\n})\r\nexport class OptionsScrollDirective implements OnDestroy {\r\n\r\n @Input() thresholdPercent = .8;\r\n @Output('optionsScroll') scroll = new EventEmitter();\r\n _onDestroy = new Subject();\r\n\r\n constructor(public autoComplete: MatAutocomplete) {\r\n this.autoComplete.opened.pipe(\r\n tap(() => {\r\n // Note: When autocomplete raises opened, panel is not yet created (by Overlay)\r\n // Note: The panel will be available on next tick\r\n // Note: The panel wil NOT open if there are no options to display\r\n setTimeout(() => {\r\n // Note: remove listner just for safety, in case the close event is skipped.\r\n this.removeScrollEventListener();\r\n this.autoComplete.panel.nativeElement\r\n .addEventListener('scroll', this.onScroll.bind(this))\r\n });\r\n }),\r\n takeUntil(this._onDestroy)).subscribe();\r\n\r\n this.autoComplete.closed.pipe(\r\n tap(() => this.removeScrollEventListener()),\r\n takeUntil(this._onDestroy)).subscribe();\r\n }\r\n\r\n private removeScrollEventListener() {\r\n if (this.autoComplete.panel && this.autoComplete.panel.nativeElement) {\r\n this.autoComplete.panel.nativeElement\r\n .removeEventListener('scroll', this.onScroll);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onDestroy.next(null);\r\n this._onDestroy.complete();\r\n this.removeScrollEventListener();\r\n }\r\n\r\n onScroll(event: Event) {\r\n\r\n if (this.thresholdPercent === undefined) {\r\n this.scroll.next({ autoComplete: this.autoComplete, scrollEvent: event });\r\n } else {\r\n const targetElement: HTMLDivElement = event.target as HTMLDivElement;\r\n const threshold = this.thresholdPercent * 100 * targetElement.scrollHeight / 100;\r\n const current = targetElement.scrollTop + targetElement.clientHeight;\r\n if (current > threshold) {\r\n this.scroll.next({ autoComplete: this.autoComplete, scrollEvent: event });\r\n }\r\n }\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-project-elements',\r\n templateUrl: './project-elements.component.html',\r\n styleUrls: ['./project-elements.component.css']\r\n})\r\nexport class ProjectElementsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { LoginPageComponent } from './login/login-page.component';\r\nimport { MailRedirectHandlerComponent } from './mail-redirect-handler/mail-redirect-handler.component';\r\n\r\nexport const authenticationRoutes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'login',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'login',\r\n component: LoginPageComponent\r\n },\r\n {\r\n path: 'mail-redirect-handler',\r\n component: MailRedirectHandlerComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(authenticationRoutes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AuthenticationRoutingModule {\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { LoginService } from 'src/app/Service/login.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\n\r\n@Component({\r\n selector: 'app-Change-Password-Otp-Verification-dialog',\r\n templateUrl: './Change-Password-Otp-Verification.component.html'\r\n})\r\nexport class OTPVerificationComponent implements OnInit { \r\n public actionButtonText: string = \"Verify\";\r\n memberId: number|null = null;\r\n ShowMailID:string =\"\";\r\n public OTPVerificationForm: FormGroup = new FormGroup({\r\n Code: new FormControl('',[Validators.required])\r\n });\r\n\r\n constructor( public _dialogRef: MatDialogRef,\r\n private _notificationService:NotificationService,\r\n @Inject(MAT_DIALOG_DATA) public _data: any, private loginService: LoginService,private encryptDecryptService: EncryptDecryptService) {\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n // this.memberId = this._commonService.getLoggedInUserId();\r\n \r\n if (this._data.MailId)\r\n this.ShowMailID =\"XXXXX\" + this._data.MailId.substring(this._data.MailId.length-14);\r\n \r\n }\r\n \r\n\r\n /**\r\n * Save project\r\n */\r\n saveProject() {\r\n \r\n let otp_input ={\r\n OTP : this.getFormValue(\"Code\").trim() ,\r\n UserName: this._data.username,\r\n MailId: this._data.MailId,\r\n Flag : \"VERIFY\",\r\n password:this._data.password\r\n }\r\n this.loginService.PostForgetPasswordOTP(otp_input).subscribe(res =>{ \r\n if(res.successCode==200)\r\n {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this._dialogRef.close(res);\r\n }\r\n else\r\n {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n \r\n }\r\n\r\n /**\r\n * Get GroupForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.OTPVerificationForm.get(controlName)?.value;\r\n }\r\n\r\n \r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n \r\n \r\n}","
\r\n
\r\n Enter code\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

We sent OTP to {{ShowMailID}} Please enter the code to sign in.

\r\n
\r\n
\r\n \r\n Code\r\n \r\n \r\n Code is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n  \r\n Cancel\r\n
\r\n
","import { Observable } from 'rxjs';\r\nimport { MatDialogRef, MatDialog } from '@angular/material/dialog';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { LoginService } from 'src/app/Service/login.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { OTPVerificationComponent } from '../dialogs/Forget-Password-OTP-Verification/Change-Password-Otp-Verification.component';\r\n\r\n@Component({\r\n selector: 'app-forget-password',\r\n templateUrl: './forget-password.component.html',\r\n styleUrls: ['./forget-password.component.css']\r\n})\r\nexport class ForgetPasswordComponent implements OnInit {\r\n\r\n public currentYear: number = new Date().getFullYear();\r\n isButtonDisabled: boolean = false;\r\n timer: number = 30;\r\n timerInterval: any;\r\n\r\n public forgetPasswordForm: FormGroup = new FormGroup({\r\n username: new FormControl('', [Validators.required]),\r\n EmailId: new FormControl('', [Validators.required]),\r\n password: new FormControl('', [Validators.required, Validators.minLength(8)]),\r\n retypePassword: new FormControl('', [Validators.required, Validators.minLength(8)])\r\n });\r\n\r\n constructor(public _dialogRef: MatDialogRef, private encryptDecryptService: EncryptDecryptService, private _notificationService: NotificationService, private loginService: LoginService, private dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.clearForm();\r\n }\r\n\r\n getFormValue(controlName: string): any {\r\n return this.forgetPasswordForm.get(controlName)?.value;\r\n }\r\n\r\n onClick_Submit(): any {\r\n let _input = {\r\n username: this.getFormValue(\"username\"),\r\n EmailId: this.getFormValue(\"EmailId\").toString(),\r\n password: this.getFormValue(\"password\"),\r\n retypePassword: this.getFormValue(\"retypePassword\")\r\n };\r\n\r\n if (_input.password.trim() != _input.retypePassword.trim()) {\r\n this._notificationService.showToast(\"Password and retype password should be same\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (!_input.password.trim().match(/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/)) {\r\n this._notificationService.showToast(\"Wrong password combination\", \"Warning\");\r\n return;\r\n }\r\n\r\n // if (_input.EmailId.) {\r\n // this._notificationService.showToast(\"Mobile number is invalid\", \"Warning\");\r\n // return;\r\n // }\r\n let _otp = Math.floor((Math.random() * 100000) + 1)\r\n if (this.forgetPasswordForm.invalid) {\r\n return false;\r\n }\r\n\r\n else {\r\n let otp_input = {\r\n OTP: _otp,\r\n UserName: this.getFormValue(\"username\"),\r\n MailId: this.getFormValue(\"EmailId\").toString(),\r\n password: this.encryptDecryptService.encrypt(this.getFormValue(\"password\").trim()),\r\n Flag: \"INSERT\"\r\n }\r\n this.loginService.PostForgetPasswordOTP(otp_input).subscribe(res => {\r\n if (res[\"successCode\"] === 200) {\r\n // this._notificationService.showToast(res[\"successMessage\"], \"Success\");\r\n // this.clearForm();\r\n // this._dialogRef.close();\r\n this.isButtonDisabled = true;\r\n this.timerInterval = setInterval(() => {\r\n this.timer--;\r\n if (this.timer <= 0) {\r\n // Enable the submit button when the timer reaches 0\r\n this.isButtonDisabled = false;\r\n this.timer = 30;\r\n clearInterval(this.timerInterval);\r\n }\r\n }, 1000);\r\n let input = {\r\n username: this.getFormValue(\"username\").trim(),\r\n mobileNumber: this.getFormValue(\"EmailId\").toString(),\r\n password: this.encryptDecryptService.encrypt(this.getFormValue(\"password\").trim()),\r\n MailId: this.getFormValue(\"EmailId\").toString()\r\n\r\n };\r\n let dialogRef = this.dialog.open(OTPVerificationComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '40%',\r\n maxWidth: '60vw',\r\n data: input\r\n });\r\n dialogRef.afterClosed().subscribe((data: { successCode: number; }) => {\r\n if (data.successCode == 200)\r\n this._dialogRef.close();\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(res[\"successMessage\"], \"Warning\");\r\n }\r\n });\r\n return;\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n clearForm() {\r\n this.forgetPasswordForm.get('username')?.setValue('');\r\n this.forgetPasswordForm.get('mobileNumber')?.setValue('');\r\n this.forgetPasswordForm.get('username')?.setValue('');\r\n this.forgetPasswordForm.get('retypePassword')?.setValue('');\r\n }\r\n\r\n onClick_Cancel() {\r\n this._dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Forgot or Change Password

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n User name is required\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Email Id is required\r\n \r\n \r\n Email Id is invalid\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Password is required\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Retype password is required\r\n \r\n \r\n Password Mismatch\r\n \r\n
\r\n
\r\n
\r\n \r\n Password should be combination of minimum 8 characters including 1\r\n uppercase letter, 1 special character and alphanumeric characters.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n please try again after {{ timer }} seconds\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Observable } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { LoginService } from 'src/app/Service/login.service';\r\nimport { UserDetailsViewModel } from 'src/app/ViewModel/UserDetailsModel';\r\nimport { ForgetPasswordComponent } from '../forget-password/forget-password.component';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\n\r\n@Component({\r\n selector: 'app-login-page',\r\n templateUrl: './login-page.component.html',\r\n styleUrls: ['./login-page.component.css']\r\n})\r\nexport class LoginPageComponent implements OnInit {\r\n\r\n public isInternalUser = true;\r\n public isSubmitted = false;\r\n public currentYear: number = new Date().getFullYear();\r\n isPopupVisible = false;\r\n\r\n public loginForm: FormGroup = new FormGroup({\r\n username: new FormControl('', [Validators.required]),\r\n password: new FormControl('', [Validators.required])\r\n });\r\n\r\n constructor(private commonService: CommonService,\r\n private dialog: MatDialog,\r\n private router: Router, private _notificationService: NotificationService, private encryptDecryptService: EncryptDecryptService, private loginService: LoginService) { }\r\n\r\n ngOnInit() {\r\n this.isSubmitted = false;\r\n\r\n if (this.commonService.hasJWT()) {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n }\r\n togglePopup() {\r\n this.isPopupVisible = !this.isPopupVisible;\r\n }\r\n public onTabClick(event: MatTabChangeEvent) {\r\n if (event.tab.textLabel === \"Employee\")\r\n this.isInternalUser = true;\r\n else\r\n this.isInternalUser = false;\r\n }\r\n\r\n getFormValue(controlName: string): any {\r\n return this.loginForm.get(controlName)?.value;\r\n }\r\n\r\n public onSubmit(): any {\r\n this.isSubmitted = true;\r\n\r\n if (!this.isInternalUser && this.loginForm.invalid) {\r\n this.isSubmitted = false;\r\n return false;\r\n }\r\n\r\n if (this.isInternalUser) {\r\n this.loginService.InternalMemberLogin();\r\n }\r\n else {\r\n let user = {\r\n username: this.getFormValue(\"username\"),\r\n password: this.encryptDecryptService.encrypt(this.getFormValue(\"password\")),\r\n isInternalUser: this.isInternalUser,\r\n };\r\n\r\n this.loginService.ExternalMemberLogin(user).subscribe((data: StandardOutputModel) => {\r\n if (data.successCode === 200) {\r\n this.GetCurrentUserDetails({ memberId: data.result, isInternal: this.isInternalUser, isLoginTime: true });\r\n }\r\n else if(data.successCode === 500){\r\n this.isSubmitted = false;\r\n this.loginForm.get('password')?.setValue('');\r\n let retryCount:number = +data.result;\r\n if(retryCount >=5)\r\n {\r\n this._notificationService.showPopup(\"Your account is locked. To unlock it, please contact admin.\", \"Warning\");\r\n }\r\n else{\r\n let remainingAttempt:number = 5 - retryCount;\r\n if(remainingAttempt <=3){\r\n this._notificationService.showPopup(remainingAttempt + \" Attempt(s) remaining\", \"Warning\");\r\n }\r\n else{\r\n this._notificationService.showPopup(data.successMessage, \"Warning\");\r\n }\r\n }\r\n }\r\n else {\r\n this.isSubmitted = false;\r\n this.loginForm.get('username')?.setValue('');\r\n this.loginForm.get('password')?.setValue('');\r\n this._notificationService.showPopup(data[\"successMessage\"], \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n public GetCurrentUserDetails(user: { memberId: string; isInternal: boolean; isLoginTime: boolean; }) {\r\n this.loginService.GetCurrentUserDetails(user).subscribe((data: UserDetailsViewModel[]| any) => {\r\n if (data[\"successCode\"] === 200) {\r\n let isDuplicateLogin = data[\"isDuplicateLogin\"];\r\n this.commonService.setCurrentUserProfileCard(data);\r\n\r\n if (isDuplicateLogin === true) {\r\n this._notificationService.showPopup('Your login account is used in another device. The session in that device has been closed', \"Warning\").then(\r\n x => {\r\n this.router.navigate(this.commonService.redirectUserToPRAddComments ? ['/peer-review/review-add-comments'] : ['/dashboard']);\r\n }\r\n );\r\n }\r\n else {\r\n this.router.navigate(this.commonService.redirectUserToPRAddComments ? ['/peer-review/review-add-comments'] : ['/dashboard']);\r\n }\r\n }\r\n else {\r\n this.isSubmitted = false;\r\n this.loginForm.get('username')?.setValue('');\r\n this.loginForm.get('password')?.setValue('');\r\n this._notificationService.showPopup(data[\"successMessage\"], \"Warning\");\r\n }\r\n });\r\n }\r\n\r\n public forgetPwd() {\r\n const dialogRef = this.dialog.open(ForgetPasswordComponent, {\r\n panelClass: 'mat-dialog-forget',\r\n width: '45%'\r\n });\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Landing\r\n

Welcome To EDMS\r\n

\r\n \"Footer\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

EDMS 4.0

\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \"Employee-Icon\"\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n

Download Mobile App

\r\n
\r\n
\r\n ×\r\n

Note : this application is for Android devices.\r\n

\r\n \"edmsapk-qrcode\"
\r\n

or

\r\n

click here to download

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n User name is required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Password is required\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

EDMS © {{ currentYear }} L&T Construction. All Rights Reserved.

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\n\r\n@Component({\r\n selector: 'app-mail-redirect-handler',\r\n templateUrl: './mail-redirect-handler.component.html',\r\n styleUrls: ['./mail-redirect-handler.component.css']\r\n})\r\n\r\nexport class MailRedirectHandlerComponent implements OnInit {\r\n\r\n private page!: string;\r\n private project!: string;\r\n private inputDocId!: string;\r\n private inputRevNo!: string;\r\n private inputMsgId!: string;\r\n private currentUrl: string ;\r\n private previousUrl!: string;\r\n\r\n constructor(private route: ActivatedRoute, private router: Router, private encryptDecryptService: EncryptDecryptService, private commonService: CommonService) {\r\n this.currentUrl = this.router.url;\r\n\r\n this.route.queryParams.subscribe(params => {\r\n this.page = params['page'];\r\n this.project = params['project'];\r\n this.inputDocId = params['doc'];\r\n this.inputRevNo = params['rev'];\r\n this.inputMsgId = params['msg'];\r\n });\r\n\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.currentUrl = event.url;\r\n this.previousUrl = this.currentUrl;\r\n };\r\n });\r\n\r\n let data = {\r\n page: this.page,\r\n project: this.project,\r\n inputDocId: this.inputDocId,\r\n inputRevNo: this.inputRevNo,\r\n inputMsgId: this.inputMsgId\r\n }\r\n\r\n this.commonService.setSessionStorageItem('requestedObject', this.encryptDecryptService.encrypt(JSON.stringify(data)));\r\n\r\n if (this.commonService.hasJWT()) {\r\n this.router.navigate(['/dashboard/home']);\r\n }\r\n else {\r\n this.router.navigate(['/authentication/login']);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IScheduleDocInfo } from 'src/app/ViewModel/ScheduleDocumentModel';\r\n\r\n@Component({\r\n selector: 'app-attachment-dialog',\r\n templateUrl: './attachment-dialog.component.html',\r\n styleUrls: ['./attachment-dialog.component.css']\r\n})\r\nexport class AttachmentDialogComponent implements OnInit {\r\n public isDocumentView: boolean = true;\r\n public is_Schedule_Document: boolean = false;\r\n public viewData: any[] = [];\r\n public viewSchData: IScheduleDocInfo | undefined | null;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit() {\r\n this.isDocumentView = this.data.isDocumentView;\r\n this.is_Schedule_Document = this.data.is_Schedule_Document;\r\n this.viewData = !this.data.is_Schedule_Document ? this.data.viewData : [];\r\n this.viewSchData = this.data.is_Schedule_Document ? this.data.viewData : null;\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Mail Attachments

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { result } from 'lodash';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\n\r\n@Component({\r\n selector: 'app-attachments-list',\r\n templateUrl: './attachments-list.component.html',\r\n styleUrls: ['./attachments-list.component.css']\r\n})\r\nexport class AttachmentsListComponent implements OnInit {\r\n public messageId!: number;\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n\r\n constructor(\r\n public restApiService: RestApiService,\r\n private http: HttpClient,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialog: MatDialog,\r\n public commonService: CommonService,\r\n public notificationService: NotificationService,\r\n public dialogRef: MatDialogRef,\r\n private communicationService: CommunicationService,\r\n ) { }\r\n ngOnInit() {\r\n this.messageId = this.data[\"messageId\"];\r\n this.getMessageList();\r\n this.getDocumentList();\r\n }\r\n public togglePopupDialog() {\r\n this.dialogRef.close();\r\n }\r\n /**\r\n * Data Binding in Grid\r\n * @param type\r\n *\r\n */\r\n public getMessageList() {\r\n this.communicationService.getMessageAttachmentsList(this.messageId).subscribe((data: any[]) => {\r\n this.data = data.map(x => {\r\n let result: any = {\r\n messageId: x.messageId,\r\n attachedMessageId: x.attachedMessageId,\r\n fromMemberName:x.fromMemberName,\r\n toMemberName:x.toMemberName,\r\n messageNumber:x.messageNumber,\r\n messageSubject:x.messageSubject\r\n };\r\n return result;\r\n });\r\n this.messageList = this.data;\r\n return result;\r\n });\r\n }\r\n\r\n /**\r\n * Data Binding in Grid\r\n * @param type\r\n *\r\n */\r\n public getDocumentList() {\r\n\r\n this.communicationService.getMessageDocumentsList(this.messageId).subscribe((data: any[]) => {\r\n this.data = data.map(x => {\r\n let result: any = {\r\n messageId: x.messageId,\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n revisedOn: x.revisedOn,\r\n createdBy: x.createdBy,\r\n authorisedBy: x.authorisedBy\r\n };\r\n return result;\r\n });\r\n this.documentList = this.data;\r\n return result;\r\n }); \r\n }\r\n \r\n}\r\n","
\r\n
\r\n
\r\n ATTACHMENT\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Documents

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n Created By\r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Messages

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n {{dataItem.fromMemberName}}\r\n \r\n \r\n \r\n \r\n To\r\n \r\n \r\n {{dataItem.toMemberName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { groupBy } from 'lodash';\r\nimport { IMessageGroupMGInputModel, IMessageGroupOutputModel } from 'src/app/ViewModel/CommunicationModel';\r\n@Component({\r\n selector: 'app-common-cart',\r\n templateUrl: './common-cart.component.html',\r\n styleUrls: ['./common-cart.component.css']\r\n})\r\nexport class CommonCartComponent implements OnInit {\r\n selectedRootIndex: number = 0;\r\n employeeTab: boolean = true;\r\n distTab: boolean = false;\r\n addTabVal: number = 0;\r\n receiverType: number = 1;\r\n selectedList: any[] = [];\r\n savedMessageGroup!: IMessageGroupMGInputModel;\r\n public docList!: any[];\r\n public postedGroupList: any[] = [];\r\n projectBusinessGroupId: number = 0;\r\n /** Project business group list */\r\n projectBusinessGroupList: BusinessGroupModel[] = [];\r\n memberList: ProjectMemberModel[] = [];\r\n projectSelectedMembers: ProjectMemberModel[] = [];\r\n /** Cart filtered data source. removed duplication with selected data */\r\n cartDataSource: ProjectMemberModel[] = [];\r\n /** Cart Right side (seleceted data) */\r\n cartSelectedList: any[] = [];\r\n cartRequest = {};\r\n cartSelectedListCopy!: any[];\r\n selectedResult: string = '';\r\n public messageGroupList: IMessageGroupOutputModel[] = [];\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n public commonService: CommonService,\r\n public notificationService: NotificationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.receiverType = this.data.receiverType;\r\n this.selectedList = this.data.alreadySelectedList;\r\n this.projectBusinessGroupId = +this.commonService.getLoggedInUserGroupId();\r\n this.getProjectBusinessGroup();\r\n if (this.selectedList != undefined) {\r\n let res = this.selectedList.filter(y => y.isGroup == false).map(x => x.title);\r\n this.selectedResult = res.map(x => x).toString();\r\n }\r\n }\r\n\r\n public tabClick(event: any) {\r\n\r\n if (event.tab.textLabel === 'Distribution List') {\r\n this.employeeTab = false;\r\n this.addTabVal = 0;\r\n this.distTab = true;\r\n }\r\n else {\r\n this.distTab = false;\r\n this.addTabVal = 0;\r\n this.employeeTab = true;\r\n }\r\n }\r\n\r\n AddMGList() {\r\n this.distTab = true;\r\n this.addTabVal = 1;\r\n this.employeeTab = false;\r\n }\r\n async getProjectBusinessGroup() {\r\n let response = await this.projectMemberLinkService.getProjectBusinessGroup(this.commonService.getProjectId()).toPromise();\r\n this.projectBusinessGroupList = response.filter((each: any) => each.is_Active);\r\n }\r\n\r\n async changeProjectBusinessGroup(event: any) {\r\n if (event.value != '-2') {\r\n this.projectBusinessGroupId = event.value;\r\n this.memberList = await this.projectMemberLinkService.getSelectedMemberList(this.commonService.getProjectId(), this.projectBusinessGroupId).toPromise();\r\n if (this.data.alreadySelectedList != undefined) {\r\n let alreadyselectedMembers = this.data.alreadySelectedList.filter((x: { isGroup: boolean; }) => x.isGroup == false);\r\n this.projectSelectedMembers = alreadyselectedMembers.map((x: { value: number; }) => {\r\n return this.memberList.find(member => member.memberId == x.value);\r\n });\r\n this.memberList = this.changeKeyFormat(this.memberList, alreadyselectedMembers);\r\n }\r\n else {\r\n this.projectSelectedMembers = [];\r\n }\r\n } else {\r\n this.projectBusinessGroupId = 0;\r\n this.projectSelectedMembers = [];\r\n }\r\n this.setCartValues();\r\n }\r\n\r\n closeDialog(data: any) {\r\n if (data && data.length > 0) {\r\n this.dialogRef.close({ selectedText: this.selectedResult, data: data });\r\n }\r\n else {\r\n this.dialogRef.close(data);\r\n }\r\n }\r\n\r\n changeKeyFormat(inputArr: any, alreadySelectedMembers: []) {\r\n let grpdSelectedMembers = groupBy(alreadySelectedMembers, 'value');\r\n let outputArr: any = [];\r\n inputArr.forEach((eachObj: any) => {\r\n if (!(grpdSelectedMembers && grpdSelectedMembers[eachObj['memberId']] && grpdSelectedMembers[eachObj['memberId']].length)) {\r\n outputArr.push(eachObj);\r\n }\r\n });\r\n return outputArr;\r\n }\r\n\r\n setCartValues() {\r\n this.cartDataSource = this.removeDuplicates(this.memberList, this.projectSelectedMembers, 'memberId');\r\n this.cartSelectedList = [];\r\n this.cartSelectedListCopy = [];\r\n this.projectSelectedMembers.forEach(eachMember => {\r\n let cartValue: any = this.getAsCartSelectedValue(eachMember.memberId, eachMember.memberName);\r\n this.cartSelectedList.push(cartValue);\r\n this.cartSelectedListCopy.push(cartValue);\r\n });\r\n this.setCartParams();\r\n }\r\n\r\n removeDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n let filteredArray: any = [],\r\n grpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n dataSource.forEach((eachData: any) => {\r\n if (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n filteredArray.push(eachData);\r\n }\r\n });\r\n return filteredArray;\r\n }\r\n\r\n getAsCartSelectedValue(value: string | number, text: string) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text\r\n };\r\n return output;\r\n }\r\n\r\n setCartParams() {\r\n this.cartRequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartSelectedList,\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'memberName',\r\n 'valueField': 'memberId',\r\n 'cartLabel': 'Members',\r\n },\r\n 'dataSource': this.cartDataSource,\r\n }\r\n }\r\n\r\n getSelectedCartItems(event: EIPAutoCompleteEventModel[]) {\r\n let data: any = this.data.alreadySelectedList;\r\n event.map(x => {\r\n let index = this.data.alreadySelectedList.findIndex((y: any) => y.value == x.value);\r\n if (index == -1) {\r\n data.push({\r\n value: x.value,\r\n title: x.additionalValues.additionalValues[\"memberName\"],\r\n isActive: true,\r\n isGroup: false,\r\n groupId: 0,\r\n groupName: ''\r\n });\r\n }\r\n });\r\n data.forEach((value: { value: string | number; }, index: string | number) => {\r\n let id = event.findIndex(y => y.value == value.value);\r\n if (id == -1) {\r\n data[index].isActive = false;\r\n }\r\n });\r\n let res = data.filter((x: { isActive: boolean; }) => x.isActive == true).map((x: { title: any; }) => x.title);\r\n this.selectedResult = res.map((x: any) => x).toString();\r\n this.closeDialog(data);\r\n }\r\n\r\n postMessageGroup(event: any[]) {\r\n this.postedGroupList = [];\r\n event.map(e => {\r\n let temp = e.memberList.map((x: { value: any; text: any; }) => {\r\n this.postedGroupList.push({\r\n value: x.value,\r\n title: x.text,\r\n isActive: true,\r\n isGroup: true,\r\n groupId: e.value,\r\n groupName: e.text\r\n });\r\n });\r\n });\r\n let res = event.map(x => x.text);\r\n this.selectedResult = this.selectedResult + res.map(x => x).toString();\r\n this.closeDialog(this.postedGroupList);\r\n }\r\n}\r\n","
\r\n
\r\n Common Cart\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Employees\r\n \r\n \r\n \r\n \r\n Distribution List \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Business Group:\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core';import { Routes, RouterModule } from '@angular/router';import { MailComponent } from './mail/mail.component';export const communicationRoutes: Routes = [  { path: 'communication', component: MailComponent, data: { title: 'COMMUNICATION', isProjectCodeRequired: true } }];@NgModule({  imports: [RouterModule.forChild(communicationRoutes)],  exports: [RouterModule]})export class CommunicationRoutingModule { }","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-create-message',\r\n templateUrl: './create-message.component.html',\r\n styleUrls: ['./create-message.component.css']\r\n})\r\nexport class CreateMessageComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n ngOnInit() {\r\n \r\n }\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Create Message

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { IMessageGroupOutputModel, IMessageGroupMemberListModel, IMessageGroupModel, IMessageGroupMGInputModel, IMessageGroupMemberInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { groupBy } from 'lodash';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-distribution-list',\r\n templateUrl: './distribution-list.component.html',\r\n styleUrls: ['./distribution-list.component.css']\r\n})\r\nexport class DistributionListComponent implements OnInit {\r\n @Input() addTabVal: number = 0;\r\n @Output() addTabValChange = new EventEmitter();\r\n @Input() selectedGroupId!: number;\r\n @Input() receiverType: number = 1;\r\n @Input() selectedList: any[] = [];\r\n @Output() postGroup = new EventEmitter();\r\n memberId: number = 0;\r\n groupList: IMessageGroupOutputModel[] = [];\r\n selectedGroupList: IMessageGroupOutputModel[] = [];\r\n public mGForm: FormGroup = new FormGroup({\r\n txtGroupName: new FormControl(),\r\n });\r\n public projectId!: number;\r\n cartSelectedList! : any[];\r\n cartSelectedListCopy!: any[];\r\n SearchLength: number = 0;\r\n cartList: IMessageGroupModel[] = [];\r\n cartCollection: any[] = [];\r\n cartSelectedCollection: any[] = [];\r\n cartTempCollection: any[] = [];\r\n selectedOptions = '';\r\n _leftTempCollection: any[] = [];\r\n _rightTempCollection: any[] = [];\r\n leftSearchValue = '';\r\n rightSearchValue = '';\r\n emittingList: any[] = [];\r\n _matGroupDefaultValues: any[] = [];\r\n dataSource: any[] = [];\r\n _selectArrowModel: selectArrowModel = new selectArrowModel();\r\n cartHelper: CartHelper = new CartHelper();\r\n public MGMembersList: IMessageGroupMemberInputModel[] = [];\r\n public editMGId: number = 0;\r\n public selectedMessageGroup: any;\r\n\r\n constructor(\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n public notificationService: NotificationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n }\r\n\r\n ngOnChanges() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n if (this.addTabVal == 0) {\r\n this.cartSelectedCollection = [];\r\n this.cartCollection = [];\r\n this.getDistributionList();\r\n }\r\n else {\r\n this.cartSelectedCollection = [];\r\n this.cartCollection = [];\r\n this.getMemberList();\r\n }\r\n }\r\n\r\n async getMemberList() {\r\n let memberList = await this.projectMemberLinkService.getSelectedMemberList(this.commonService.getProjectId(), +this.selectedGroupId).toPromise();\r\n memberList.forEach((x: { memberId: any; memberName: any; }) => {\r\n let item: IMessageGroupModel = {\r\n value: x.memberId,\r\n text: x.memberName,\r\n selected: false,\r\n selectMode: '',\r\n memberList: null\r\n };\r\n this.cartCollection.push(item);\r\n });\r\n if (this.editMGId != 0) {\r\n let projectSelectedMembers = this.selectedMessageGroup.memberList;\r\n projectSelectedMembers.forEach((x: { value: any; text: any; }) => {\r\n let item: IMessageGroupModel = {\r\n value: x.value,\r\n text: x.text,\r\n selected: false,\r\n selectMode: '',\r\n memberList: null\r\n };\r\n this.cartSelectedCollection.push(item);\r\n });\r\n this.cartCollection = this.removeDuplicates(this.cartCollection, projectSelectedMembers, 'value');\r\n }\r\n\r\n }\r\n\r\n async getDistributionList() {\r\n this.groupList = await this.communicationService.GetMessageGroup({ MemberId: this.memberId , ProjectId :this.projectId}).toPromise();\r\n if (this.selectedList != undefined && this.selectedList.length > 0) {\r\n let alreadyselectedGroups = this.selectedList.filter(x => x.isGroup == true);\r\n alreadyselectedGroups.forEach(x => {\r\n let res:any = this.groupList.find(group => group['groupDescription'] == x.groupName);\r\n this.selectedGroupList.push(res);\r\n });\r\n }\r\n this.setCartValues();\r\n this.handleSelectArrows();\r\n }\r\n\r\n groupListBy(list: any[], keyGetter: { (group: any): any; (arg0: any): any; }) {\r\n const map = new Map();\r\n list.forEach((item) => {\r\n const key = keyGetter(item);\r\n const collection = map.get(key);\r\n if (!collection) {\r\n map.set(key, [item]);\r\n } else {\r\n collection.push(item);\r\n }\r\n });\r\n return map;\r\n }\r\n\r\n setCartValues() {\r\n this.cartCollection = [];\r\n this.cartSelectedCollection = [];\r\n const grouped = this.groupListBy(this.groupList, (group:any) => group.groupId);\r\n\r\n grouped.forEach((value: any[], key: number) => {\r\n let memberList: IMessageGroupModel[] = value.map(x => {\r\n return {\r\n value: x.memberId,\r\n text: x.memberName,\r\n selected: false,\r\n selectMode: '',\r\n memberList: null\r\n };\r\n });\r\n let item: IMessageGroupModel = {\r\n value: key.toString(),\r\n text: value[0].groupDescription,\r\n selected: false,\r\n selectMode: '',\r\n memberList: memberList\r\n };\r\n this.cartCollection.push(item);\r\n });\r\n this.dataSource = this.removeDuplicates(this.groupList, this.selectedGroupList, 'groupId');\r\n this.cartSelectedList = [];\r\n this.cartSelectedListCopy = [];\r\n this.selectedGroupList.forEach(eachgroup => {\r\n let cartValue= this.getAsCartSelectedValue(eachgroup['groupId'], eachgroup['groupDescription']);\r\n this.cartSelectedList.push(cartValue);\r\n this.cartSelectedListCopy.push(cartValue);\r\n this.cartCollection.find(x => x.value == eachgroup['groupId'].toString()).selected = true;\r\n });\r\n this.moveSelectedItems();\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n editMessageGroup(group: any) {\r\n this.editMGId = group.value;\r\n this.selectedMessageGroup = group;\r\n this.addTabVal = 1;\r\n this.mGForm.controls['txtGroupName'].setValue(group.text);\r\n this.cartSelectedCollection = [];\r\n this.cartCollection = [];\r\n this.getMemberList();\r\n }\r\n\r\n postMessageGroup() {\r\n this.postGroup.emit(this.cartSelectedCollection);\r\n }\r\n\r\n saveMessageGroup() {\r\n this.MGMembersList = [];\r\n if (this.cartSelectedCollection.length > 0) {\r\n this.cartSelectedCollection.forEach(member => {\r\n let memberId = +member.value;\r\n this.MGMembersList.push({\r\n MemberId: memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: 0,\r\n GroupId: 1,\r\n ProjectId: this.commonService.getProjectId(),\r\n RoleId: 2,\r\n ReceiverType: 2,\r\n IsActive: true\r\n });\r\n });\r\n\r\n if (this.editMGId != 0) {\r\n this.selectedMessageGroup.memberList.forEach((member: { value: string | number; }) => {\r\n let memberId = +member.value;\r\n let alreadySelectedMember = this.cartSelectedCollection.findIndex(x => x.value == memberId);\r\n if (alreadySelectedMember == -1) {\r\n this.MGMembersList.push({\r\n MemberId: memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: 0,\r\n GroupId: this.commonService.getLoggedInUserGroupId(),\r\n ProjectId: this.commonService.getProjectId(),\r\n RoleId: 2,\r\n ReceiverType: this.receiverType,\r\n IsActive: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n let inputModel: IMessageGroupMGInputModel = {\r\n MemberId: this.memberId,\r\n OwnerId: this.memberId,\r\n GroupId: this.editMGId,\r\n ProjectId: this.commonService.getProjectId(),\r\n GroupDescription: this.getFormValue('txtGroupName', this.mGForm),\r\n IsActive: true,\r\n MessageGroupMembers: this.MGMembersList,\r\n };\r\n this.callService(inputModel);\r\n }\r\n else {\r\n this.notificationService.showToast(\"Minimum one member should be selected\", \"Warning\");\r\n }\r\n }\r\n\r\n deleteMessageGroup(group: IMessageGroupModel) {\r\n let inputModel: IMessageGroupMGInputModel = {\r\n MemberId: this.memberId,\r\n OwnerId: this.memberId,\r\n GroupId: +group.value,\r\n ProjectId: 0,\r\n GroupDescription: group.text,\r\n IsActive: false,\r\n MessageGroupMembers: []\r\n };\r\n this.callService(inputModel);\r\n }\r\n\r\n callService(inputModel: IMessageGroupMGInputModel) {\r\n this.communicationService.InsertUpdateMessageGroup(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.editMGId = 0;\r\n this.selectedMessageGroup = null;\r\n this.mGForm.reset();\r\n this.addTabVal = 0;\r\n this.addTabValChange.emit(this.addTabVal);\r\n this.getDistributionList();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n }\r\n\r\n filterExistingRecords() {\r\n if (this._leftTempCollection && this._leftTempCollection.length === 0) {\r\n this._leftTempCollection = this.cartCollection;\r\n }\r\n this.cartCollection = this.cartHelper.getFilteredCartItems(this._leftTempCollection, this.leftSearchValue.trim());\r\n }\r\n\r\n searchLeftCart() {\r\n if (this.SearchLength.toString().trim() === '0') {\r\n if (this._leftTempCollection && this._leftTempCollection.length === 0) {\r\n this._leftTempCollection = this.cartCollection;\r\n }\r\n this.cartCollection = this.cartHelper.getFilteredCartItems(this._leftTempCollection, this.leftSearchValue.trim());\r\n } else {\r\n if (this.leftSearchValue.length >= this.SearchLength) {\r\n {\r\n this.setCartValues();\r\n }\r\n this.cartCollection = this.cartHelper.getFilteredCartItems(this._leftTempCollection, this.leftSearchValue.trim());\r\n }\r\n }\r\n }\r\n\r\n searchRightCart() {\r\n if (this._rightTempCollection && this._rightTempCollection.length === 0) {\r\n this._rightTempCollection = this.cartSelectedCollection;\r\n }\r\n this.cartSelectedCollection = this.cartHelper.getFilteredCartItems(this._rightTempCollection, this.rightSearchValue.trim());\r\n }\r\n\r\n getAsCartSelectedValue(value: string | number, text: string) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text\r\n };\r\n return output;\r\n }\r\n\r\n removeDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n let filteredArray: any[] = [],\r\n grpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n dataSource.forEach((eachData: any) => {\r\n if (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n filteredArray.push(eachData);\r\n }\r\n });\r\n return filteredArray;\r\n }\r\n\r\n moveSelectedItems() {\r\n let _tmpSelectedCollection: IMessageGroupModel[] = [];\r\n if (this._leftTempCollection.length === 0) {\r\n this._leftTempCollection = this.cartCollection;\r\n }\r\n\r\n this.cartCollection.forEach(element => {\r\n if (element.selected) {\r\n element.selected = false;\r\n element.selectMode = '';\r\n _tmpSelectedCollection.push(element);\r\n }\r\n });\r\n\r\n this.cartMoveSelectedItems(_tmpSelectedCollection);\r\n this.cartTempCollection = [];\r\n this.leftSearchValue = '';\r\n }\r\n\r\n cartMoveSelectedItems(_tmpSelectedCollection: any[]) {\r\n let _isRecordAvailable = false;\r\n let _selIndex = -1;\r\n let _leftTempIndex = -1;\r\n let selectedValueCount = 0;\r\n\r\n selectedValueCount = _tmpSelectedCollection.length;\r\n\r\n if (_tmpSelectedCollection.length > 0) {// if (this.cartCollection.length > 0) {\r\n _tmpSelectedCollection.forEach(element => {\r\n element.selected = false;\r\n _isRecordAvailable =\r\n this.cartHelper.isRecordAvailable(element['value'], this._rightTempCollection);\r\n\r\n // If record not available to right cart then push to it.\r\n if (!_isRecordAvailable) {\r\n this._rightTempCollection.push(element);\r\n }\r\n\r\n _selIndex = this.cartHelper.getMatchingIndex(this.cartCollection, element['value']);\r\n _leftTempIndex = this.cartHelper.getMatchingIndex(this._leftTempCollection, element['value']);\r\n\r\n if (_selIndex > -1 && _leftTempIndex > -1) {\r\n if (this.leftSearchValue.trim() === '') {\r\n this._leftTempCollection.splice(_leftTempIndex, 1);\r\n } else if (this.leftSearchValue.trim() !== '') {\r\n this.cartCollection.splice(_selIndex, 1);\r\n this._leftTempCollection.splice(_leftTempIndex, 1);\r\n }\r\n }\r\n });\r\n this.cartSelectedCollection = this._rightTempCollection.slice(0, 100);\r\n this.cartCollection = this._leftTempCollection.slice(0, 100);\r\n this.handleSelectArrows();\r\n }\r\n }\r\n\r\n moveAllItems() {\r\n let _isRecordAvailable = false;\r\n let _searchedCollection: IMessageGroupModel[] = [];\r\n if (this.cartCollection && this.cartCollection.length > 0) {\r\n // If right hand cart is empty\r\n if (this.cartSelectedCollection.length === 0) {\r\n if (this.leftSearchValue.trim() !== '') {\r\n this._rightTempCollection = this.cartHelper.getFilteredCartItems(this._leftTempCollection, this.leftSearchValue, 0, 100, 'all');\r\n } else {\r\n this._rightTempCollection = this._leftTempCollection;\r\n }\r\n } else if (this.cartSelectedCollection.length > 0) {\r\n if (this.leftSearchValue.trim() === '') {\r\n this._leftTempCollection.forEach(element => {\r\n element.selected = false;\r\n _isRecordAvailable = this.cartHelper.isRecordAvailable(element['value'], this._rightTempCollection);\r\n if (!_isRecordAvailable) {\r\n this._rightTempCollection.push(element);\r\n }\r\n });\r\n } else {\r\n _searchedCollection = this.cartHelper.getFilteredCartItems(this._leftTempCollection, this.leftSearchValue.trim(), 0, 100, 'all');\r\n _searchedCollection.forEach(element => {\r\n element.selected = false;\r\n this._rightTempCollection.push(element);\r\n });\r\n }\r\n }\r\n\r\n if (this.leftSearchValue.trim() !== '') {\r\n this._leftTempCollection = this.cartHelper.removeSelectedItems(this._leftTempCollection, this._rightTempCollection);\r\n this.cartCollection = this._leftTempCollection.slice(0, 100);\r\n } else {\r\n this.cartCollection = [];\r\n this._leftTempCollection = [];\r\n }\r\n this.leftSearchValue = '';\r\n this.cartSelectedCollection = this._rightTempCollection; // .slice(0, 100);\r\n this.handleSelectArrows();\r\n }\r\n }\r\n\r\n\r\n removeSelectedItems() {\r\n\r\n let _selIndex = -1;\r\n let _rightTempIndex = -1;\r\n let _isRecordAvailable = false;\r\n\r\n let selectedCount = 0;\r\n // If leftTemp Colln is empty then set the value = cart collection\r\n if (this._rightTempCollection.length === 0) {\r\n this._rightTempCollection = this.cartSelectedCollection;\r\n }\r\n\r\n\r\n if (this.cartSelectedCollection.length > 0) {\r\n this.cartSelectedCollection.forEach(element => {\r\n\r\n if (element) {\r\n // Moving only the selected items\r\n if (element.selected === true) {\r\n selectedCount++;\r\n\r\n _isRecordAvailable = this.cartHelper.isRecordAvailable(element['value'], this.cartCollection);\r\n element.selected = false;\r\n element.selectMode = '';\r\n\r\n // If record is not available then move to left side cart\r\n if (!_isRecordAvailable) {\r\n this._leftTempCollection.push(element);\r\n }\r\n _selIndex = this.cartHelper.getMatchingIndex(this.cartSelectedCollection, element['value']);\r\n _rightTempIndex = this.cartHelper.getMatchingIndex(this._rightTempCollection, element['value']);\r\n\r\n if (_selIndex > -1 && _rightTempIndex > -1) {\r\n this._rightTempCollection.splice(_rightTempIndex, 1);\r\n }\r\n }\r\n }\r\n });\r\n this.cartTempCollection = [];\r\n this.cartCollection = this._leftTempCollection.slice(0, 100);\r\n this.cartSelectedCollection = this._rightTempCollection.slice(0, 100);\r\n this.rightSearchValue = '';\r\n this.handleSelectArrows();\r\n }\r\n }\r\n\r\n\r\n removeAllItems() {\r\n let _isRecordAvailable = false;\r\n let _tmpCollection: any[] = [];\r\n\r\n let selectedCount = 0;\r\n selectedCount = this._rightTempCollection.length;\r\n\r\n if (this.cartSelectedCollection && this.cartSelectedCollection.length > 0) {\r\n\r\n // If right hand cart is empty\r\n if (this.cartCollection.length === 0) {\r\n if (this.rightSearchValue.trim() !== '') {\r\n this.cartCollection = this.cartHelper.getFilteredCartItems(this._rightTempCollection, this.rightSearchValue, 0, 100);\r\n this._leftTempCollection = this.cartHelper.getFilteredCartItems(this._rightTempCollection, this.rightSearchValue, 0, 100, 'all');\r\n\r\n } else {\r\n this.cartCollection = this._rightTempCollection.slice(0, 100);\r\n this._leftTempCollection = this._rightTempCollection;\r\n }\r\n } else if (this.cartCollection.length > 0) {\r\n if (this.rightSearchValue.trim() === '') {\r\n _tmpCollection = this._rightTempCollection;\r\n } else {\r\n _tmpCollection = this.cartHelper.getFilteredCartItems(this._rightTempCollection, this.rightSearchValue, 0, 100, 'all');\r\n }\r\n\r\n _tmpCollection.forEach(element => {\r\n element.selected = false;\r\n _isRecordAvailable = this.cartHelper.isRecordAvailable(element['value'], this._leftTempCollection);\r\n if (!_isRecordAvailable) {\r\n this._leftTempCollection.push(element);\r\n }\r\n });\r\n\r\n this.cartCollection = this._leftTempCollection.slice(0, 100);\r\n }\r\n\r\n if (this.rightSearchValue.trim() !== '') {\r\n\r\n this._rightTempCollection = this.cartHelper.removeSelectedItems(this._rightTempCollection, this._leftTempCollection);\r\n this.cartSelectedCollection = this._rightTempCollection.slice(0, 100);\r\n } else {\r\n this.cartSelectedCollection = [];\r\n this._rightTempCollection = [];\r\n }\r\n this.rightSearchValue = '';\r\n this.handleSelectArrows();\r\n }\r\n }\r\n\r\n handleSelectArrows(_location?: string) {\r\n\r\n if (_location) {\r\n if (_location === 'left') {\r\n if (this.cartTempCollection.length > 0) {\r\n\r\n this._selectArrowModel.isLeftAllDisabled = true;\r\n this._selectArrowModel.isLeftDisabled = false;\r\n } else {\r\n this._selectArrowModel.isLeftAllDisabled = false;\r\n this._selectArrowModel.isLeftDisabled = true;\r\n }\r\n } else if (_location === 'right') {\r\n\r\n if (this.cartTempCollection.length > 0) {\r\n this._selectArrowModel.isRightAllDisabled = true;\r\n this._selectArrowModel.isRightDisabled = false;\r\n } else {\r\n this._selectArrowModel.isRightAllDisabled = false;\r\n this._selectArrowModel.isRightDisabled = true;\r\n }\r\n }\r\n } else {\r\n\r\n if (this.cartCollection.length > 0) {\r\n this._selectArrowModel.isLeftAllDisabled = false;\r\n this._selectArrowModel.isLeftDisabled = true;\r\n } else {\r\n this._selectArrowModel.isLeftAllDisabled = true;\r\n this._selectArrowModel.isLeftDisabled = true;\r\n }\r\n\r\n if (this.cartSelectedCollection.length > 0) {\r\n this._selectArrowModel.isRightAllDisabled = false;\r\n this._selectArrowModel.isRightDisabled = true;\r\n } else {\r\n this._selectArrowModel.isRightAllDisabled = true;\r\n this._selectArrowModel.isRightDisabled = true;\r\n }\r\n }\r\n }\r\n\r\n getCartItems(selectedItem: any, _location: string, _value?: string, _action?: string) {\r\n if (!selectedItem.option || selectedItem.option === '') {\r\n if (selectedItem.dataItem.memberList == null) {\r\n return;\r\n }\r\n }\r\n let _selectedItem: any = {};\r\n let _selectedCartItemText = '';\r\n let _collection: any[] = [];\r\n let _selectedValue = '';\r\n let _index = -1;\r\n let _isKeyEvent = false;\r\n let _selectedText = '';\r\n let _selectedCartItem: any[] = [];\r\n\r\n if (_action !== 'keyEvent') {\r\n if (!_value || _value === '') {\r\n if (!selectedItem.option || selectedItem.option === '') {\r\n _selectedValue = selectedItem.dataItem.value;\r\n }\r\n else {\r\n _selectedValue = selectedItem.option._value;\r\n }\r\n } else if (_value) {\r\n _selectedValue = _value;\r\n }\r\n\r\n if (_location === 'left') {\r\n _selectedCartItem = this.cartHelper.getFilteredCartItems(this.cartCollection, _selectedValue);\r\n } else if (_location === 'right') {\r\n _selectedCartItem = this.cartHelper.getFilteredCartItems(this.cartSelectedCollection, _selectedValue);\r\n }\r\n\r\n }\r\n // else if (_action === 'keyEvent') {\r\n // _value = selectedItem.target.id;\r\n // this.handleShiftSelection(_value, selectedItem);\r\n // _isKeyEvent = true;\r\n // }\r\n\r\n if (!_isKeyEvent) {\r\n if (_location === 'left') {\r\n _collection = this.cartCollection;\r\n this._selectArrowModel.isLeftDisabled = false;\r\n } else if (_location === 'right') {\r\n _collection = this.cartSelectedCollection;\r\n this._selectArrowModel.isRightDisabled = false;\r\n }\r\n\r\n let _isSelected: boolean;\r\n if (!selectedItem.option || selectedItem.option === '') {\r\n _isSelected = true;\r\n }\r\n else {\r\n _isSelected = selectedItem.option._selected;\r\n }\r\n\r\n if (_isSelected) {\r\n _selectedItem = _selectedCartItem[0];\r\n this.cartTempCollection.push(_selectedItem);\r\n } else if (!_isSelected) {\r\n _selectedCartItemText = this.cartHelper.getSelectedCartText(_selectedValue, _collection);\r\n if (this.cartTempCollection.length > 0) {\r\n _index = this.cartTempCollection.findIndex(element => {\r\n \r\n return element &&((element['value'] === _selectedValue) && (element['text'] === _selectedCartItemText));\r\n \r\n });\r\n\r\n if (_index > -1) {\r\n this.cartTempCollection.splice(_index, 1);\r\n }\r\n }\r\n }\r\n\r\n if (_location === 'left') {\r\n if (this.cartSelectedCollection && this.cartSelectedCollection.length > 0) {\r\n for (let i = 0; i < this.cartSelectedCollection.length; i++) {\r\n this.cartSelectedCollection[i].selected = false;\r\n }\r\n\r\n this._selectArrowModel.isLeftDisabled = false;\r\n this._selectArrowModel.isRightDisabled = true;\r\n\r\n }\r\n _index = this.cartHelper.getCartIndex(_selectedValue, this.cartCollection);\r\n\r\n // Move to right on dbl click\r\n if (_action === 'dblclick') {\r\n this.cartCollection.filter(element => {\r\n element.selected = false;\r\n });\r\n this.cartCollection[_index].selected = true;\r\n } else {\r\n this.cartCollection[_index].selected = !this.cartCollection[_index].selected;\r\n }\r\n } else if (_location === 'right') {\r\n if (this.cartCollection && this.cartCollection.length > 0) {\r\n for (let i = 0; i < this.cartCollection.length; i++) {\r\n this.cartCollection[i].selected = false;\r\n }\r\n this._selectArrowModel.isLeftDisabled = true;\r\n this._selectArrowModel.isRightDisabled = false;\r\n }\r\n _index = this.cartHelper.getCartIndex(_selectedValue, this.cartSelectedCollection);\r\n\r\n // Move to left on dbl click\r\n\r\n if (_action === 'dblclick') {\r\n this.cartSelectedCollection.filter(element => {\r\n element.selected = false;\r\n });\r\n this.cartSelectedCollection[_index].selected = true;\r\n } else {\r\n this.cartSelectedCollection[_index].selected = !this.cartSelectedCollection[_index].selected;\r\n }\r\n }\r\n }\r\n this.handleSelectArrows(_location);\r\n }\r\n\r\n}\r\n\r\nexport class selectArrowModel {\r\n isLeftDisabled: boolean = true\r\n isLeftAllDisabled: boolean = true\r\n isRightDisabled: boolean = true\r\n isRightAllDisabled: boolean = true\r\n}\r\n\r\nexport class CartHelper {\r\n getCartIndex(_value: string, _collection: any[]): number {\r\n let _index = -1;\r\n if (_collection.length > 0) {\r\n _index = _collection.findIndex(element => {\r\n return (element['value'] === _value);\r\n });\r\n }\r\n return _index;\r\n }\r\n\r\n getFilteredCartItems(_collection: any[], _searchValue: string, minLimit?: number, maxLimit?: number, _condition?: string): any[] {\r\n let _outCollection: any[] = [];\r\n if (!minLimit) {\r\n minLimit = 0;\r\n }\r\n if (!maxLimit) {\r\n maxLimit = 100;\r\n }\r\n\r\n if (!_condition) {\r\n _outCollection =\r\n _collection.filter(option =>\r\n option.text.toLowerCase().includes(_searchValue.toString().toLowerCase().trim()))\r\n .slice(minLimit, maxLimit);\r\n } else if (_condition === 'all') {\r\n _outCollection =\r\n _collection.filter(option =>\r\n option.text.toLowerCase().includes(_searchValue.toString().toLowerCase().trim()));\r\n }\r\n return _outCollection;\r\n }\r\n\r\n getMatchingIndex(_collection: any[], _value: string): number {\r\n let _index = -1;\r\n\r\n _index = _collection.findIndex(cartElement => {\r\n return cartElement['value'] === _value;\r\n });\r\n\r\n return _index;\r\n\r\n }\r\n\r\n isRecordAvailable(_value: string, _collection: any[]): boolean {\r\n let _isRecordAvailable = false;\r\n let _index = -1;\r\n if (_collection.length > 0) {\r\n _index = this.getMatchingIndex(_collection, _value);\r\n if (_index > -1) {\r\n _isRecordAvailable = true;\r\n }\r\n }\r\n\r\n return _isRecordAvailable;\r\n }\r\n\r\n getSelectedCartText(_value: string, _originalCollection: any[]): string {\r\n let _selectedCartItemText = '';\r\n let _index = -1;\r\n if (_originalCollection && _originalCollection.length > 0) {\r\n _index = _originalCollection.findIndex(element => {\r\n return (element['value'] === _value);\r\n });\r\n if (_index > -1) {\r\n _selectedCartItemText = _originalCollection[_index]['text'];\r\n }\r\n }\r\n\r\n\r\n return _selectedCartItemText;\r\n }\r\n\r\n removeSelectedItems(_collection: any[], _removingList: any[]): any[] {\r\n let index = -1;\r\n\r\n _removingList.filter(element => {\r\n index = -1;\r\n index = this.getMatchingIndex(_collection, element['value']);\r\n if (index > -1) {\r\n _collection.splice(index, 1);\r\n }\r\n });\r\n return _collection;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Choose Items

\r\n
\r\n
\r\n \r\n 0\" matInput [placeholder]=\"Search\" aria-label=\"Job Cart\"\r\n #strSearchTextInput1 [(ngModel)]='leftSearchValue' autocomplete=\"off\"\r\n (ngModelChange)=\"filterExistingRecords();\" (blur)=\"searchLeftCart()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.text}}\r\n \r\n \r\n \r\n
\r\n         \r\n \r\n \r\n \r\n {{items.text}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Selected Items

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{items.text}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Group Name is required\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { groupBy } from 'lodash';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { IDocumentListInputModel } from 'src/app/ViewModel/DocumentModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-document-cart',\r\n templateUrl: './document-cart.component.html',\r\n styleUrls: ['./document-cart.component.css']\r\n})\r\nexport class DocumentCartComponent implements OnInit {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public docType!: string;\r\n public documents!: any[];\r\n public filteredDocuments: any[] = [];\r\n selectedDocuments: any[] = [];\r\n cartDataSource: any[] = [];\r\n cartSelectedList: any = [];\r\n cartRequest = {};\r\n cartSelectedListCopy!: any[];\r\n createdByList: any[] = [];\r\n createdBy: string = '';\r\n authorizedByList: any[] = [];\r\n authorizedBy: string = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _docService: DocumentService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.docType = 'Repository';\r\n this.getDocumentList();\r\n }\r\n\r\n closeDialog(data: any) {\r\n this.dialogRef.close(data);\r\n }\r\n\r\n tabClick(value: any) {\r\n this.docType = value;\r\n this.documents = [];\r\n this.createdBy = '';\r\n this.authorizedBy = '';\r\n this.getDocumentList();\r\n }\r\n\r\n async getDocumentList() {\r\n if (this.docType === 'Repository') {\r\n let inputModel: IDocumentListInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: 'MyDocuments',\r\n createdFromDays: 0\r\n }\r\n let documents = await this._docService.getDocumentList(inputModel).toPromise();\r\n this.documents = documents.map((x: any) => {\r\n return {\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n authorisedByName: x.authorisedByName,\r\n createdByName: x.createdBy\r\n }\r\n });\r\n }\r\n else {\r\n let documents = await this._scheduleDocService.GetScheduleDocList({ project_Id: this.projectId, group_Id: this.groupId }).toPromise();\r\n this.documents = documents.map((x: any) => {\r\n return {\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorized_By,\r\n createdByName: x.created_By\r\n }\r\n });\r\n }\r\n if (this.data != undefined && this.data.length > 0) {\r\n await this.setSelectedDocumentList();\r\n }\r\n this.filterDocuments();\r\n this.setCartValues();\r\n this.setAutocompleteValues();\r\n }\r\n\r\n async setSelectedDocumentList() {\r\n let alreadyselectedDocuments = this.data;\r\n this.selectedDocuments = alreadyselectedDocuments.map((x: any) => {\r\n let item = this.documents.find(doc => doc.docId == x.docId && doc.revision == x.revision);\r\n if (item != undefined) {\r\n return item;\r\n }\r\n });\r\n this.changeKeyFormat(this.documents, alreadyselectedDocuments);\r\n }\r\n\r\n changeKeyFormat(inputArr: any, alreadySelectedMembers: []) {\r\n let grpdSelectedMembers = groupBy(alreadySelectedMembers, 'docId');\r\n let outputArr: any = [];\r\n inputArr.forEach((eachObj: any) => {\r\n if (!(grpdSelectedMembers && grpdSelectedMembers[eachObj['docId']] && grpdSelectedMembers[eachObj['docId']].length)) {\r\n outputArr.push(eachObj);\r\n }\r\n });\r\n return outputArr;\r\n }\r\n\r\n setAutocompleteValues() {\r\n if (this.documents.length != 0) {\r\n let result = this.documents.map(x => x.createdByName);\r\n let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n this.createdByList = filteredResult.map(x => {\r\n return { value: x, description: x }\r\n });\r\n let result2 = this.documents.map(x => x.authorisedByName);\r\n let filteredResult2 = result2.filter((n, i) => result2.indexOf(n) === i);\r\n this.authorizedByList = filteredResult2.map(x => {\r\n return { value: x, description: x }\r\n });\r\n }\r\n else {\r\n this.createdByList = [];\r\n this.authorizedByList = [];\r\n }\r\n }\r\n\r\n changeCreatedBy(event: any) {\r\n this.createdBy = event.value != -2 ? event.value : '';\r\n this.filterDocuments();\r\n }\r\n\r\n changeAuthorizedBy(event: any) {\r\n this.authorizedBy = event.value != -2 ? event.value : '';\r\n this.filterDocuments();\r\n }\r\n\r\n filterDocuments() {\r\n if (this.createdBy != '') {\r\n if (this.authorizedBy != '') {\r\n this.filteredDocuments = this.documents.filter(x => x.authorisedByName == this.authorizedBy && x.createdByName == this.createdBy);\r\n }\r\n else {\r\n this.filteredDocuments = this.documents.filter(x => x.createdByName == this.createdBy);\r\n }\r\n }\r\n else if (this.authorizedBy != '') {\r\n if (this.createdBy != '') {\r\n this.filteredDocuments = this.documents.filter(x => x.createdByName == this.createdBy && x.authorisedByName == this.authorizedBy);\r\n }\r\n else {\r\n this.filteredDocuments = this.documents.filter(x => x.authorisedByName == this.authorizedBy);\r\n }\r\n }\r\n else {\r\n this.filteredDocuments = this.documents;\r\n }\r\n this.setCartValues();\r\n }\r\n\r\n setCartValues() {\r\n this.cartDataSource = this.removeDuplicates(this.filteredDocuments, this.selectedDocuments, 'docId');\r\n this.cartSelectedList = [];\r\n this.cartSelectedListCopy = [];\r\n this.selectedDocuments.forEach(eachDoc => {\r\n let cartValue: any = this.getAsCartSelectedValue(eachDoc.documentNo, eachDoc.title);\r\n this.cartSelectedList.push(cartValue);\r\n this.cartSelectedListCopy.push(cartValue);\r\n });\r\n this.setCartParams();\r\n }\r\n\r\n removeDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n let filteredArray: any = [],\r\n grpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n dataSource.forEach((eachData: any) => {\r\n if (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n filteredArray.push(eachData);\r\n }\r\n });\r\n return filteredArray;\r\n }\r\n\r\n getAsCartSelectedValue(value: string | number, text: string) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text\r\n };\r\n return output;\r\n }\r\n\r\n setCartParams() {\r\n this.cartRequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartSelectedList,\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'title',\r\n 'valueField': 'documentNo',\r\n 'cartLabel': 'Choose Items',\r\n 'minimumSelectedItemCount': 0\r\n },\r\n 'dataSource': this.cartDataSource,\r\n }\r\n }\r\n\r\n getSelectedCartItems(event: any[]) {\r\n this.closeDialog(event);\r\n }\r\n}\r\n","
\r\n
\r\n Document Cart\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Document Type\r\n \r\n Repository\r\n Workflow\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { result } from 'lodash';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SearchDialogComponent } from '../search-dialog/search-dialog.component';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { IMessageSearchInputModel, IMessageSearchModel, IMsgListInputModel } from 'src/app/ViewModel/CommunicationModel';\r\n@Component({\r\n selector: 'app-mail-advance-search',\r\n templateUrl: './mail-advance-search.component.html',\r\n styleUrls: ['./mail-advance-search.component.css']\r\n})\r\nexport class MailAdvanceSearchComponent implements OnInit {\r\n\r\n @Output() advancedSearchStatus: EventEmitter = new EventEmitter();\r\n @Input() searchList: any[] = [];\r\n @Input() tranType:string;\r\n\r\n projectId: number = 0;\r\n groupId: number = 0;\r\n memberId: number = 0;\r\n IsShowPopup = false;\r\n public inputsearchList!: any[];\r\n public searchTypeList!: any[];\r\n public projectElements!: any[];\r\n public searchGroupList!: any[];\r\n public searchMailTypeList: any[] = [];\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n public popupAlignCenter: Align = { horizontal: 'center', vertical: 'top' };\r\n public anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n public popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n public anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n public popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public margin = { horizontal: -15, vertical: 10 };\r\n public savedSearchList: IMessageSearchModel[] = [];\r\n public data: any[]=[];\r\n public hasSavedSearch: boolean = false;\r\n public selectedSearchId: number = 0;\r\n public selectedSearchName!: string | null;\r\n public selectedTypeIndex: number = -1;\r\n public selectedTypeValue!: string;\r\n public clearType: string = '';\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlSearchText: new FormControl(),\r\n ctrlType: new FormControl()\r\n });\r\n constructor(\r\n private dialog: MatDialog,\r\n private projService: ProjectInfoService,\r\n private communicationService: CommunicationService,\r\n private commonService: CommonService,\r\n private notificationService: NotificationService,\r\n public elementLinkService: ElementLinkService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getSearchTypes();\r\n this.getSavedSearchList();\r\n this.hasSavedSearch = this.savedSearchList.length > 0;\r\n }\r\n\r\n getSearchTypes() {\r\n this.searchTypeList = [];\r\n this.searchTypeList.push(\r\n { value: 0, description: 'Message Number' },\r\n { value: 1, description: 'Message Subject' }\r\n );\r\n this.projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: 1, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.projectElements.forEach(element => {\r\n if (element.elementDescription != 'Project Code') {\r\n this.searchTypeList.push({ value: element.elementId, description: element.elementDescription });\r\n }\r\n });\r\n return result;\r\n });\r\n }\r\n\r\n // public getMailTypeList() {\r\n // let result = this.searchList.map(x => x.messageType);\r\n // let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n // filteredResult.forEach(x => {\r\n // this.searchMailTypeList.push({ value: x, description: x });\r\n // })\r\n // }\r\n\r\n closeAdvanceSearch(event: any) {\r\n this.advancedSearchStatus.emit(this.searchList);\r\n }\r\n public closePopup() {\r\n this.IsShowPopup = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n public showInfo(event: any) {\r\n if (this.hasSavedSearch) {\r\n this.IsShowPopup = !this.IsShowPopup;\r\n this.anchorElementPopup = event.target;\r\n }\r\n }\r\n public async searchData() {\r\n let searchText:string = this.searchForm.controls['ctrlSearchText'].value;\r\n let type = this.searchForm.controls['ctrlType'].value;\r\n this.inputsearchList = this.searchList;\r\n if (searchText != null) {\r\n if (type != null) {\r\n // if(this.inputsearchList == undefined || this.inputsearchList?.length<=0)\r\n // {\r\n let reqData: IMsgListInputModel = {\r\n transType: this.tranType,\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n messageNoSearchText: type=='Message Number' ? searchText.trim():null,\r\n messageSubjectSearchText: type!='Message Number' ? searchText.trim():null\r\n };\r\n this.inputsearchList = await this.communicationService.GetMessageList(reqData).toPromise()\r\n // }\r\n // else\r\n // {\r\n // if (type == 'Message Subject') {\r\n // this.inputsearchList = this.inputsearchList.filter(x => x.messageSubject?.toLowerCase().includes(searchText?.toLowerCase()));\r\n // }\r\n // else if (type == 'Message Number') {\r\n // this.inputsearchList = this.inputsearchList.filter(x => x.messageNumber?.toLowerCase().includes(searchText?.toLowerCase()));\r\n // }\r\n //}\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please Select Type\", \"Warning\");\r\n return 0;\r\n }\r\n }\r\n this.advancedSearchStatus.emit(this.inputsearchList);\r\n // this.IsShowPopup = !this.IsShowPopup;\r\n // this.anchorElementPopup = event.target;\r\n }\r\n\r\n public clearSearch() {\r\n this.selectedSearchId = 0;\r\n this.selectedSearchName = null;\r\n this.inputsearchList = this.searchList;\r\n this.searchForm.reset();\r\n this.clearType = 'Y';\r\n }\r\n\r\n getSavedSearchList() {\r\n this.data = [];\r\n this.communicationService.getMessageSearchList(this.projectId, this.memberId).subscribe((data: any[]) => {\r\n this.data = data.map(x => {\r\n let result: IMessageSearchModel = {\r\n searchId: x.searchId,\r\n searchName: x.searchName,\r\n messageNo: x.messageNo,\r\n messageSubject: x.messageSubject,\r\n searchText: x.searchText\r\n };\r\n return result;\r\n });\r\n this.savedSearchList = this.data;\r\n this.hasSavedSearch = this.savedSearchList.length > 0;\r\n return result;\r\n });\r\n }\r\n\r\n insertSavedSearch() {\r\n if (this.selectedSearchName != null) {\r\n this.saveSearch(this.selectedSearchName);\r\n }\r\n else {\r\n let searchText = this.searchForm.controls['ctrlSearchText'].value;\r\n let type = this.searchForm.controls['ctrlType'].value;\r\n if (!!searchText && searchText != '' && !!type) {\r\n const dialogRef = this.dialog.open(SearchDialogComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '35%',\r\n disableClose:true,\r\n data: { headerText: 'Save Search Filter As', inputLabel: 'Name' }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res != '') {\r\n this.saveSearch(res);\r\n }\r\n else {\r\n this.notificationService.showToast(\"Search was not saved\", \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please give valid input\", \"Warning\");\r\n }\r\n\r\n }\r\n }\r\n\r\n saveSearch(searchName: string) {\r\n\r\n let searchText = this.searchForm.controls['ctrlSearchText'].value;\r\n let type = this.searchForm.controls['ctrlType'].value;\r\n let inputModel: IMessageSearchInputModel = {\r\n projectId: this.projectId,\r\n memberId: this.memberId,\r\n searchId: this.selectedSearchId,\r\n searchName: searchName,\r\n messageNo: type == 'Message Number' ? searchText : null,\r\n messageSubject: type == 'Message Subject' ? searchText : null,\r\n searchText: searchText\r\n };\r\n this.communicationService.insertMessageSearch(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.searchData();\r\n }\r\n else if (res.successCode == 500) {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.getSavedSearchList();\r\n this.hasSavedSearch = this.savedSearchList.length > 0;\r\n }\r\n editSavedSearch(data: any) {\r\n this.selectedSearchId = data.searchId;\r\n this.selectedSearchName = data.searchName;\r\n this.searchForm.controls['ctrlSearchText'].setValue(data.searchText);\r\n if (data.messageNo != null) {\r\n this.searchForm.controls['ctrlType'].setValue('Message Number');\r\n }\r\n if (data.messageSubject != null) {\r\n this.searchForm.controls['ctrlType'].setValue('Message Subject');\r\n }\r\n }\r\n removeSavedSearch(searchId: number) {\r\n this.data = [];\r\n this.notificationService.showPopup('Are you sure you want to delete the selected Filter Option', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.communicationService.removeMessageSearch(this.projectId, this.memberId, searchId).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(\"Filter option Deleted Successfully\", \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n this.getSavedSearchList();\r\n this.selectedSearchId = 0;\r\n this.selectedSearchName = null;\r\n this.hasSavedSearch = this.savedSearchList.length > 0;\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Free Search\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{search.searchName}}\r\n \r\n

\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ISignatureOutputModel, IMsgReceiverInputModel, IMessageInputModel, IMsgDocumentInputModel, IMsgAttachmentInputModel, IMsgElementInputModel, IMessageGroupListModel, MessageReceiverOutputModel, IMsgAttachmentsModel, IMsgDocumentAttachmentModel, IMessageAttachmentModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { SignatureComponent } from '../signature/signature.component';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { formatDate } from '@angular/common';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { AttachmentDialogComponent } from '../attachment-dialog/attachment-dialog.component';\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { IReceiverDetails, ITransmittalMemberModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\n//import { Observable, of, Subject } from 'rxjs';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { DocumentMessageViewComponent } from 'src/app/CommonComponents/document-message-grid/document-message-view/document-message-view.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { MatChipList } from '@angular/material/chips';\r\nimport { IMemebersViewModel } from 'src/app/ViewModel/MembersModel';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-mail-edit',\r\n templateUrl: './mail-edit.component.html',\r\n styleUrls: ['./mail-edit.component.css']\r\n})\r\nexport class MailEditComponent implements OnInit {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number\r\n public messageFormat!: string;\r\n public responseRequired!: string;\r\n messageId: number = -1;\r\n message: any;\r\n panelOpenState = true;\r\n public mailType: string = '';\r\n public mailTypeList: IProjectElementDetailsOutput[] = [];\r\n attachments: any[] = [];\r\n documents: any[] = [];\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n receivedDoc: any[] = [];\r\n public messageElements: any;\r\n mailContent: string = '';\r\n registermailContent: string = '';\r\n mailSubject: string = '';\r\n IsShowAttachmentList = false;\r\n /*Signature*/\r\n IsShowPopup = false;\r\n public readonly = true;\r\n public IsDisabled!: boolean;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n private popupAlignCenter: Align = { horizontal: 'center', vertical: 'top' };\r\n private anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n private popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n private anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n private popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public margin = { horizontal: -15, vertical: 10 };\r\n public signatureList: ISignatureOutputModel[] = [];\r\n public isRevisedDateInvalid!: boolean;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RespondOn: string = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public sentdatevalue = new Date(this.getDateFormat());\r\n public SentOn: string = formatDate(this.sentdatevalue, 'dd-MM-yyyy', 'en-US');\r\n public isSentDateInvalid!: boolean;\r\n public mailFromList: any[] = [];\r\n public membersList: IMemebersViewModel[] | undefined;\r\n public messageNumber!: string;\r\n mailFrom: string = '';\r\n public fromList: any[] = [];\r\n mailTo: string = '';\r\n public toList: any[] = [];\r\n mailCC: string = '';\r\n public ccList: any[] = [];\r\n mailBCC: string = '';\r\n public bccList: any[] = [];\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n masterMemberIds!: number[];\r\n @ViewChild('ccInput')\r\n ccInput!: ElementRef;\r\n @ViewChild('ccauto')\r\n matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList')\r\n ccChipList!: MatChipList;\r\n @ViewChild('bccInput')\r\n bccInput!: ElementRef;\r\n @ViewChild('bccauto')\r\n matbccAutoComplete!: MatAutocomplete;\r\n @ViewChild('bccChipList')\r\n bccChipList!: MatChipList;\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n ccfilter$!: Observable;\r\n ccFilteredMembers!: Observable;\r\n bccMembers: ITransmittalMemberModel[] = [];\r\n bccfilter$!: Observable;\r\n bccFilteredMembers!: Observable;\r\n private _nextPage$ = new Subject();\r\n private _destroyed$ = new Subject();\r\n selectedTo!: number;\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n multiple = false;\r\n attachmentsList: IMsgDocumentAttachmentModel[] = [];\r\n public messageForm: FormGroup = new FormGroup({\r\n txtMsgSerialNo: new FormControl(),\r\n txtSerialNo: new FormControl(),\r\n lblIsConfidential: new FormControl(true),\r\n autoMailType: new FormControl(),\r\n ddlMailType: new FormControl(),\r\n autoMailFrom: new FormControl(),\r\n ddlMailFrom: new FormControl()\r\n });\r\n public messageContentForm: FormGroup = new FormGroup({\r\n txtMailSubject: new FormControl(),\r\n editor: new FormControl()\r\n });\r\n public messageGroupForm!: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n private _projService: ProjectInfoService,\r\n public memberService: ExternalMemberService,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private notificationService: NotificationService,\r\n private formBuilder: FormBuilder,\r\n private transmittalService: TransmittalService,\r\n private _fileService: FileService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.messageId = this.data.messageId;\r\n this.messageFormat = 'Mail';\r\n this.responseRequired = 'No';\r\n this.createCommunicationForm();\r\n this.transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.masterMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo\r\n };\r\n return transmittalMember;\r\n });\r\n this.masterMemberIds = this.masterMembers.map(x => x.memberId);\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.bccfilter$ = this.createSerachFilter('bccMembersCtrl');\r\n this.filterMembers();\r\n });\r\n this.getSignatureList();\r\n this.getMailTypelist();\r\n this.getMailFromList();\r\n this.getMembers();\r\n this.getMessage();\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n let commFileInput = {\r\n projectId: this.projectId,\r\n messageId: this.messageId,\r\n }\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.Communication, value: JSON.stringify(commFileInput) })\r\n .subscribe((res: any[]) => {\r\n res.forEach((value, index) => {\r\n this.attachmentsList.push({ fileId: value.fileId, fileName: value.fileName, fileExtension: value.fileExtension, fileSize: value.fileSize });\r\n })\r\n });\r\n\r\n }\r\n\r\n createCommunicationForm() {\r\n this.messageGroupForm = this.formBuilder.group({\r\n ccMembersCtrl: new FormControl(),\r\n bccMembersCtrl: new FormControl(),\r\n ccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n bccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n txtNoOfDays: new FormControl(),\r\n toMember: new FormControl('', Validators.required),\r\n formToMember: new FormControl('', Validators.required)\r\n });\r\n }\r\n validateMemberSelection(abstractControl: AbstractControl): any {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (!!selectedValue) {\r\n selectedValue = selectedValue.map(x => x.memberId);\r\n }\r\n if (selectedValue && !selectedValue.every(member => this.masterMemberIds.includes(member))) {\r\n return { IsError: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n async getMessage() {\r\n let data = await this.communicationService.getMessageDetails(this.messageId).toPromise();\r\n this.message = data[0];\r\n let msgNoArray = this.message.messageNumber.split('-');\r\n let mySerialNo = msgNoArray[msgNoArray.length - 1];\r\n let msgNo = msgNoArray.filter((val: any) => val != mySerialNo).join('-')\r\n this.messageForm.get('txtMsgSerialNo')?.setValue(msgNo);\r\n this.messageForm.get('txtSerialNo')?.setValue(String(+mySerialNo).padStart(5, '0'));\r\n this.messageContentForm.get('txtMailSubject')?.setValue(this.message.messageSubject);\r\n this.messageContentForm.controls['editor'].setValue(this.message.messageBody);\r\n this.mailType = this.message.messageTypeDesc;\r\n this.messageForm.get('autoMailType')?.setValue(this.mailType);\r\n this.messageForm.get('ddlMailType')?.setValue(this.message.messageType);\r\n this.getMessageDetails(this.messageId);\r\n this.messageNumber = this.message.messageNumber;\r\n }\r\n async getMessageDetails(messageId: number) {\r\n if (messageId > 0) {\r\n this.documentList = await this.communicationService.getMessageDocumentsList(messageId).toPromise();\r\n this.messageList = await this.communicationService.getMessageAttachmentsList(messageId).toPromise();\r\n this.messageElements = await this.communicationService.getMessageElementsById(messageId).toPromise();\r\n this.setMessageResponder();\r\n }\r\n }\r\n\r\n async setMessageResponder() {\r\n let receivers: MessageReceiverOutputModel[] = await this.communicationService.GetMessageReceiverList(this.messageId).toPromise();\r\n this.toList = receivers.filter(x => x.receiverType == 2).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.mailTo = this.toList.map(x => x.title).toString();\r\n this.selectedTo = +this.toList.map(x => x.value).toString();\r\n this.messageGroupForm.controls['formToMember'].setValue(this.mailTo);\r\n this.ccList = receivers.filter(x => x.receiverType == 3).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n\r\n this.ccMembers = this.getTransmittalMembers(this.ccList);\r\n if (this.ccMembers != null) {\r\n this.ccFormMembers?.setValue([...this.ccMembers]);\r\n }\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n this.bccList = receivers.filter(x => x.receiverType == 5).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.bccMembers = this.getTransmittalMembers(this.bccList);\r\n if (this.bccMembers != null) {\r\n this.bccFormMembers?.setValue([...this.bccMembers]);\r\n }\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n\r\n private getTransmittalMembers(members: any[]): ITransmittalMemberModel[] {\r\n return members.filter(o => this.masterMembers.some(({ memberId }) => o.member_Id === memberId)).map(x => {\r\n let member: ITransmittalMemberModel = {\r\n memberId: x.value,\r\n memberName: x.title,\r\n memberShortName: this.masterMembers.filter(y => y.memberId == x.value)[0].memberShortName,\r\n eMailId: this.masterMembers.filter(y => y.memberId == x.value)[0].eMailId,\r\n staffPSNo: this.masterMembers.filter(y => y.memberId == x.value)[0].staffPSNo,\r\n mobileNo: this.masterMembers.filter(y => y.memberId == x.value)[0].mobileNo,\r\n groupBy: x.receiverGroup\r\n };\r\n return member;\r\n });\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onMessageFormatChange(value: string) {\r\n this.messageFormat = value;\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n this.getRegisterContent();\r\n }\r\n }\r\n onResponseRequiredChange(value: string) {\r\n this.responseRequired = value;\r\n }\r\n\r\n getRegisterContent() {\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n var futureDate = formatDate(new Date(), 'dd-MM-yyyy', 'en-US');;\r\n this.registermailContent = '






This mail is registered by ';\r\n this.registermailContent += this.commonService.getLoggedInUserName();\r\n this.registermailContent += ' on ';\r\n this.registermailContent += futureDate;\r\n this.messageContentForm.controls['editor'].setValue(this.registermailContent);\r\n }\r\n }\r\n\r\n public getMailTypelist() {\r\n this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Communication, deDescription: 'Mail Type' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.mailTypeList = res;\r\n }, (err: any) => { });\r\n }\r\n\r\n async getMembers() {\r\n this.membersList = await this.memberService.GetMembersList({ group_Id: this.groupId, member_Id: null }).toPromise();\r\n }\r\n\r\n public async getMailFromList() {\r\n this.mailFromList = await this.projectMemberLinkService.getSelectedMemberList(this.projectId, this.groupId).toPromise();\r\n }\r\n\r\n setMessageValues(event: { text: string; value: any; }, formControlName: string) {\r\n if (formControlName == 'ddlMailType') {\r\n this.mailType = event.text;\r\n }\r\n this.messageForm.get(formControlName)?.setValue(event.value);\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n openSignaturePopup() {\r\n this.IsShowPopup = false;\r\n const dialogRef = this.dialog.open(SignatureComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw'\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.getSignatureList();\r\n if (res != undefined) {\r\n this.mailContent = this.getFormValue('editor', this.messageContentForm) + res;\r\n }\r\n });\r\n }\r\n selectSignature(sign: { signatureText: any; }) {\r\n this.mailContent = this.getFormValue('editor', this.messageContentForm) + sign.signatureText;\r\n }\r\n public showSignList(event: any) {\r\n if (this.signatureList.length > 0) {\r\n this.IsShowPopup = !this.IsShowPopup;\r\n this.anchorElementPopup = event.target;\r\n }\r\n }\r\n public closeSignList() {\r\n this.IsShowPopup = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n public getSignatureList() {\r\n this.communicationService.GetSignatureList({ MemberId: this.memberId })\r\n .subscribe((res: ISignatureOutputModel[]) => {\r\n this.signatureList = res;\r\n }, (err: any) => { });\r\n }\r\n public showAttachmentList(event: any) {\r\n this.IsShowAttachmentList = !this.IsShowAttachmentList;\r\n this.anchorElementPopup = event.target;\r\n\r\n }\r\n public closeAttachmentList() {\r\n this.IsShowAttachmentList = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n attachFile(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, docId: data.messageId, revisionNo: data.revision, moduleName: 'EDMS', libraryName: 'Documents', createdBy: this.memberId, documents: [{ value: data.messageId, text: this.message.messageNumber, revisionNo: data.revision }], isEditable: false },\r\n });\r\n }\r\n showDocumentCart() {\r\n let obj: any = {}\r\n obj[\"type\"] = \"Select Document\";\r\n if (this.documentList.length > 0) {\r\n obj[\"data\"] = this.documentList;\r\n }\r\n this.IsShowAttachmentList = false;\r\n const dialogRef = this.dialog.open(DocumentMessageViewComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.receivedDoc = res.filter((data: { isSelected: boolean; }) => data.isSelected == true);\r\n Array.prototype.push.apply(this.documentList, this.receivedDoc);\r\n }\r\n else {\r\n if (this.documentList.length < 0) {\r\n this.documentList = [];\r\n }\r\n }\r\n });\r\n }\r\n removeDocument(dataItem: { docId: any; }) {\r\n this.documentList.forEach((value, index) => {\r\n if (value.docId == dataItem.docId) {\r\n this.documentList.splice(index, 1);\r\n }\r\n });\r\n }\r\n showMessageCart() {\r\n let obj: any = {}\r\n obj[\"type\"] = \"Select Message\";\r\n if (this.messageList.length > 0) {\r\n obj[\"data\"] = this.messageList;\r\n }\r\n this.IsShowAttachmentList = false;\r\n const dialogRef = this.dialog.open(DocumentMessageViewComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.receivedDoc = res.filter((data: { isSelected: boolean; }) => data.isSelected == true);\r\n Array.prototype.push.apply(this.messageList, this.receivedDoc);\r\n }\r\n else {\r\n if (this.messageList.length < 0) {\r\n this.messageList = [];\r\n }\r\n }\r\n });\r\n }\r\n removeMessage(dataItem: { messageId: any; }) {\r\n this.messageList.forEach((value, index) => {\r\n if (value.messageId == dataItem.messageId) {\r\n this.messageList.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n\r\n deleteFile(rowIndex: number, dataItem: IMsgDocumentAttachmentModel) {\r\n if (!!dataItem && dataItem.fileId > 0) {\r\n this._fileService.DeleteFile({ libraryNumber: FileUploadLibrary.Communication, fileId: dataItem.fileId, fileName: dataItem.fileName + '.' + dataItem.fileExtension }).subscribe((data: any) => {\r\n if (data[\"successCode\"] === 200) {\r\n this.notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n this.attachmentsList.splice(rowIndex, 1);\r\n }\r\n else {\r\n this.notificationService.showToast(data[\"successMessage\"], \"Warning\");\r\n }\r\n });\r\n } else {\r\n this.attachmentsList.splice(rowIndex, 1);\r\n }\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n getValue(selectedText: { value: string | null; }) {\r\n this.isRevisedDateInvalid = selectedText.value == null;\r\n if (selectedText.value)\r\n this.RespondOn = selectedText.value;\r\n }\r\n getSentOnValue(selectedText: { value: string | null; }) {\r\n this.isSentDateInvalid = selectedText.value == null;\r\n if (selectedText.value)\r\n this.SentOn = selectedText.value;\r\n }\r\n addDays(): any {\r\n let value = this.getFormValue('txtNoOfDays', this.messageGroupForm);\r\n if (!isNaN(value)) {\r\n var futureDate = new Date();\r\n futureDate.setDate(futureDate.getDate() + value);\r\n this.RespondOn = formatDate(futureDate, 'dd-MM-yyyy', 'en-US');;\r\n this.datevalue = futureDate;\r\n return futureDate;\r\n }\r\n else {\r\n this.notificationService.showToast(\"Enter Valid Number\", \"Warning\");\r\n return\r\n }\r\n }\r\n\r\n /**\r\n * Save Message Input\r\n */\r\n getMessageInput() {\r\n if (this.messageForm.valid) {\r\n let docAttachments = this.documents.map(x => {\r\n let result: IMsgDocumentInputModel = {\r\n memberId: this.memberId,\r\n messageId: this.messageId,\r\n docId: x.docId,\r\n revisionNo: x.revision,\r\n response: 0,\r\n responseRemarks: null,\r\n isActive: true\r\n }\r\n return result;\r\n });\r\n let msgAttachments = this.attachments.map(x => {\r\n let result: IMsgAttachmentInputModel = {\r\n memberId: this.memberId,\r\n messageId: this.messageId,\r\n attachedMessageId: x.messageId,\r\n isActive: true\r\n }\r\n return result;\r\n });\r\n let msgReceivers = this.setMessageReceivers();\r\n let disciplineId = 0;\r\n let discipline = this.messageElements.find((x: { deDescription: string; }) => x.deDescription == 'Discipline');\r\n if (discipline != undefined) {\r\n disciplineId = discipline.dedId;\r\n }\r\n let category = this.mailType == \"Request For Information\" ? 5 : 2;\r\n category = this.mailType == \"Non Conformity Report\" ? 7 : 2;\r\n let elementInput: IMsgElementInputModel[] = [];\r\n let inputModel: IMessageInputModel = {\r\n CanSendMail: false,\r\n MessageNo: this.message.messageNumber,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n MemberId: this.memberId,\r\n MessageId: this.messageId,\r\n MsgSerialNo: this.getFormValue('txtSerialNo', this.messageForm),\r\n DisciplineId: disciplineId,\r\n ParentMessageId: this.message.parentMessageId,\r\n MessageType: this.getFormValue('ddlMailType', this.messageForm),\r\n HasAttachments: this.documentList.length > 0 || this.messageList.length > 0,\r\n IsConfidential: this.getFormValue('lblIsConfidential', this.messageForm),\r\n MessageCategory: category,\r\n MessageSubject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n MessageBody: this.mailContent != '' ? this.mailContent : this.getFormValue('editor', this.messageContentForm),\r\n ResponseType: this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n RespondOn: this.responseRequired == 'No' ? null : this.RespondOn,\r\n IssueReason: 10,\r\n SentOn: (this.messageFormat != 'Register Incoming Message') ? null : this.SentOn,\r\n elementDetails: elementInput,\r\n documentAttachments: this.documentList.length > 0 ? docAttachments : [],\r\n messageAttachments: this.messageList.length > 0 ? msgAttachments : [],\r\n messageReceivers: msgReceivers\r\n };\r\n return inputModel;\r\n }\r\n return null;\r\n }\r\n\r\n saveMessage() {\r\n let inputModel = this.getMessageInput();\r\n if (inputModel != null) {\r\n this.communicationService.InsertMessage(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n if (inputModel && inputModel.MessageId)\r\n this.updateAttachmentsMessgeId(inputModel.MessageId);\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n async sendMessage() {\r\n let inputModel = this.getMessageInput();\r\n if (inputModel != null && this.toList.length > 0 && this.messageContentForm.valid) {\r\n let category = this.mailType == \"Request For Information\" ? 4 : 1;\r\n category = this.mailType == \"Non Conformity Report\" ? 6 : 1;\r\n inputModel.CanSendMail = true;\r\n inputModel.MessageCategory = category;\r\n inputModel.SentOn = this.SentOn;\r\n this.communicationService.InsertMessage(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n if (inputModel && inputModel.MessageId)\r\n this.updateAttachmentsMessgeId(inputModel.MessageId);\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n setMessageReceivers() {\r\n let receivers: IMsgReceiverInputModel[] = [];\r\n if (this.mailType != \"Request For Information\" && this.messageFormat != 'Register Incoming Message') {\r\n receivers.push({\r\n memberId: this.memberId,\r\n messageId: 0,\r\n receiverType: 1,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n } else {\r\n receivers.push({\r\n memberId: this.getFormValue('ddlMailFrom', this.messageForm),\r\n messageId: 0,\r\n receiverType: 1,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n }\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n receivers.push({\r\n memberId: this.memberId,\r\n messageId: 0,\r\n receiverType: 4,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n }\r\n this.toList.forEach(x => {\r\n receivers.push({\r\n memberId: x.value,\r\n messageId: 0,\r\n receiverType: 2,\r\n receiverGroup: x.groupId,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n this.ccList.forEach(x => {\r\n receivers.push({\r\n memberId: x.value,\r\n messageId: 0,\r\n receiverType: 3,\r\n receiverGroup: x.groupId,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n this.bccMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 5,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n return receivers;\r\n }\r\n\r\n viewMail(messageId: number) {\r\n let viewData: any[] = [{\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n messageId: messageId,\r\n }];\r\n const dialogRef = this.dialog.open(AttachmentDialogComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw',\r\n data: { isDocumentView: false, viewData: viewData }\r\n });\r\n }\r\n\r\n viewDoc(doc: any) {\r\n let viewData: any[] = [{\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n docId: doc.docId,\r\n revisionNo: doc.revision\r\n }];\r\n const dialogRef = this.dialog.open(AttachmentDialogComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw',\r\n data: { isDocumentView: true, viewData: viewData }\r\n });\r\n\r\n }\r\n\r\n\r\n private createSerachFilter(formControlName: string): Observable {\r\n // Note: listen for search text changes\r\n let x: any = this.messageGroupForm\r\n if (this.messageGroupForm)\r\n return x.get(formControlName).valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\"));\r\n else\r\n return new Observable();\r\n }\r\n private filterMembers(): void {\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n this.bccFilteredMembers = this.getFilteredMembers(this.bccfilter$);\r\n }\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n scan((allMembers, newMembers: any) => allMembers.concat(newMembers), []),\r\n );\r\n })\r\n );\r\n }\r\n // Fake backend api\r\n //Observable\r\n private getMembersFake(startsWith: string, page: number): any {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter((option: any) => option.memberName.toLowerCase().includes(startsWith.toLowerCase()));\r\n // return of(filtered.slice(skip, skip + take));\r\n return (filtered.slice(skip, skip + take));\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"message\":\r\n this.messageGroupForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n }\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n case 'bcc':\r\n this.togglebccSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'bcc':\r\n result = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n resetCcMemberFilter() {\r\n this.messageGroupForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.ccMembers.splice(index, 1);\r\n if (this.ccFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n togglebccSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.bccMembers.splice(index, 1);\r\n this.bccFormMembers?.value.splice(index, 1);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.bccMembers.push(member);\r\n this.bccFormMembers?.value.push(member);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n resetbccMemberFilter() {\r\n this.messageGroupForm.get('bccMembersCtrl')?.setValue('');\r\n this.bccInput.nativeElement.value = '';\r\n this.bccInput.nativeElement.blur();\r\n }\r\n\r\n removebcc(member: ITransmittalMemberModel): void {\r\n const index = this.bccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.bccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.bccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n // use getter method to access toMembers control value easily\r\n get toMember(): ITransmittalMemberModel {\r\n return this.messageGroupForm.get('toMember')?.value;\r\n }\r\n get ccFormMembers() {\r\n return this.messageGroupForm.get('ccMembers');\r\n }\r\n get bccFormMembers() {\r\n return this.messageGroupForm.get('bccMembers');\r\n }\r\n\r\n reSet() {\r\n this.messageNumber = \"\";\r\n this.messageForm.reset();\r\n this.messageGroupForm.reset();\r\n this.messageContentForm.reset();\r\n this.messageId = 0;\r\n this.fromList = [];\r\n this.toList = [];\r\n this.ccList = [];\r\n this.bccList = [];\r\n this.datevalue = new Date(this.getDateFormat());\r\n this.RespondOn = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n this.responseRequired = 'No';\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getSignatureList();\r\n this.getMailTypelist();\r\n this.ccMembers = [];\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.ccFormMembers?.setValue([]);\r\n this.bccMembers = [];\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.bccFormMembers?.setValue([]);\r\n this.resetCcMemberFilter();\r\n this.resetbccMemberFilter();\r\n }\r\n\r\n updateAttachmentsMessgeId(messageId: number) {\r\n if (this.attachmentsList.length > 0) {\r\n let attachedDoc: IMsgAttachmentsModel = { projectId: this.projectId, msgId: messageId, createdBy: this.memberId, messageDocuments: this.attachmentsList }\r\n this.communicationService.updateCommunicationDocsMsgId(attachedDoc).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n clickLocalAttachment() {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, msgId: -1, libraryName: FileUploadLibrary.Communication, createdBy: this.memberId, documentNo: this.message.messageNumber, isEditable: false },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

Edit Mail

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Mail\r\n Register Incoming Message\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Message Number | {{messageNumber}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n Document

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

Message

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

{{element.deDescription}}

\r\n

\r\n {{element.dedDescription}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Message Serial No\r\n \r\n \r\n
\r\n \r\n \r\n Serial No\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Mail Type is required\r\n \r\n
\r\n \r\n \r\n Confidential\r\n \r\n \r\n  \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Sent On is required\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n To is required\r\n \r\n
\r\n \r\n
\r\n

Response Required

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n \r\n \r\n \r\n No Of Days\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Response Date is required\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Bcc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\" (click)=\"showSignList($event)\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{index+1}}{{sign.signatureName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Documents

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Messages

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Files

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName + '.'+ dataItem.fileExtension}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IMsgHistoryInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-mail-history-log',\r\n templateUrl: './mail-history-log.component.html',\r\n styleUrls: ['./mail-history-log.component.css']\r\n})\r\nexport class MailHistoryLogComponent implements OnInit {\r\n projectId: number = 0;\r\n groupId: number = 0;\r\n memberId: number = 0;\r\n public historyList: any[] = [];\r\n\r\n constructor(\r\n private communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.initGrid(this.data.messageId);\r\n }\r\n\r\n public async initGrid(msgId: number) {\r\n let inputModel: IMsgHistoryInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n messageId: msgId,\r\n memberId: this.memberId,\r\n roleId: 2\r\n };\r\n this.historyList = await this.communicationService.getMessageHistoryDetails(inputModel).toPromise();\r\n }\r\n public togglePopupDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Message History\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n {{dataItem.to}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.respondOn|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.responseDate |date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { IMessageStatusLogModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-mail-status-log',\r\n templateUrl: './mail-status-log.component.html',\r\n styleUrls: ['./mail-status-log.component.css']\r\n})\r\nexport class MailStatusLogComponent implements OnInit {\r\n public statusList: IMessageStatusLogModel[] = [];\r\n public messageNo:string='';\r\n public messageSubject:string='';\r\n\r\n constructor(\r\n private communicationService: CommunicationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.messageNo=this.data.messageNo;\r\n this.messageSubject=this.data.messageSubject;\r\n this.initGrid(this.data.messageId);\r\n }\r\n\r\n public async initGrid(msgId:number){\r\n let result = await this.communicationService.getMessageStatusLog(msgId).toPromise();\r\n this.statusList=result.filter((x: { messageNumber: string; })=>x.messageNumber==this.messageNo);\r\n }\r\n public togglePopupDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n {{messageNo}} | {{messageSubject}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.receiverType}}\r\n \r\n \r\n \r\n \r\n {{dataItem.memberName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn |date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.readOn |date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.respondOn|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.responseDate |date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { IMsgElementInputModel, IMsgHistoryInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { ReplyMessageComponent } from '../reply-message/reply-message.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MailHistoryLogComponent } from '../mail-history-log/mail-history-log.component';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n\r\n@Component({\r\n selector: 'app-mail-view',\r\n templateUrl: './mail-view.component.html',\r\n styleUrls: ['./mail-view.component.css']\r\n})\r\nexport class MailViewComponent implements OnInit {\r\n\r\n private _viewData: any[] = [];\r\n @Input() set viewData(value: any) {\r\n if (!!value && typeof value == \"object\") {\r\n this._viewData = value;\r\n let docData = this.viewData[0];\r\n if (!!docData) {\r\n this.messageId = docData.messageId;\r\n this.getMessage();\r\n this.getMessageElements(this.messageId);\r\n }\r\n }\r\n }\r\n get viewData(): any {\r\n return this._viewData;\r\n }\r\n\r\n public messageElements: any;\r\n public isexpanded = true;\r\n isallExpand = true;\r\n message: any;\r\n mailType!: string;\r\n messageId!: number;\r\n projectId: number = 0;\r\n groupId: number = 0;\r\n memberId: number = 0;\r\n roleId: number = 0;\r\n attachments: any[] = [];\r\n documents: any[] = [];\r\n public messageHistoryDetails: any[] = [];\r\n from: any[] = [];\r\n sentOn!: string | null;\r\n messageSubject: string = \"\";\r\n projectName!: string | null;\r\n receivers: any[] = [];\r\n to: string = '';\r\n cc: string = '';\r\n fromOrg: string = '';\r\n toOrg: string = '';\r\n canReply: boolean = false;\r\n\r\n constructor(\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n private encryptDecryptService: EncryptDecryptService,\r\n public datepipe: DatePipe,\r\n private dialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n this.roleId = +result;\r\n });\r\n this.callMemberRoleandFeature();\r\n }\r\n\r\n callMemberRoleandFeature() {\r\n this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canReply = result1.some(data => data.feature_Desc == 'Reply');\r\n });\r\n }\r\n\r\n getProjectName() {\r\n var project = JSON.parse(this.commonService.getSessionStorageItem('projectObject'));\r\n this.projectName = this.commonService.getProjectCode() + ' - ' + project.projectDescription;\r\n }\r\n\r\n async getMessage() {\r\n\r\n let data = await this.communicationService.getMessageDetails(this.messageId).toPromise();\r\n this.message = data[0];\r\n\r\n let result = this.message.from;\r\n this.from = result.split(\"-\");\r\n this.messageId = this.message.messageId;\r\n this.getMessageElements(this.messageId);\r\n this.getReceivers(this.message.messageId);\r\n this.mailType = data[0].messageTypeShortDesc;\r\n this.sentOn = this.datepipe.transform(this.message.createdOn, 'dd-MMM-yyyy HH:mm:ss');\r\n this.messageSubject = this.message.messageSubject;\r\n }\r\n async getReceivers(messageId: number) {\r\n this.receivers = await this.communicationService.GetMessageReceiverList(messageId).toPromise();\r\n this.to = this.receivers.filter(x => x.receiverType == 2).map(x => x.memberName).toString();\r\n this.cc = this.receivers.filter(x => x.receiverType == 3).map(x => x.memberName).toString();\r\n }\r\n async getMessageElements(messageId: number) {\r\n if (messageId > 0) {\r\n let inputModel: IMsgHistoryInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n messageId: this.messageId,\r\n memberId: this.memberId,\r\n roleId: this.roleId\r\n };\r\n this.messageElements = await this.communicationService.getMessageElementsById(messageId).toPromise();\r\n this.fromOrg = this.messageElements.filter((x: { deDescription: string; }) => x.deDescription == 'From Org').map((x: { dedDescription: any; }) => x.dedDescription).toString();\r\n this.toOrg = this.messageElements.filter((x: { deDescription: string; }) => x.deDescription == 'To Org').map((x: { dedDescription: any; }) => x.dedDescription).toString();\r\n\r\n }\r\n }\r\n\r\n respondMail(inputType: string) {\r\n\r\n const dialogRef = this.dialog.open(ReplyMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n disableClose: true,\r\n data: { inputType: inputType, selectedMessageId: this.messageId }\r\n });\r\n }\r\n\r\n viewHistoryLog() {\r\n this.dialog.open(MailHistoryLogComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '53%',\r\n data: { messageId: this.messageId },\r\n });\r\n }\r\n\r\n viewAttachmentClick() {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n data: { messageId: this.messageId, projectId: this.projectId, libraryName: FileUploadLibrary.Communication, documentNo: \"\" }\r\n })\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n Message\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n

{{sentOn}}

\r\n

Larsen & Toubro LTD

\r\n

Sub: {{messageSubject}}

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

To: {{to}}

\r\n

CC: {{cc}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Your Faithfully
\r\n
{{from[0]}}
\r\n
{{from[1]}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, QueryList, ViewChildren, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CreateMessageComponent } from '../create-message/create-message.component';\r\n\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport * as moment from 'moment';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { AttachmentsListComponent } from '../attachments-list/attachments-list.component';\r\nimport { MailStatusLogComponent } from '../mail-status-log/mail-status-log.component';\r\nimport { ReplyMessageComponent } from '../reply-message/reply-message.component';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { IMsgReceiverStatus, IMsgListInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { SignatureComponent } from '../signature/signature.component';\r\nimport { MessageGroupComponent } from '../message-group/message-group.component';\r\nimport { MailEditComponent } from '../mail-edit/mail-edit.component';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { MailHistoryLogComponent } from '../mail-history-log/mail-history-log.component';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-mail',\r\n templateUrl: './mail.component.html',\r\n styleUrls: ['./mail.component.css']\r\n})\r\nexport class MailComponent implements OnInit, OnDestroy {\r\n @ViewChildren('divIcon') divIconHover!: QueryList;\r\n @ViewChild('mailGrid') mailGrid: any;\r\n @ViewChild(DataBindingDirective)\r\n dataBinding!: DataBindingDirective;\r\n public isSearch: boolean = false;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n pageSize = 15;\r\n LastViewingRecords = 30;\r\n LastViewingRecord: string = '30';\r\n noOfDays = [30, 60, 90, 'All'];\r\n public lastscrollLeft!: number;\r\n selectedIndex = 0;\r\n selectedRootIndex = 0;\r\n selectedTabIndex = 0;\r\n draft!: boolean;\r\n inbox!: boolean;\r\n landingall!: boolean;\r\n sent!: boolean;\r\n memberId: number = 0;\r\n projectId!: number;\r\n groupId: number = 0;\r\n public gridData: any[] = [];\r\n public data: any[] = [];\r\n public messageList: any[] = [];\r\n public searchList: any[] = [];\r\n public inboxList: any[] = [];\r\n public draftList: any[] = [];\r\n public sentList: any[] = [];\r\n public allList: any[] = [];\r\n public buttonType = 'MyMessages';\r\n public viewTabs: any = [];\r\n public viewData: any[] = [];\r\n public shareMsgList: any[] = [];\r\n public mailBoxType: any = null;\r\n IsShowCreateList = false;\r\n public anchorElementPopup: any;\r\n public margin = { horizontal: -15, vertical: 10 };\r\n hasSuperView: boolean = false;\r\n canUpload: boolean = false;\r\n canReply: boolean = false;\r\n canDelete: boolean = false;\r\n UnsubscribeArray: Subscription[] = [];\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n private anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n private popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n private notificationService: NotificationService,\r\n private encryptDecryptService: EncryptDecryptService) {\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.commonService.hasRequestedObject()) {\r\n setTimeout(() => {\r\n this.initialPageLoad();\r\n }, 2000);\r\n }\r\n else {\r\n this.initialPageLoad();\r\n }\r\n }\r\n\r\n initialPageLoad() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.mailBoxType = 1;\r\n this.callMemberRoleandFeature();\r\n this.refreshGrid();\r\n }\r\n\r\n callMemberRoleandFeature() {\r\n let memberrolefeature = this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.hasSuperView = result1.some(data => data.feature_Desc == 'Msg Super View');\r\n this.canUpload = result1.some(data => data.feature_Desc == 'Upload');\r\n this.canReply = result1.some(data => data.feature_Desc == 'Reply');\r\n this.canDelete = result1.some(data => data.feature_Desc == 'Delete');\r\n });\r\n this.UnsubscribeArray.push(memberrolefeature);\r\n }\r\n\r\n public advanceSearch() {\r\n this.searchList = [];\r\n switch (this.selectedRootIndex) {\r\n case 0:\r\n this.messageList = this.inboxList;\r\n break;\r\n case 1:\r\n this.messageList = this.draftList;\r\n break;\r\n case 2:\r\n this.messageList = this.sentList;\r\n break;\r\n default:\r\n this.messageList = this.allList;\r\n break;\r\n }\r\n this.isSearch = !this.isSearch;\r\n }\r\n\r\n createMessageClick() {\r\n const dialogRef = this.dialog.open(CreateMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createMail', selectedList: [] }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n registerMessageClick() {\r\n const dialogRef = this.dialog.open(CreateMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'registerMail', selectedList: [] }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n messageListTabSplit(ListData: any[]) {\r\n this.inboxList = ListData.filter(doc => doc.messageBox == 1);\r\n this.draftList = ListData.filter(doc => doc.messageBox == 2);\r\n this.sentList = ListData.filter(doc => doc.messageBox == 3);\r\n this.allList = ListData;\r\n switch (this.mailBoxType) {\r\n case 1:\r\n this.messageList = this.inboxList;\r\n break;\r\n case 2:\r\n this.messageList = this.draftList;\r\n break;\r\n case 3:\r\n this.messageList = this.sentList;\r\n break;\r\n default:\r\n this.messageList = this.allList;\r\n break;\r\n }\r\n this.dataBinding.skip = 0;\r\n }\r\n\r\n closeAdvSearch(event: any[]) {\r\n this.searchList = event;\r\n this.isSearch = false;\r\n if (this.searchList.length == 0) {\r\n this.notificationService.showToast(\"Search returned no results\", \"Warning\");\r\n }\r\n else {\r\n // this.messageList = this.searchList;\r\n // this.dataBinding.skip = 0;\r\n this.messageListTabSplit(this.searchList);\r\n }\r\n }\r\n\r\n getGridData() {\r\n if (this.selectedTabIndex != 0) {\r\n this.viewData = [];\r\n let tab = this.viewTabs[this.selectedTabIndex - 1];\r\n this.viewData.push({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n messageId: tab.messageId\r\n });\r\n }\r\n // if (this.searchList.length > 0) {\r\n // this.messageList = this.searchList;\r\n // }\r\n // else {\r\n // this.inboxList = this.gridData.filter(doc => doc.messageBox == 1);\r\n // this.draftList = this.gridData.filter(doc => doc.messageBox == 2);\r\n // this.sentList = this.gridData.filter(doc => doc.messageBox == 3);\r\n // this.allList = this.gridData;\r\n // switch (this.mailBoxType) {\r\n // case 1:\r\n // this.messageList = this.inboxList;\r\n // break;\r\n // case 2:\r\n // this.messageList = this.draftList;\r\n // break;\r\n // case 3:\r\n // this.messageList = this.sentList;\r\n // break;\r\n // default:\r\n // this.messageList = this.allList;\r\n // break;\r\n // }\r\n // this.dataBinding.skip = 0;\r\n // }\r\n this.messageListTabSplit(this.gridData);\r\n }\r\n\r\n onHover(event: Event): void {\r\n if ((event.target as HTMLElement).closest('div.k-grid-content')) {\r\n const newscrollLeft = (event.target as HTMLElement).closest('div.k-grid-content')?.scrollLeft;\r\n if (newscrollLeft && this.lastscrollLeft !== newscrollLeft) {\r\n for (let i = 0; i < this.divIconHover.length; i++) {\r\n this.divIconHover['_results'][i]['nativeElement']['style'].right = (0 - newscrollLeft) + 'px';\r\n }\r\n this.lastscrollLeft = newscrollLeft;\r\n }\r\n }\r\n }\r\n\r\n public onValChange(val: string) {\r\n this.searchList = [];\r\n this.buttonType = val;\r\n this.refreshGrid();\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n public tabClick(event: { tab: { textLabel: string; }; }) {\r\n this.mailGrid.defaultSelection.selectedKeys = [];\r\n this.messageList.forEach(x => x.isSelected = false);\r\n //this.searchList = [];\r\n if (event.tab.textLabel == \"Inbox\") {\r\n this.mailBoxType = 1;\r\n }\r\n else if (event.tab.textLabel == \"Draft\") {\r\n this.mailBoxType = 2;\r\n }\r\n else if (event.tab.textLabel == \"Sent\") {\r\n this.mailBoxType = 3;\r\n }\r\n else {\r\n this.mailBoxType = null;\r\n }\r\n this.refreshGrid(true);\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n /**\r\n * Data Binding in Grid\r\n * @param type\r\n *\r\n */\r\n public async refreshGrid(isTabChange: boolean = false) {\r\n let inputMsgId = null;\r\n let inputMsgNo = null;\r\n if (this.commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n inputMsgId = requestedObject['inputDocId'];\r\n }\r\n if (this.commonService.hasSearchedObject()) {\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('searchedObject')));\r\n inputMsgNo = searchedObject['searchDocNo'];\r\n }\r\n var toDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\r\n let lastViewingDate = moment().add(-this.LastViewingRecords, 'days');\r\n var fromDate = new Date(lastViewingDate.toDate());\r\n let reqData: IMsgListInputModel = {\r\n transType: this.buttonType,\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n mailBoxType: null,\r\n isConfidential: null,\r\n sentType: this.LastViewingRecords == 0 ? null : 'Sent',\r\n sentFrom: this.LastViewingRecords == 0 ? null : fromDate,\r\n sentTo: this.LastViewingRecords == 0 ? null : toDate,\r\n messageId: inputMsgId == null ? inputMsgId : +inputMsgId,\r\n messageNo: inputMsgNo\r\n };\r\n if (!isTabChange) {\r\n this.gridData = await this.communicationService.GetMessageList(reqData).toPromise().catch(err => {\r\n console.log(err);\r\n this.notificationService.showToast(\"the Search List is too large to fetch Please use Advance Search\",'Warning');\r\n this.messageList=[];\r\n });\r\n }\r\n if(this.searchList.length>0)\r\n {\r\n this.gridData=this.searchList\r\n }\r\n this.getGridData();\r\n this.setRedirectObjects();\r\n }\r\n\r\n setRedirectObjects() {\r\n if (this.commonService.hasRequestedObject()) {/*Mail Redirection*/\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n let inputMsgId = requestedObject['inputMsgId'];\r\n if (inputMsgId) {\r\n this.commonService.checkAndDeleteRequestedObject();\r\n let _data = this.gridData?.filter(x => x.messageId == inputMsgId);\r\n if (_data.length > 0) {\r\n this.viewMessageClick(_data[0]);\r\n }\r\n else {\r\n let reqData: IMsgListInputModel = {\r\n transType: this.buttonType,\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n messageId: inputMsgId\r\n }\r\n this.communicationService.GetMessageList(reqData).subscribe((res:any[]) => {\r\n if(res && res.length>0)\r\n {\r\n this.viewMessageClick(res[0]);\r\n }\r\n else\r\n {\r\n this.notificationService.showToast(\"You are not authorized to view the Message\", \"Warning\");\r\n }\r\n },err => {\r\n this.notificationService.showToast(\"You are not authorized to view the Message\", \"Warning\");\r\n })\r\n\r\n }\r\n }\r\n }\r\n if (this.gridData.length > 0 && this.commonService.hasSearchedObject()) {/*Search Redirection*/\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('searchedObject')));\r\n let inputMsgNo = searchedObject['searchDocNo'];\r\n if (inputMsgNo) {\r\n this.commonService.checkAndDeleteSearchedObject();\r\n let _data = this.gridData.filter(x => x.messageNumber == inputMsgNo);\r\n if (_data.length > 0) {\r\n this.viewMessageClick(_data[0]);\r\n }\r\n else {\r\n this.notificationService.showToast(\"You are not authorized to view the Message\", \"Warning\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Multiple select of listed messages\r\n * @param event\r\n *\r\n */\r\n onSelectionChange(event: { [x: string]: { dataItem: { isSelected: boolean; }; }[]; }): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n }\r\n\r\n respondMessage(respondType: number, dataItem?: any) {\r\n let inputType = respondType == 1 ? 'replyMail' : (respondType == 2 ? 'replyAllMail' : 'ForwardMail');\r\n let selectedMessages = [];\r\n if (dataItem != undefined && dataItem != null) {\r\n selectedMessages.push(dataItem.messageId);\r\n }\r\n else {\r\n selectedMessages = this.messageList.filter(x => x.isSelected).map(x => x.messageId);\r\n }\r\n if (selectedMessages.length == 1) {\r\n const dialogRef = this.dialog.open(ReplyMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n disableClose: true,\r\n data: { inputType: inputType, selectedMessageId: selectedMessages[0] }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n this.mailGrid.defaultSelection.selectedKeys = [];\r\n this.messageList.forEach(x => x.isSelected = false);\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please Select One Mail\", \"Warning\");\r\n }\r\n }\r\n\r\n public showCreateList(event: any) {\r\n this.IsShowCreateList = !this.IsShowCreateList;\r\n this.anchorElementPopup = event.target;\r\n }\r\n\r\n public closeCreateList() {\r\n this.IsShowCreateList = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n\r\n viewAttachmentClick(data: any) {\r\n this.dialog.open(AttachmentsListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { messageId: data.messageId },\r\n });\r\n }\r\n\r\n public lastviewingrecordsmethod(event: any) {\r\n this.searchList = [];\r\n if (event == \"All\") {\r\n this.LastViewingRecords = 0;\r\n this.refreshGrid();\r\n this.LastViewingRecord = \"All\";\r\n }\r\n else {\r\n this.LastViewingRecords = event;\r\n this.LastViewingRecord = event;\r\n this.refreshGrid();\r\n }\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n public viewTabClick(event: { tab: { textLabel: any; }; }) {\r\n this.viewData = [];\r\n this.messageList.forEach(x => x.isSelected = false);\r\n if (this.selectedTabIndex != 0) {\r\n let msgId = this.viewTabs.find((x: { messageNumber: any; }) => x.messageNumber == event.tab.textLabel).messageId;\r\n this.viewData.push({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n messageId: msgId,\r\n });\r\n }\r\n }\r\n\r\n async closeTabClick(tab: { messageId: any; }) {\r\n let index = this.viewTabs.indexOf(tab);\r\n this.viewTabs.splice(index, 1);\r\n let input: IMsgReceiverStatus = {\r\n messageId: tab.messageId,\r\n memberId: this.memberId,\r\n isRead: 'Y',\r\n readOn: new Date(),\r\n responseDate: null,\r\n userId: this.memberId\r\n };\r\n let setmessage = await this.communicationService.setMessageStatus(input).subscribe((res: any) => { });\r\n this.UnsubscribeArray.push(setmessage);\r\n if (this.viewTabs.length == 0) {\r\n this.selectedTabIndex = 0;\r\n this.refreshGrid();\r\n }\r\n }\r\n\r\n viewMessageClick(data: any) {\r\n let index = this.viewTabs.indexOf(data);\r\n if (index == -1) {\r\n this.viewTabs.push(data);\r\n this.selectedTabIndex = 1;\r\n }\r\n }\r\n\r\n viewMessagesClick() {\r\n this.messageList.forEach((element: any) => {\r\n if (element.isSelected) {\r\n let index = this.viewTabs.indexOf(element);\r\n if (index == -1) {\r\n this.viewTabs.push(element);\r\n }\r\n }\r\n });\r\n if (this.viewTabs.length == 0) {\r\n this.notificationService.showToast(\"No Mail is selected\", \"Warning\");\r\n }\r\n else {\r\n this.selectedTabIndex = 1;\r\n }\r\n }\r\n\r\n viewStatusLog(data: any) {\r\n this.dialog.open(MailStatusLogComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { messageId: data.messageId, messageNo: data.messageNumber, messageSubject: data.messageSubject },\r\n });\r\n }\r\n\r\n viewHistoryLog(data: any) {\r\n this.dialog.open(MailHistoryLogComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { messageId: data.messageId },\r\n });\r\n }\r\n\r\n openSignaturePopup() {\r\n const dialogRef = this.dialog.open(SignatureComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw'\r\n });\r\n }\r\n\r\n openMessageGroupPopup() {\r\n const dialogRef = this.dialog.open(MessageGroupComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n maxWidth: '95vw',\r\n data: { receiverType: 0, alreadySelectedList: [] }\r\n });\r\n }\r\n\r\n editMessage(data: any) {\r\n const dialogRef = this.dialog.open(MailEditComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { messageId: data.messageId }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n deleteMessage(data: any) {\r\n this.notificationService.showPopup('Are you sure you want to delete', 'Confirm').then(msg => {\r\n if (msg == 'yes') {\r\n let input = {\r\n \"projectId\": this.projectId,\r\n \"messageId\": data.messageId,\r\n \"userId\": this.memberId\r\n };\r\n let deletemsg = this.communicationService.DeleteMessage(input).subscribe(res => {\r\n if (res.successCode == 200) {\r\n this.refreshGrid();\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(deletemsg);\r\n }\r\n });\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.messageList\r\n };\r\n return result;\r\n }\r\n\r\n public HelpUrlClick() {\r\n let x = JSON.parse(this.commonService.getSessionStorageItem(\"Menu\"))\r\n let url = x.filter((y: { menuDesc: string; }) => y.menuDesc == \"Communication\")[0].helpUrl\r\n if (url) {\r\n window.open(url);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{tab.messageNumber}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Inbox {{inboxList.length}}\r\n \r\n \r\n \r\n \r\n Draft {{draftList.length}}\r\n \r\n \r\n \r\n \r\n Sent {{sentList.length}}\r\n \r\n \r\n \r\n \r\n All {{allList.length}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n My Messages\r\n Other Messages\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

\r\n Message

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

\r\n Register Incoming Message

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

\r\n Message Group

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

\r\n Signature

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

Details -

\r\n
\r\n

Viewing last

\r\n \r\n

days records

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n To\r\n \r\n \r\n {{dataItem.to}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.responseDate| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { groupBy } from 'lodash';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\n\r\n@Component({\r\n selector: 'app-message-cart',\r\n templateUrl: './message-cart.component.html',\r\n styleUrls: ['./message-cart.component.css']\r\n})\r\nexport class MessageCartComponent implements OnInit {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public messages!: any[];\r\n public filteredMessages: any[] = [];\r\n selectedMessages: any[] = [];\r\n cartDataSource: any[] = [];\r\n cartSelectedList: any = [];\r\n cartRequest = {};\r\n cartSelectedListCopy!: any[];\r\n createdByList: any[] = [];\r\n createdBy: string = '';\r\n authorizedByList: any[] = [];\r\n authorizedBy: string = '';\r\n statusList: any[] = [];\r\n status: string = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public communicationService: CommunicationService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getMessageList();\r\n }\r\n\r\n closeDialog(data: any) {\r\n this.dialogRef.close(data);\r\n }\r\n\r\n async getMessageList() {\r\n let reqData: any = {\r\n \"transType\": \"MyMessages\",\r\n \"projectId\": this.projectId,\r\n \"groupId\": this.groupId,\r\n \"memberId\": this.memberId,\r\n \"mailBoxType\": 1,\r\n \"isConfidential\": null,\r\n \"sentType\": null,\r\n \"sentFrom\": null,\r\n \"sentTo\": null\r\n };\r\n this.messages = await this.communicationService.GetMessageList(reqData).toPromise();\r\n if (this.data != undefined && this.data.length > 0) {\r\n this.selectedMessages = this.data;\r\n }\r\n this.setCartValues();\r\n this.setAutocompleteValues();\r\n this.filterMessages();\r\n }\r\n\r\n setAutocompleteValues() {\r\n if (this.messages.length != 0) {\r\n let result = this.messages.map(x => x.from);\r\n let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n this.createdByList = filteredResult.map(x => {\r\n return { value: x, description: x }\r\n });\r\n let result2 = this.messages.map(x => x.to);\r\n let filteredResult2 = result2.filter((n, i) => result2.indexOf(n) === i);\r\n this.authorizedByList = filteredResult2.map(x => {\r\n return { value: x, description: x }\r\n });\r\n let result3 = this.messages.map(x => x.status);\r\n let filteredResult3 = result3.filter((n, i) => result3.indexOf(n) === i);\r\n this.statusList = filteredResult3.map(x => {\r\n return { value: x, description: x }\r\n });\r\n }\r\n else {\r\n this.createdByList = [];\r\n this.authorizedByList = [];\r\n }\r\n }\r\n\r\n changeCreatedBy(event: any) {\r\n this.createdBy = event.value != -2 ? event.value : '';\r\n this.filterMessages();\r\n }\r\n\r\n changeAuthorizedBy(event: any) {\r\n this.authorizedBy = event.value != -2 ? event.value : '';\r\n this.filterMessages();\r\n }\r\n\r\n changeStatusBy(event: any) {\r\n this.status = event.value != -2 ? event.value : '';\r\n this.filterMessages();\r\n }\r\n\r\n filterMessages() {\r\n if (this.createdBy != '') {\r\n if (this.authorizedBy != '') {\r\n this.filteredMessages = this.messages.filter(x => x.authorisedByName == this.authorizedBy && x.createdBy == this.createdBy);\r\n }\r\n else {\r\n this.filteredMessages = this.messages.filter(x => x.createdBy == this.createdBy);\r\n }\r\n }\r\n else if (this.authorizedBy != '') {\r\n if (this.createdBy != '') {\r\n this.filteredMessages = this.messages.filter(x => x.createdBy == this.createdBy && x.authorisedByName == this.authorizedBy);\r\n }\r\n else {\r\n this.filteredMessages = this.messages.filter(x => x.authorisedByName == this.authorizedBy);\r\n }\r\n }\r\n else if (this.status != '') {\r\n this.filteredMessages = this.filteredMessages.filter(x => x.status == this.status);\r\n }\r\n else {\r\n this.filteredMessages = this.messages;\r\n }\r\n this.setCartValues();\r\n }\r\n\r\n setCartValues() {\r\n this.cartDataSource = this.removeDuplicates(this.filteredMessages, this.selectedMessages, 'messageId');\r\n this.cartSelectedList = [];\r\n this.cartSelectedListCopy = [];\r\n this.selectedMessages.forEach(eachMsg => {\r\n let cartValue: any = this.getAsCartSelectedValue(eachMsg.messageNumber, eachMsg.messageSubject);\r\n this.cartSelectedList.push(cartValue);\r\n this.cartSelectedListCopy.push(cartValue);\r\n });\r\n this.setCartParams();\r\n }\r\n\r\n removeDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n let filteredArray: any = [],\r\n grpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n dataSource.forEach((eachData: any) => {\r\n if (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n filteredArray.push(eachData);\r\n }\r\n });\r\n return filteredArray;\r\n }\r\n\r\n getAsCartSelectedValue(value: string | number, text: string) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text\r\n };\r\n return output;\r\n }\r\n\r\n setCartParams() {\r\n this.cartRequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartSelectedList,\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'messageSubject',\r\n 'valueField': 'messageNumber',\r\n 'cartLabel': 'Choose Items',\r\n 'minimumSelectedItemCount': 0\r\n },\r\n 'dataSource': this.cartDataSource,\r\n }\r\n }\r\n\r\n getSelectedCartItems(event: any[]) {\r\n this.closeDialog(event);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Message Cart\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { IMessageGroupOutputModel, IMessageGroupMemberInputModel, IMessageGroupMGInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { ITransmittalMemberModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { MemberRoleLinkService } from 'src/app/Service/member-role-link/member-role-link.service';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { MatChipList } from '@angular/material/chips';\r\n\r\n\r\n@Component({\r\n selector: 'app-message-group',\r\n templateUrl: './message-group.component.html',\r\n styleUrls: ['./message-group.component.css']\r\n})\r\nexport class MessageGroupComponent implements OnInit {\r\n\r\n panelOpenState = true;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public roleId!: number;\r\n public setDisableGrpMsg: boolean = true;\r\n public showBtn: boolean = true;\r\n public updatedDescription!: string;\r\n toList: any[] = [];\r\n ccList: any[] = [];\r\n project_allMembers: any[] = [];\r\n bccList: any[] = [];\r\n msgGrpId: number | undefined;\r\n public membersList: any[] = [];\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n @ViewChild('toInput')\r\n toInput!: ElementRef;\r\n @ViewChild('toauto')\r\n matToAutoComplete!: MatAutocomplete;\r\n @ViewChild('toChipList')\r\n toChipList!: MatChipList;\r\n @ViewChild('ccInput')\r\n ccInput!: ElementRef;\r\n @ViewChild('ccauto')\r\n matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList')\r\n ccChipList!: MatChipList;\r\n @ViewChild('bccInput')\r\n bccInput!: ElementRef;\r\n @ViewChild('bccauto')\r\n matbccAutoComplete!: MatAutocomplete;\r\n @ViewChild('bccChipList')\r\n bccChipList!: MatChipList;\r\n toMembers: ITransmittalMemberModel[] = [];\r\n tofilter$!: Observable;\r\n toFilteredMembers!: Observable;\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n ccfilter$!: Observable;\r\n ccFilteredMembers!: Observable;\r\n bccMembers: ITransmittalMemberModel[] = [];\r\n bccfilter$!: Observable;\r\n bccFilteredMembers!: Observable;\r\n private _nextPage$ = new Subject();\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n mgList: any[] = [];\r\n removedCcMember: any[] = [];\r\n removedBccMember: any[] = [];\r\n removedToMember: any[] = [];\r\n public businessGroupId!: number;\r\n groupList: IMessageGroupOutputModel[] = [];\r\n bindGroupList: IMessageGroupOutputModel[] = [];\r\n public receivers: IMessageGroupMemberInputModel[] = [];\r\n public messageGroupForm!: FormGroup;\r\n public businessGroupList: ReadonlyArray = [];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public memberService: ExternalMemberService,\r\n private memberRoleLinkService: MemberRoleLinkService,\r\n private notificationService: NotificationService,\r\n private formBuilder: FormBuilder,\r\n private mapRoleFeatureService: MapRoleFeatureService,\r\n private transmittalService: TransmittalService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.createCommunicationForm();\r\n this.callMemberRoleandFeature();\r\n this.get_Allmember();\r\n this.getBusinessGroupList(this.projectId);\r\n this.getMessageGroupList();\r\n }\r\n\r\n createCommunicationForm() {\r\n this.messageGroupForm = this.formBuilder.group({\r\n toMembersCtrl: new FormControl(),\r\n ccMembersCtrl: new FormControl(),\r\n bccMembersCtrl: new FormControl(),\r\n toMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n ccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n bccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n txtNoOfDays: new FormControl(),\r\n formToMember: new FormControl('', Validators.required),\r\n formMGList: new FormControl('', Validators.required),\r\n business_GroupId: new FormControl(),\r\n formMGListList: new FormControl('', Validators.required)\r\n });\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n changeBusinessGroup(event: { value: string | number | any; }) {\r\n if (event.value != '-2') {\r\n this.businessGroupId = event.value;\r\n this.getMembers();\r\n } else {\r\n this.showBtn = true;\r\n this.masterMembers = [];\r\n }\r\n }\r\n\r\n\r\n resetData() {\r\n this.toFormMembers?.setValue([]);\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n this.ccFormMembers?.setValue([]);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n this.bccFormMembers?.setValue([]);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n\r\n filterGroupList(event: any) {\r\n let messageGroup: String = this.messageGroupForm.get('formMGList')?.value;\r\n let enteredMSG = this.mgList.filter(data => data.groupDescription.trim() == messageGroup.trim())[0];\r\n if (!!enteredMSG) {\r\n this.showBtn = false;\r\n this.resetRemovedMember();\r\n this.messageGroupForm.get('formMGListList')?.setValue(enteredMSG.groupDescription);\r\n this.bindMembers(enteredMSG.groupId);\r\n this.msgGrpId = enteredMSG.groupId;\r\n } else {\r\n this.showBtn = true;\r\n this.resetData();\r\n this.msgGrpId = undefined;\r\n this.bindMembers(undefined);\r\n this.messageGroupForm.get('formMGListList')?.setValue(undefined);\r\n }\r\n }\r\n\r\n get_Allmember() {\r\n this.transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.project_allMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo\r\n };\r\n return transmittalMember;\r\n });\r\n\r\n })\r\n this.tofilter$ = this.createSerachFilter('toMembersCtrl');\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.bccfilter$ = this.createSerachFilter('bccMembersCtrl');\r\n this.filterMembers();\r\n }\r\n async getMembers() {\r\n this.membersList = await this.memberRoleLinkService.getMembersList(this.commonService.getProjectId(), this.businessGroupId).toPromise();\r\n this.masterMembers = this.membersList.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo\r\n };\r\n return transmittalMember;\r\n });\r\n this.tofilter$ = this.createSerachFilter('toMembersCtrl');\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.bccfilter$ = this.createSerachFilter('bccMembersCtrl');\r\n this.filterMembers();\r\n }\r\n\r\n\r\n\r\n setMessageReceivers() {\r\n this.toMembers.forEach(x => {\r\n this.receivers.push({\r\n MemberId: x.memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: !!this.msgGrpId ? this.msgGrpId : 0,\r\n GroupId: this.groupId,\r\n ProjectId: this.projectId,\r\n RoleId: this.roleId,\r\n ReceiverType: 2,\r\n IsActive: true\r\n });\r\n });\r\n\r\n this.ccMembers.forEach(x => {\r\n this.receivers.push({\r\n MemberId: x.memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: !!this.msgGrpId ? this.msgGrpId : 0,\r\n GroupId: this.groupId,\r\n ProjectId: this.projectId,\r\n RoleId: this.roleId,\r\n ReceiverType: 3,\r\n IsActive: true\r\n });\r\n });\r\n\r\n this.bccMembers.forEach(x => {\r\n this.receivers.push({\r\n MemberId: x.memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: !!this.msgGrpId ? this.msgGrpId : 0,\r\n GroupId: this.groupId,\r\n ProjectId: this.projectId,\r\n RoleId: this.roleId,\r\n ReceiverType: 5,\r\n IsActive: true\r\n });\r\n });\r\n return this.receivers;\r\n }\r\n\r\n validateMemberSelection(abstractControl: AbstractControl) {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (selectedValue && !selectedValue.every(member => this.masterMembers.includes(member))) {\r\n return { IsError: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n else return null;\r\n }\r\n\r\n getBusinessGroupList(projectId: number) {\r\n this.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data: BusinessGroupModel[]) => {\r\n this.businessGroupList = data.filter(eachData => eachData.is_Active);\r\n });\r\n }\r\n private createSerachFilter(formControlName: string): Observable {\r\n // Note: listen for search text changes \r\n let x: any = this.messageGroupForm;\r\n if (x && x.get(formControlName))\r\n return x.get(formControlName).valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\"));\r\n return new Observable();\r\n }\r\n\r\n private filterMembers(): void {\r\n this.toFilteredMembers = this.getFilteredMembers(this.tofilter$);\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n this.bccFilteredMembers = this.getFilteredMembers(this.bccfilter$);\r\n }\r\n\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n scan((allMembers, newMembers: any) => allMembers.concat(newMembers), []),\r\n );\r\n }));\r\n }\r\n\r\n // Fake backend api\r\n private getMembersFake(startsWith: string, page: number): Observable {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter((option: any) => option.memberName.toLowerCase().includes(startsWith.toLowerCase()));\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'to':\r\n this.toggleToSelection(member);\r\n break;\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n case 'bcc':\r\n this.togglebccSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n\r\n onChangeSearch(val: any) {\r\n this.updatedDescription = val;\r\n }\r\n\r\n selectEvent(item: any) {\r\n if (!!item.tE_Description)\r\n this.updatedDescription = item.tE_Description;\r\n if (!!item.tI_Description)\r\n this.updatedDescription = item.tI_Description;\r\n }\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'to':\r\n result = this.toMembers != null ? this.toMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'bcc':\r\n result = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n toggleToSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.toMembers != null ? this.toMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.toMembers.splice(index, 1);\r\n this.toFormMembers?.value.splice(index, 1);\r\n this.toFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.toMembers.push(member);\r\n this.toFormMembers?.value.push(member);\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n }\r\n }\r\n\r\n resetToMemberFilter() {\r\n this.messageGroupForm.get('toMembersCtrl')?.setValue('');\r\n this.toInput.nativeElement.value = '';\r\n this.toInput.nativeElement.blur();\r\n }\r\n\r\n removeTo(member: ITransmittalMemberModel): void {\r\n const index = this.toMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.removedToMember.push(member);\r\n this.toMembers.splice(index, 1);\r\n if (this.toFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.toFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.toFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetToMemberFilter();\r\n }\r\n }\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n resetCcMemberFilter() {\r\n this.messageGroupForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n\r\n\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.removedCcMember.push(member);\r\n this.ccMembers.splice(index, 1);\r\n if (this.ccFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n togglebccSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.bccMembers.splice(index, 1);\r\n this.bccFormMembers?.value.splice(index, 1);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.bccMembers.push(member);\r\n this.bccFormMembers?.value.push(member);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n\r\n resetbccMemberFilter() {\r\n this.messageGroupForm.get('bccMembersCtrl')?.setValue('');\r\n this.bccInput.nativeElement.value = '';\r\n this.bccInput.nativeElement.blur();\r\n }\r\n\r\n onMGValueChange(event: { value: string; additionalValues: { additionalValues: { groupId: number | undefined; groupDescription: any; }; }; }, formControlName: string) {\r\n if (event.value != '-2') {\r\n this.removedBccMember = [];\r\n this.removedCcMember = [];\r\n this.removedToMember = [];\r\n this.showBtn = false;\r\n this.msgGrpId = event.additionalValues.additionalValues.groupId;\r\n this.messageGroupForm.get('formMGList')?.setValue(event.additionalValues.additionalValues.groupDescription);\r\n this.messageGroupForm.get('formMGListList')?.setValue(event.additionalValues.additionalValues.groupDescription);\r\n this.bindMembers(event.value);\r\n } else {\r\n this.toMembers = [];\r\n this.ccMembers = [];\r\n this.bccList = [];\r\n this.showBtn = true;\r\n this.msgGrpId = undefined;\r\n this.resetRemovedMember();\r\n this.messageGroupForm.get('formMGList')?.setValue('');\r\n this.bindMembers(event.value);\r\n }\r\n }\r\n\r\n bindMembers(value: string | number | undefined) {\r\n this.toMembers = [];\r\n this.ccMembers = [];\r\n this.bccList = [];\r\n this.bindGroupList = this.groupList.filter(x => x.groupId == value);\r\n this.toList = this.bindGroupList.filter(x => x.receiverType == 2).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n this.toMembers = this.getMGListMembers(this.toList);\r\n if (this.toMembers != null) {\r\n this.toMembers = this.toMembers.filter(data => data != null);\r\n this.toFormMembers?.setValue([...this.toMembers]);\r\n }\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n\r\n this.ccList = this.bindGroupList.filter(x => x.receiverType == 3).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.ccMembers = this.getMGListMembers(this.ccList);\r\n if (this.ccMembers != null) {\r\n this.ccMembers = this.ccMembers.filter(data => data != null);\r\n this.ccFormMembers?.setValue([...this.ccMembers]);\r\n }\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n\r\n this.bccList = this.bindGroupList.filter(x => x.receiverType == 5).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.bccMembers = this.getMGListMembers(this.bccList);\r\n if (this.bccMembers != null) {\r\n this.bccMembers = this.bccMembers.filter(data => data != null);\r\n this.bccFormMembers?.setValue([...this.bccMembers]);\r\n }\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n\r\n private getMGListMembers(members: any): ITransmittalMemberModel[] {\r\n return members.map((x: { value: any; title: any; receiverGroup: any; }) => {\r\n let findmember = this.project_allMembers.filter(y => y.memberId == x.value)[0];\r\n let member!: ITransmittalMemberModel\r\n if (!!findmember) {\r\n member = {\r\n memberId: x.value,\r\n memberName: x.title,\r\n memberShortName: findmember.memberShortName,\r\n eMailId: findmember.eMailId,\r\n staffPSNo: findmember.staffPSNo,\r\n mobileNo: findmember.mobileNo,\r\n groupBy: x.receiverGroup\r\n };\r\n return member;\r\n }\r\n else\r\n return member\r\n });\r\n }\r\n\r\n removebcc(member: ITransmittalMemberModel): void {\r\n const index = this.bccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.removedBccMember.push(member);\r\n this.bccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.bccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n\r\n // use getter method to access toMembers control value easily\r\n get toFormMembers() {\r\n return this.messageGroupForm.get('toMembers');\r\n }\r\n get ccFormMembers() {\r\n return this.messageGroupForm.get('ccMembers');\r\n }\r\n get bccFormMembers() {\r\n return this.messageGroupForm.get('bccMembers');\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n this.roleId = result.length > 0 ? result[0].role_Id : 1;\r\n });\r\n }\r\n\r\n async getMessageGroupList() {\r\n this.groupList = await this.communicationService.GetMessageGroup({ MemberId: this.memberId, ProjectId: this.projectId }).toPromise();\r\n let mgList1 = this.groupList.map((element => {\r\n return { \"groupId\": element.groupId, \"groupDescription\": element.groupDescription };\r\n }));\r\n this.mgList = mgList1.reduce((accumalator: any, current: any) => {\r\n if (!accumalator.some((item: any) => item.groupId === current.groupId && item.groupDescription === current.groupDescription)) {\r\n accumalator.push(current);\r\n }\r\n return accumalator;\r\n }, []);\r\n }\r\n\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n resetRemovedMember() {\r\n this.removedToMember = [];\r\n this.removedCcMember = [];\r\n this.removedBccMember = [];\r\n }\r\n\r\n saveMessageGroup() {\r\n let RemovedToMember: IMessageGroupMemberInputModel[] = [];\r\n let RemovedCcMember: IMessageGroupMemberInputModel[] = [];\r\n let RemovedBccMember: IMessageGroupMemberInputModel[] = [];\r\n if (this.removedToMember.length > 0) {\r\n this.removedToMember.forEach(x => {\r\n RemovedToMember.push({\r\n MemberId: x.memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: !!this.msgGrpId ? this.msgGrpId : 0,\r\n GroupId: this.groupId,\r\n ProjectId: this.projectId,\r\n RoleId: this.roleId,\r\n ReceiverType: 2,\r\n IsActive: false\r\n });\r\n });\r\n }\r\n if (this.removedCcMember.length > 0) {\r\n this.removedCcMember.forEach(x => {\r\n RemovedCcMember.push({\r\n MemberId: x.memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: !!this.msgGrpId ? this.msgGrpId : 0,\r\n GroupId: this.groupId,\r\n ProjectId: this.projectId,\r\n RoleId: this.roleId,\r\n ReceiverType: 3,\r\n IsActive: false\r\n });\r\n });\r\n }\r\n if (this.removedBccMember.length > 0) {\r\n this.removedBccMember.forEach(x => {\r\n RemovedBccMember.push({\r\n MemberId: x.memberId,\r\n UserId: this.memberId,\r\n MessageGroupId: !!this.msgGrpId ? this.msgGrpId : 0,\r\n GroupId: this.groupId,\r\n ProjectId: this.projectId,\r\n RoleId: this.roleId,\r\n ReceiverType: 5,\r\n IsActive: false\r\n });\r\n });\r\n }\r\n if (this.toMembers.length > 0 && this.getFormValue('formMGList', this.messageGroupForm)) {\r\n this.setMessageReceivers();\r\n let receivers = this.receivers.concat(...RemovedToMember, ...RemovedCcMember, ...RemovedBccMember);\r\n let inputModel: IMessageGroupMGInputModel = {\r\n MemberId: this.memberId,\r\n OwnerId: this.memberId,\r\n GroupId: this.groupId,\r\n MessageGroupId: this.msgGrpId,\r\n ProjectId: this.commonService.getProjectId(),\r\n GroupDescription: this.getFormValue('formMGList', this.messageGroupForm),\r\n IsActive: true,\r\n MessageGroupMembers: receivers,\r\n };\r\n this.callService(inputModel);\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n callService(inputModel: IMessageGroupMGInputModel) {\r\n this.communicationService.InsertUpdateMessageGroup(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.closeDialog();\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n // this.getDistributionList();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.resetRemovedMember();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Create Message Group

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n New Message Group \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n To *\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Bcc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { formatDate } from '@angular/common';\r\nimport { ISignatureOutputModel, IMessageGroupListModel, IMsgReceiverInputModel, IMsgElementInputModel, IMsgDocumentInputModel, IMsgAttachmentInputModel, IMessageInputModel, IMsgSLNoInputModel, MessageReceiverOutputModel, IMessageGroupOutputModel, IMsgDocumentAttachmentModel, IMsgAttachmentsModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { FormGroup, FormControl, FormBuilder, Validators, AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { SignatureComponent } from '../signature/signature.component';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { ITransmittalMemberModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { DocumentMessageViewComponent } from 'src/app/CommonComponents/document-message-grid/document-message-view/document-message-view.component';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { MatChipList } from '@angular/material/chips';\r\nimport { IMemebersViewModel } from 'src/app/ViewModel/MembersModel';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-reply-message',\r\n templateUrl: './reply-message.component.html',\r\n styleUrls: ['./reply-message.component.css']\r\n})\r\nexport class ReplyMessageComponent implements OnInit {\r\n panelOpenState = true;\r\n public inputType: any;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public MessageId!: number;\r\n public parentMessageId: number = 0;\r\n public message: any;\r\n public messageGroup: string = '';\r\n public messageNo!: string;\r\n public msgSerialNo!: number;\r\n public messageFormat!: string;\r\n public numFormat!: string;\r\n public mailType: string = '';\r\n public groupList: any[] = [];\r\n public mgList: any[] = [];\r\n public isShowBcc: boolean = true;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public elementInp?: IMsgElementInputModel[] = [];\r\n public messageElements: any;\r\n public toFilteredMembers!: Observable;\r\n mailContent: string = '';\r\n bindGroupList: IMessageGroupOutputModel[] = [];\r\n registermailContent: string = '';\r\n mailSubject: string = '';\r\n IsShowAttachmentList = false;\r\n public isShowRequired: boolean = false;\r\n public setclear: string = \"N\";\r\n /*Signature*/\r\n IsShowPopup = false;\r\n public IsDisabled!: boolean;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n private popupAlignCenter: Align = { horizontal: 'center', vertical: 'top' };\r\n private anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n private popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n private anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n private popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public margin = { horizontal: -15, vertical: 10 };\r\n public signatureList: ISignatureOutputModel[] = [];\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n public membersList!: IMemebersViewModel[] | undefined;\r\n public mailFromList: any[] = [];\r\n receivedDoc: any[] = [];\r\n mailFrom: string = '';\r\n public responseRequired!: string;\r\n public sentdatevalue = new Date(this.getDateFormat());\r\n public SentOn: string = formatDate(this.sentdatevalue, 'dd-MM-yyyy', 'en-US');\r\n public isSentDateInvalid!: boolean;\r\n public fromList: any[] = [];\r\n mailTo: string = '';\r\n public toList: any[] = [];\r\n mailCC: string = '';\r\n public ccList: any[] = [];\r\n mailBCC: string = '';\r\n public bccList: any[] = [];\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n\r\n masterMemberIds!: number[];\r\n @ViewChild('toInput')\r\n toInput!: ElementRef;\r\n @ViewChild('toauto')\r\n matToAutoComplete!: MatAutocomplete;\r\n @ViewChild('toChipList')\r\n toChipList!: MatChipList;\r\n @ViewChild('ccInput')\r\n ccInput!: ElementRef;\r\n @ViewChild('ccauto')\r\n matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList')\r\n ccChipList!: MatChipList;\r\n @ViewChild('bccInput')\r\n bccInput!: ElementRef;\r\n @ViewChild('bccauto')\r\n matbccAutoComplete!: MatAutocomplete;\r\n @ViewChild('bccChipList')\r\n bccChipList!: MatChipList;\r\n tofilter$!: Observable;\r\n public toMembers: ITransmittalMemberModel[] = [];\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n ccfilter$!: Observable;\r\n ccFilteredMembers!: Observable;\r\n bccMembers: ITransmittalMemberModel[] = [];\r\n bccfilter$!: Observable;\r\n bccFilteredMembers!: Observable;\r\n private _nextPage$ = new Subject();\r\n private _destroyed$ = new Subject();\r\n selectedTo!: number;\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n multiple = false;\r\n public isRevisedDateInvalid!: boolean;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RespondOn: string = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public messageGroupForm!: FormGroup;\r\n public messageContentForm: FormGroup = new FormGroup({\r\n txtMailSubject: new FormControl(),\r\n editor: new FormControl()\r\n });\r\n attachmentsList: IMsgDocumentAttachmentModel[] = [];\r\n constructor(\r\n private _projService: ProjectInfoService,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public memberService: ExternalMemberService,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private notificationService: NotificationService,\r\n private formBuilder: FormBuilder,\r\n private transmittalService: TransmittalService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.inputType = this.data['inputType'];\r\n this.parentMessageId = this.data['selectedMessageId'];\r\n this.messageFormat = 'Mail';\r\n this.numFormat = 'Auto';\r\n this.responseRequired = 'No';\r\n this.createCommunicationForm();\r\n this.transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.masterMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo\r\n };\r\n return transmittalMember;\r\n });\r\n this.masterMemberIds = this.masterMembers.map(x => x.memberId);\r\n this.tofilter$ = this.createSerachFilter('toMembersCtrl');\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.bccfilter$ = this.createSerachFilter('bccMembersCtrl');\r\n this.filterMembers();\r\n this.setMessageResponder();\r\n });\r\n this.getMessageGroupList();\r\n this.getMessage();\r\n this.getMessageElements(this.parentMessageId);\r\n this.GetMessageSerialNo();\r\n this.getMailFromList();\r\n this.getMembers();\r\n this.getSignatureList();\r\n }\r\n createCommunicationForm() {\r\n this.messageGroupForm = this.formBuilder.group({\r\n toMembersCtrl: new FormControl(),\r\n autoMailFrom: new FormControl(),\r\n txtMailFrom: new FormControl(),\r\n ddlMailFrom: new FormControl(),\r\n ccMembersCtrl: new FormControl(),\r\n formMGList: new FormControl('', Validators.required),\r\n bccMembersCtrl: new FormControl(),\r\n toMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n ccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n bccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n txtNoOfDays: new FormControl(),\r\n toMember: new FormControl('', Validators.required),\r\n formToMember: new FormControl('', Validators.required)\r\n });\r\n }\r\n validateMemberSelection(abstractControl: AbstractControl) {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (!!selectedValue) {\r\n selectedValue = selectedValue.map(x => x.memberId);\r\n }\r\n if (selectedValue && !selectedValue.every(member => this.masterMemberIds.includes(member))) {\r\n return { IsError: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n else return null;\r\n }\r\n async getMessage() {\r\n let data = await this.communicationService.getMessageDetails(this.parentMessageId).toPromise();\r\n this.message = data[0];\r\n let messageSubject = \"\";\r\n let text = this.inputType == 'ForwardMail' ? 'FW:' : 'RE:';\r\n if (text.includes('FW:')) {\r\n if (!this.message.messageSubject.startsWith(\"FW:\")) {\r\n messageSubject = text + ' ' + this.message.messageSubject;\r\n this.messageContentForm.controls['editor'].setValue(this.message.messageBody);\r\n }\r\n else {\r\n messageSubject = this.message.messageSubject;\r\n }\r\n }\r\n\r\n if (text.includes('RE:')) {\r\n if (!this.message.messageSubject.startsWith(\"RE:\")) {\r\n messageSubject = text + ' ' + this.message.messageSubject;\r\n }\r\n else {\r\n messageSubject = this.message.messageSubject;\r\n }\r\n }\r\n this.messageContentForm.controls['txtMailSubject'].setValue(messageSubject);\r\n this.mailType = data[0].messageTypeShortDesc;\r\n }\r\n async getMessageElements(messageId: number) {\r\n if (messageId > 0) {\r\n this.messageElements = await this.communicationService.getMessageElementsById(messageId).toPromise();\r\n }\r\n }\r\n async GetMessageSerialNo() {\r\n this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Communication, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n if (this.messageElements.length > 0)\r\n this.elementInp = this.projectElements.filter(x => x.isNumbering).map(x => {\r\n let selectedValue = this.messageElements.find((me: { deId: number; }) => me.deId == x.elementId);\r\n let result: IMsgElementInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: x.sortBy\r\n }\r\n return result;\r\n\r\n });\r\n\r\n let inputModel: IMsgSLNoInputModel = { projectId: this.projectId, groupId: this.groupId, moduleId: Module.Communication, elementDetails: this.elementInp };\r\n this.communicationService.GetMsgSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n // this.msgSerialNo = +result.result;\r\n // let msgNo: string = this.message.messageNumber;\r\n // let msgNoArray = msgNo.split('-');\r\n // let mymsgSerialNo = msgNoArray[msgNoArray.length - 1];\r\n // let msgNo2 = msgNoArray.filter(val => val != mymsgSerialNo).join('-');\r\n // this.messageNo = ((!!msgNo2 && msgNo2.length > 0) ? msgNo2 + \"-\" : '') + String(this.msgSerialNo).padStart(5, '0');\r\n\r\n this.msgSerialNo = +result.result;\r\n this.messageNo = result.successMessage;\r\n });\r\n });\r\n }\r\n public async getMailFromList() {\r\n this.mailFromList = await this.projectMemberLinkService.getSelectedMemberList(this.projectId, this.groupId).toPromise();\r\n }\r\n async getMembers() {\r\n this.membersList = await this.memberService.GetMembersList({ group_Id: this.groupId, member_Id: null }).toPromise();\r\n }\r\n public getSignatureList() {\r\n this.communicationService.GetSignatureList({ MemberId: this.memberId })\r\n .subscribe((res: ISignatureOutputModel[]) => {\r\n this.signatureList = res;\r\n }, err => { });\r\n }\r\n\r\n async setMessageResponder() {\r\n if (this.inputType == 'ForwardMail') {\r\n if (this.mgList.length == 1) {\r\n this.setclear = \"Y\";\r\n }\r\n this.isShowRequired = !this.isShowRequired;\r\n }\r\n let receivers: MessageReceiverOutputModel[] = await this.communicationService.GetMessageReceiverList(this.parentMessageId).toPromise();\r\n if (this.inputType == 'replyMail') {\r\n this.toList = receivers.filter(x => x.receiverType == 1).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.mailTo = this.toList.map(x => x.title).toString();\r\n this.selectedTo = +this.toList.map(x => x.value).toString();\r\n this.messageGroupForm.controls['formToMember'].setValue(this.mailTo);\r\n this.toMembers = this.getTransmittalMembers(this.toList);\r\n if (this.toMembers != null) {\r\n this.toFormMembers?.setValue([...this.toMembers]);\r\n }\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n }\r\n if (this.inputType == 'replyAllMail') {\r\n this.toList = [];\r\n this.toList = receivers.filter(x => x.receiverType == 1).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n this.toMembers = this.getTransmittalMembers(this.toList);\r\n if (this.toMembers != null) {\r\n this.toFormMembers?.setValue([...this.toMembers]);\r\n }\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n this.mailTo = this.toList.map(x => x.title).toString();\r\n this.selectedTo = +this.toList.map(x => x.value).toString();\r\n this.messageGroupForm.controls['formToMember'].setValue(this.mailTo);\r\n this.ccList = receivers.filter(x => x.receiverType == 3).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n\r\n this.ccMembers = this.getTransmittalMembers(this.ccList);\r\n if (this.ccMembers != null) {\r\n this.ccFormMembers?.setValue([...this.ccMembers]);\r\n }\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n this.bccList = receivers.filter(x => x.receiverType == 5).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverGroup != 0,\r\n isActive: true,\r\n groupId: x.receiverGroup,\r\n groupName: x.receiverGroup != 0 ? x.receiverGroupName : \"\"\r\n }\r\n });\r\n }\r\n }\r\n get toFormMembers() {\r\n return this.messageGroupForm.get('toMembers');\r\n }\r\n async getMessageGroupList() {\r\n this.groupList = await this.communicationService.GetMessageGroup({ MemberId: this.memberId, ProjectId: this.projectId }).toPromise();\r\n let mgList1 = this.groupList.map((element => {\r\n return { \"groupId\": element.groupId, \"groupDescription\": element.groupDescription };\r\n }));\r\n this.mgList = mgList1.reduce((accumalator: any, current: any) => {\r\n if (\r\n !accumalator.some(\r\n (item: any) => item.groupId === current.groupId && item.groupDescription === current.groupDescription\r\n )\r\n ) {\r\n accumalator.push(current);\r\n }\r\n return accumalator;\r\n }, []);\r\n\r\n }\r\n\r\n onMGValueChange(event: { text: string; value: any; }, formControlName: string) {\r\n if (formControlName == 'formMGList') {\r\n this.messageGroup = event.text;\r\n }\r\n // this.messageGroupForm.get(formControlName).setValue(event.value);\r\n this.bindMembers(event.value);\r\n }\r\n bindMembers(value: any) {\r\n this.bindGroupList = this.groupList.filter(x => x.groupId == value);\r\n this.toList = this.bindGroupList.filter(x => x.receiverType == 2).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n this.toMembers = this.getTransmittalMembers(this.toList);\r\n if (this.toMembers != null) {\r\n this.toFormMembers?.setValue([...this.toMembers]);\r\n }\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n\r\n this.ccList = this.bindGroupList.filter(x => x.receiverType == 3).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.ccMembers = this.getMGListMembers(this.ccList);\r\n if (this.ccMembers != null) {\r\n this.ccFormMembers?.setValue([...this.ccMembers]);\r\n }\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n\r\n this.bccList = this.bindGroupList.filter(x => x.receiverType == 5).map(x => {\r\n return {\r\n value: x.memberId,\r\n title: x.memberName,\r\n isGroup: x.receiverType != 0,\r\n isActive: true,\r\n groupId: x.groupId,\r\n groupName: x.groupDescription\r\n }\r\n });\r\n\r\n this.bccMembers = this.getMGListMembers(this.bccList);\r\n if (this.bccMembers != null) {\r\n this.bccFormMembers?.setValue([...this.bccMembers]);\r\n }\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n\r\n\r\n private getMGListMembers(members: any[]): ITransmittalMemberModel[] {\r\n return members.map(x => {\r\n let member: ITransmittalMemberModel = {\r\n memberId: x.value,\r\n memberName: x.title,\r\n memberShortName: this.masterMembers.filter(y => y.memberId == x.value)[0].memberShortName,\r\n eMailId: this.masterMembers.filter(y => y.memberId == x.value)[0].eMailId,\r\n staffPSNo: this.masterMembers.filter(y => y.memberId == x.value)[0].staffPSNo,\r\n mobileNo: this.masterMembers.filter(y => y.memberId == x.value)[0].mobileNo,\r\n groupBy: x.receiverGroup\r\n };\r\n return member;\r\n });\r\n }\r\n\r\n private getTransmittalMembers(members: any[]): ITransmittalMemberModel[] {\r\n return members.filter(o => this.masterMembers.some(({ memberId }) => o.member_Id === memberId)).map(x => {\r\n let member: ITransmittalMemberModel = {\r\n memberId: x.value,\r\n memberName: x.title,\r\n memberShortName: this.masterMembers.filter(y => y.memberId == x.value)[0].memberShortName,\r\n eMailId: this.masterMembers.filter(y => y.memberId == x.value)[0].eMailId,\r\n staffPSNo: this.masterMembers.filter(y => y.memberId == x.value)[0].staffPSNo,\r\n mobileNo: this.masterMembers.filter(y => y.memberId == x.value)[0].mobileNo,\r\n groupBy: x.receiverGroup\r\n };\r\n return member;\r\n });\r\n }\r\n\r\n onMessageFormatChange(value: string) {\r\n this.messageFormat = value;\r\n // this.reset();\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n this.getRegisterContent();\r\n }\r\n }\r\n\r\n getRegisterContent() {\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n var futureDate = formatDate(new Date(), 'dd-MM-yyyy', 'en-US');;\r\n this.registermailContent = '






This mail is registered by ';\r\n this.registermailContent += this.commonService.getLoggedInUserName();\r\n this.registermailContent += ' on ';\r\n this.registermailContent += futureDate;\r\n this.messageContentForm.controls['editor'].setValue(this.registermailContent);\r\n }\r\n }\r\n\r\n onNumFormatChange(value: string) {\r\n this.numFormat = value;\r\n }\r\n\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n getSentOnValue(selectedText: { value: string | null; }) {\r\n this.isSentDateInvalid = selectedText.value == null;\r\n if (selectedText.value)\r\n this.SentOn = selectedText.value;\r\n }\r\n setMessageValues(event: { value: any; }, formControlName: string) {\r\n this.messageGroupForm.get(formControlName)?.setValue(event.value);\r\n }\r\n\r\n public showAttachmentList(event: any) {\r\n this.IsShowAttachmentList = !this.IsShowAttachmentList;\r\n this.anchorElementPopup = event.target;\r\n }\r\n\r\n public closeAttachmentList() {\r\n this.IsShowAttachmentList = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n showDocumentCart() {\r\n let obj: any = {}\r\n obj[\"type\"] = \"Select Document\";\r\n if (this.documentList.length > 0) {\r\n obj[\"data\"] = this.documentList;\r\n }\r\n this.IsShowAttachmentList = false;\r\n const dialogRef = this.dialog.open(DocumentMessageViewComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.receivedDoc = res.filter((data: { isSelected: boolean; }) => data.isSelected == true);\r\n Array.prototype.push.apply(this.documentList, this.receivedDoc);\r\n }\r\n else {\r\n if (this.documentList.length < 0) {\r\n this.documentList = [];\r\n }\r\n }\r\n });\r\n }\r\n removeDocument(dataItem: { docId: any; }) {\r\n this.documentList.forEach((value, index) => {\r\n if (value.docId == dataItem.docId) {\r\n this.documentList.splice(index, 1);\r\n }\r\n });\r\n }\r\n showMessageCart() {\r\n let obj: any = {}\r\n obj[\"type\"] = \"Select Message\";\r\n if (this.messageList.length > 0) {\r\n obj[\"data\"] = this.messageList;\r\n }\r\n this.IsShowAttachmentList = false;\r\n const dialogRef = this.dialog.open(DocumentMessageViewComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.receivedDoc = res.filter((data: { isSelected: boolean; }) => data.isSelected == true);\r\n Array.prototype.push.apply(this.messageList, this.receivedDoc);\r\n }\r\n else {\r\n if (this.messageList.length < 0) {\r\n this.messageList = [];\r\n }\r\n }\r\n });\r\n }\r\n removeMessage(dataItem: { messageId: any; }) {\r\n this.messageList.forEach((value, index) => {\r\n if (value.messageId == dataItem.messageId) {\r\n this.messageList.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n openSignaturePopup() {\r\n this.IsShowPopup = false;\r\n const dialogRef = this.dialog.open(SignatureComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw'\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.getSignatureList();\r\n if (res != undefined) {\r\n this.mailContent = this.getFormValue('editor', this.messageContentForm) + res;\r\n }\r\n });\r\n }\r\n selectSignature(sign: { signatureText: any; }) {\r\n this.mailContent = this.getFormValue('editor', this.messageContentForm) + sign.signatureText;\r\n }\r\n public showSignList(event: any) {\r\n if (this.signatureList.length > 0) {\r\n this.IsShowPopup = !this.IsShowPopup;\r\n this.anchorElementPopup = event.target;\r\n }\r\n }\r\n public closeSignList() {\r\n this.IsShowPopup = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n\r\n /* Save */\r\n getMessageInput() {\r\n let docAttachments = this.documentList.map(x => {\r\n let result: IMsgDocumentInputModel = {\r\n memberId: this.memberId,\r\n messageId: 0,\r\n docId: x.docId,\r\n revisionNo: x.revision,\r\n response: 0,\r\n responseRemarks: null,\r\n isActive: true\r\n }\r\n return result;\r\n });\r\n let msgAttachments = this.messageList.map(x => {\r\n let result: IMsgAttachmentInputModel = {\r\n memberId: this.memberId,\r\n messageId: 0,\r\n attachedMessageId: x.messageId,\r\n isActive: true\r\n }\r\n return result;\r\n });\r\n let msgReceivers = this.setMessageReceivers();\r\n let respondBy = this.message.responseType == null ? 0 : this.message.responseType;\r\n let respondOn: string;\r\n if (respondBy > 0) {\r\n var futureDate = new Date();\r\n futureDate.setDate(futureDate.getDate() + respondBy);\r\n respondOn = formatDate(futureDate, 'dd-MM-yyyy', 'en-US');\r\n }\r\n let inputModel: IMessageInputModel = {\r\n CanSendMail: false,\r\n MessageNo: this.messageNo,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n MemberId: this.memberId,\r\n MessageId: this.MessageId,\r\n MsgSerialNo: this.msgSerialNo,\r\n DisciplineId: this.message.disciplineId,\r\n ParentMessageId: this.parentMessageId,\r\n MessageType: this.message.messageType,\r\n HasAttachments: this.documentList.length > 0 || this.messageList.length > 0,\r\n IsConfidential: true,\r\n MessageCategory: this.message.messageCategory + 1,\r\n MessageSubject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n MessageBody: this.mailContent != '' ? this.mailContent : this.getFormValue('editor', this.messageContentForm),\r\n ResponseType: +this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n RespondOn: this.responseRequired == 'No' ? null : this.RespondOn,\r\n IssueReason: 10,\r\n SentOn: (this.messageFormat != 'Register Incoming Message') ? null : this.SentOn,\r\n elementDetails: this.elementInp,\r\n documentAttachments: this.documentList.length > 0 ? docAttachments : [],\r\n messageAttachments: this.messageList.length > 0 ? msgAttachments : [],\r\n messageReceivers: msgReceivers\r\n };\r\n return inputModel;\r\n\r\n }\r\n\r\n saveMessage() {\r\n let inputModel = this.getMessageInput();\r\n if (inputModel != null) {\r\n this.communicationService.InsertMessage(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.updateAttachmentsMessgeId(+res.result);\r\n this.closeDialog();\r\n }\r\n else if (res.successCode == 205) {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n this.updateAttachmentsMessgeId(+res.result);\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n async sendMessage() {\r\n let inputModel = this.getMessageInput();\r\n if (inputModel != null && this.toMembers.length > 0 && this.messageContentForm.valid) {\r\n inputModel.CanSendMail = true;\r\n inputModel.SentOn = this.SentOn;\r\n inputModel.MessageCategory = this.message.messageCategory;\r\n this.communicationService.InsertMessage(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.updateAttachmentsMessgeId(+res.result);\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n setMessageReceivers() {\r\n let receivers: IMsgReceiverInputModel[] = [];\r\n // this.toMembers.push(this.toMember);\r\n if (this.mailType != \"Request For Information\" && this.messageFormat != 'Register Incoming Message') {\r\n receivers.push({\r\n memberId: this.memberId,\r\n messageId: 0,\r\n receiverType: 1,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n } else {\r\n receivers.push({\r\n memberId: this.getFormValue('ddlMailFrom', this.messageGroupForm),\r\n messageId: 0,\r\n receiverType: 1,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n }\r\n if (this.messageFormat == 'Register Incoming Message') {\r\n receivers.push({\r\n memberId: this.memberId,\r\n messageId: 0,\r\n receiverType: 4,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n }\r\n this.toMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 2,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 1,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n this.ccMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 3,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n\r\n this.bccMembers.forEach(x => {\r\n receivers.push({\r\n memberId: x.memberId,\r\n messageId: 0,\r\n receiverType: 5,\r\n receiverGroup: 0,\r\n responseDate: null,\r\n sortBy: 0,\r\n faxCopy: null,\r\n hardCopy: null,\r\n isDeleted: false,\r\n isRead: 'U',\r\n readOn: null,\r\n userId: this.memberId,\r\n isActive: true\r\n });\r\n });\r\n return receivers;\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n private createSerachFilter(formControlName: string): Observable {\r\n // Note: listen for search text changes\r\n let x: any = this.messageGroupForm\r\n if (x)\r\n return x.get(formControlName).valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\"));\r\n else\r\n return new Observable();\r\n }\r\n private filterMembers(): void {\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n this.bccFilteredMembers = this.getFilteredMembers(this.bccfilter$);\r\n this.toFilteredMembers = this.getFilteredMembers(this.tofilter$);\r\n }\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n scan((allMembers, newMembers: any) => allMembers.concat(newMembers), []),\r\n );\r\n }));\r\n }\r\n // Fake backend api\r\n private getMembersFake(startsWith: string, page: number): Observable {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter(option => option.memberName?.toLowerCase().includes(startsWith.toLowerCase()));\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"message\":\r\n this.messageGroupForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n }\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'to':\r\n this.toggleToSelection(member);\r\n break;\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n case 'bcc':\r\n this.togglebccSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n toggleToSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.toMembers != null ? this.toMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.toMembers.splice(index, 1);\r\n this.toFormMembers?.value.splice(index, 1);\r\n this.toFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.toMembers.push(member);\r\n this.toFormMembers?.value.push(member);\r\n this.toFormMembers?.updateValueAndValidity();\r\n this.resetToMemberFilter();\r\n }\r\n }\r\n resetToMemberFilter() {\r\n this.messageGroupForm.get('toMembersCtrl')?.setValue('');\r\n this.toInput.nativeElement.value = '';\r\n this.toInput.nativeElement.blur();\r\n }\r\n removeTo(member: ITransmittalMemberModel): void {\r\n const index = this.toMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.toMembers.splice(index, 1);\r\n if (this.toFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.toFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.toFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetToMemberFilter();\r\n }\r\n }\r\n\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'to':\r\n result = this.toMembers != null ? this.toMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n case 'bcc':\r\n result = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n resetCcMemberFilter() {\r\n this.messageGroupForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.ccMembers.splice(index, 1);\r\n if (this.ccFormMembers?.status != \"VALID\") {\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n togglebccSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.bccMembers != null ? this.bccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.bccMembers.splice(index, 1);\r\n this.bccFormMembers?.value.splice(index, 1);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.bccMembers.push(member);\r\n this.bccFormMembers?.value.push(member);\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n resetbccMemberFilter() {\r\n this.messageGroupForm.get('bccMembersCtrl')?.setValue('');\r\n this.bccInput.nativeElement.value = '';\r\n this.bccInput.nativeElement.blur();\r\n }\r\n\r\n removebcc(member: ITransmittalMemberModel): void {\r\n const index = this.bccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.bccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.bccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.bccFormMembers?.updateValueAndValidity();\r\n this.resetbccMemberFilter();\r\n }\r\n }\r\n // use getter method to access toMembers control value easily\r\n get toMember() {\r\n return this.messageGroupForm.get('toMember');\r\n }\r\n get ccFormMembers() {\r\n return this.messageGroupForm.get('ccMembers');\r\n }\r\n get bccFormMembers() {\r\n return this.messageGroupForm.get('bccMembers');\r\n }\r\n onResponseRequiredChange(value: string) {\r\n this.responseRequired = value;\r\n }\r\n getValue(selectedText: { value: string | null; }) {\r\n this.isRevisedDateInvalid = selectedText.value == null;\r\n if (selectedText.value)\r\n this.RespondOn = selectedText.value;\r\n }\r\n addDays(): any {\r\n let value = this.getFormValue('txtNoOfDays', this.messageGroupForm);\r\n if (!isNaN(value)) {\r\n var futureDate = new Date();\r\n futureDate.setDate(futureDate.getDate() + value);\r\n this.RespondOn = formatDate(futureDate, 'dd-MM-yyyy', 'en-US');;\r\n this.datevalue = futureDate;\r\n return futureDate;\r\n }\r\n else {\r\n this.notificationService.showToast(\"Enter Valid Number\", \"Warning\");\r\n return;\r\n }\r\n\r\n }\r\n clickLocalAttachment() {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, msgId: -1, libraryName: FileUploadLibrary.Communication, createdBy: this.memberId, documents: [{ value: -1, text: this.messageNo, revisionNo: \"\" }], isEditable: false },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n });\r\n }\r\n updateAttachmentsMessgeId(messageId: number) {\r\n if (this.attachmentsList.length > 0) {\r\n let attachedDoc: IMsgAttachmentsModel = { projectId: this.projectId, msgId: messageId, createdBy: this.memberId, messageDocuments: this.attachmentsList }\r\n this.communicationService.updateCommunicationDocsMsgId(attachedDoc).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n deleteFile(rowIndex: number) {\r\n this.attachmentsList.splice(rowIndex, 1);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

New Mail

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Mail\r\n Register Incoming Message\r\n \r\n
\r\n
\r\n
\r\n | \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Message Number |{{messageNo}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n Document

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

Message

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Sent On is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

Response Required

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n No Of Days\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Response Date is required\r\n \r\n \r\n \r\n
\r\n \r\n \r\n To\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Bcc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\" (click)=\"showSignList($event)\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{index+1}}{{sign.signatureName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Documents

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Messages

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Files

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName + '.'+ dataItem.fileExtension}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-search-dialog',\r\n templateUrl: './search-dialog.component.html',\r\n styleUrls: ['./search-dialog.component.css']\r\n})\r\nexport class SearchDialogComponent implements OnInit {\r\n public headerText!: string;\r\n public inputLabel!: string;\r\n public result!: string;\r\n public inputForm: FormGroup = new FormGroup({\r\n ctrlInputText: new FormControl()\r\n });\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.headerText = this.data['headerText'];\r\n this.inputLabel = this.data['inputLabel'];\r\n }\r\n closeDialog() {\r\n this.result = '';\r\n this.dialogRef.close(this.result);\r\n }\r\n\r\n SaveData() {\r\n this.result = this.inputForm.controls['ctrlInputText'].value;\r\n if (this.result != '' && this.result != null) {\r\n this.dialogRef.close(this.result);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n {{headerText}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {{inputLabel}}\r\n \r\n \r\n Title is required\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ISignatureInputModel, ISignatureOutputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\n@Component({\r\n selector: 'app-signature',\r\n templateUrl: './signature.component.html',\r\n styleUrls: ['./signature.component.css']\r\n})\r\nexport class SignatureComponent implements OnInit {\r\n signatureText: string = '';\r\n isNew: boolean = false;\r\n memberId: number = 0;\r\n selectedId: number = 0;\r\n\r\n public signatureList: ISignatureOutputModel[] = [];\r\n public signatureForm: FormGroup = new FormGroup({\r\n editor: new FormControl(),\r\n txtSignatureName: new FormControl(),\r\n });\r\n constructor(private http: HttpClient,\r\n public commonService: CommonService,\r\n private _communicationService: CommunicationService,\r\n private _notificationService: NotificationService,\r\n public dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getSignatureList();\r\n }\r\n\r\n closeDialog(data:any) {\r\n this.dialogRef.close(data);\r\n }\r\n /**\r\n * Get Form Control value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n /**\r\n * Get Signatures List\r\n */\r\n public getSignatureList() {\r\n this._communicationService.GetSignatureList({ MemberId: this.memberId })\r\n .subscribe((res: ISignatureOutputModel[]) => {\r\n this.signatureList = res;\r\n }, err => { });\r\n }\r\n\r\n createSignature() {\r\n this.isNew = true;\r\n }\r\n\r\n saveSignature() {\r\n\r\n let signatureName=this.getFormValue('txtSignatureName', this.signatureForm);\r\nif(!!signatureName){\r\n let inputModel: ISignatureInputModel = {\r\n MemberId: this.memberId,\r\n SignatureId: this.selectedId,\r\n SignatureName: signatureName,\r\n SignatureText: this.getFormValue('editor', this.signatureForm),\r\n IsActive: true\r\n };\r\n this.callService(inputModel);\r\n this.reset();\r\n }\r\n else{\r\n this._notificationService.showToast(\"Please Enter Signature\", \"Warning\");\r\n }\r\n }\r\n\r\n editSignature(sign: any) {\r\n this.isNew = true;\r\n this.reset();\r\n this.selectedId = sign.signatureId;\r\n this.signatureForm.controls['txtSignatureName'].setValue(sign.signatureName);\r\n this.signatureForm.controls['editor'].setValue(sign.signatureText);\r\n }\r\n\r\n deleteSignature(sign: any) {\r\n let inputModel: ISignatureInputModel = {\r\n MemberId: this.memberId,\r\n SignatureId: sign.signatureId,\r\n SignatureName: sign.signatureName,\r\n SignatureText: sign.signatureText,\r\n IsActive: false\r\n };\r\n this.callService(inputModel);\r\n }\r\n\r\n callService(inputModel: ISignatureInputModel) {\r\n this._communicationService.InsertSignature(inputModel).subscribe((res: StandardOutputModel) => {\r\n this.isNew = false;\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n this.getSignatureList();\r\n });\r\n }\r\n reset() {\r\n this.signatureForm.controls['txtSignatureName'].setValue('');\r\n this.signatureForm.controls['editor'].setValue('');\r\n this.selectedId = 0;\r\n\r\n }\r\n\r\n postSignature(){\r\n this.closeDialog(this.getFormValue('editor', this.signatureForm));\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","
\r\n
\r\n

Signature

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Edit Signature
\r\n
|
\r\n
\r\n \r\n New Signature\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Search

\r\n
\r\n
\r\n
\r\n {{index+1}}{{sign.signatureName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
"," \r\nimport { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { IDeleteDocumentInputModel, DrawingInactiveOutputModel, DrawingInactiveInputModel } from 'src/app/ViewModel/DeletedocumentModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DeleteDocumentService } from 'src/app/Service/deletedocument/deletedocument.service';\r\n\r\n@Component({\r\n selector: 'app-Drawing-Inactive-Response',\r\n templateUrl: './Drawing-Inactive-Response.components.html',\r\n styleUrls: ['./Drawing-Inactive-Response.components.css']\r\n})\r\nexport class DrawingInactiveResponseComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n projectId!:number;\r\n groupId !:number;\r\n LoggedInUserGroupId!:number;\r\n LoggedInUserId!:number;\r\n public Search:string=\"Search\";\r\n public update_status!:string;\r\n DrawingForm!: FormGroup;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n RevisionType : string =\"1\";\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Members list against the business group */\r\n public DocumentList: DrawingInactiveOutputModel[] = [];\r\n constructor(public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,private _dialog: MatDialog, private _orgService: OrganizationService, public _formBuilder: FormBuilder,\r\n private _extMemberService: ExternalMemberService, private _notificationService: NotificationService, public commonService: CommonService,\r\n public DeleteDocumentService : DeleteDocumentService) {\r\n if (this.data ) {\r\n this.DocumentList=this.data\r\n }\r\n\r\n }\r\n ngOnInit() {\r\n this.createBusinessGroupForm();\r\n \r\n }\r\n\r\n createBusinessGroupForm() {\r\n this.DrawingForm = this._formBuilder.group({\r\n businessGroup: new FormControl('', [Validators.required]),\r\n Documet_no: new FormControl(),\r\n Documet_title : new FormControl(),\r\n DocumentStatus: new FormControl(true),\r\n\r\n })\r\n }\r\n\r\n \r\n\r\n /**\r\n * Get organization list\r\n */\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n handleHeaderCheckboxEvent(event : any)\r\n {\r\n this.DocumentList.map(x=>x.is_select=event.checked)\r\n }\r\n \r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n getFormValue(controlName: string): any {\r\n return this.DrawingForm.get(controlName)?.value;\r\n}\r\n \r\n}\r\n","
\r\n
\r\n Drawing Activation / Inactivation Response\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_no}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { IDeleteDocumentInputModel, DrawingInactiveOutputModel, DrawingInactiveInputModel } from 'src/app/ViewModel/DeletedocumentModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DeleteDocumentService } from 'src/app/Service/deletedocument/deletedocument.service';\r\nimport { DrawingInactiveResponseComponent } from '../Drawing-Inactive-Response/Drawing-Inactive-Response.components';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-Drawing-Inactive',\r\n templateUrl: './Drawing-Inactive.components.html',\r\n styleUrls: ['./Drawing-Inactive.components.css']\r\n})\r\nexport class DrawingInactiveComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n projectId!: number;\r\n groupId!: number;\r\n LoggedInUserGroupId!: number;\r\n LoggedInUserId!: number;\r\n public Search: string = \"Search\";\r\n public update_status!: string;\r\n public isAdmin: boolean = false;\r\n DrawingForm!: FormGroup;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n disciplineList: undefined | RoleFeatureModel[] = [];\r\n disciplineId!: number | null;\r\n RevisionType: string = \"1\";\r\n clearDisciplineSelected = 'N';\r\n public dedId!: any;\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Members list against the business group */\r\n public DocumentList: DrawingInactiveOutputModel[] = [];\r\n constructor(private _dialog: MatDialog, private _orgService: OrganizationService, public _formBuilder: FormBuilder,\r\n private _extMemberService: ExternalMemberService, private _notificationService: NotificationService, public commonService: CommonService,\r\n public DeleteDocumentService: DeleteDocumentService, public mapRoleFeatureService: MapRoleFeatureService) {\r\n\r\n }\r\n ngOnInit() {\r\n this.LoggedInUserGroupId = this.commonService.getLoggedInUserGroupId();\r\n this.createBusinessGroupForm();\r\n this.projectId = this.commonService.getProjectId();\r\n this.LoggedInUserId = this.commonService.getLoggedInUserId();\r\n this.getDiscipline(this.LoggedInUserGroupId);\r\n this.commonService.getProjectMemberRoles(this.projectId, this.LoggedInUserGroupId, this.LoggedInUserId).subscribe(async (result: any[]) => {\r\n result = result.filter(x => x.role_Desc == 'ISD');\r\n if (result.length > 0) {\r\n this.isAdmin = true;\r\n }\r\n });\r\n }\r\n\r\n createBusinessGroupForm() {\r\n this.DrawingForm = this._formBuilder.group({\r\n businessGroup: new FormControl('', [Validators.required]),\r\n Documet_no: new FormControl(),\r\n Documet_title: new FormControl(),\r\n DocumentStatus: new FormControl(true),\r\n\r\n })\r\n }\r\n\r\n getDocumentList(group?: IOrganizationViewModel) {\r\n\r\n this.DocumentList = [];\r\n let obj: DrawingInactiveInputModel = {\r\n groupId: this.LoggedInUserGroupId,\r\n projectId: this.projectId,\r\n doc_Id: \"\",\r\n status: this.getFormValue('DocumentStatus'),\r\n doc_no: this.getFormValue('Documet_no'),\r\n doc_title: this.getFormValue('Documet_title'),\r\n disciplineId: this.disciplineId\r\n\r\n };\r\n\r\n this.DeleteDocumentService.GetDrawingInactiveDocumentlist(obj).subscribe((data: DrawingInactiveOutputModel[]) => {\r\n if (this.getFormValue('DocumentStatus'))\r\n this.update_status = \"In Active\"\r\n else this.update_status = \"Active\"\r\n this.DocumentList = data;\r\n });\r\n\r\n }\r\n\r\n\r\n UpdateAllDocument() {\r\n let selectedDocIds: number[] = this.DocumentList.filter(x => x.is_select).map(x => x.doc_Id);\r\n\r\n if (selectedDocIds && selectedDocIds.length > 0) {\r\n let obj: DrawingInactiveInputModel = {\r\n groupId: this.LoggedInUserGroupId,\r\n projectId: this.projectId,\r\n doc_Id: selectedDocIds.toString(),\r\n status: (this.update_status == \"Active\" ? true : false),\r\n doc_no: \"\",\r\n doc_title: \"\",\r\n userid: this.LoggedInUserId\r\n };\r\n this._notificationService.showPopup('Are you sure to ' + this.update_status + ' the selected Document', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n // let dialogRef = this.dialog.open(DciSupersedeComponent, {\r\n // panelClass: 'mat-dialog-primary',\r\n // data: this.schDoc,\r\n // autoFocus:false\r\n // });\r\n this.DeleteDocumentService.UpdateDrawingStatus(obj).subscribe((res: DrawingInactiveOutputModel[]) => {\r\n this.Responce(res)\r\n });\r\n }\r\n });\r\n\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please select Document\", \"Warning\");\r\n }\r\n }\r\n UpdateDocument(Document: DrawingInactiveOutputModel) {\r\n let obj: DrawingInactiveInputModel = {\r\n groupId: this.LoggedInUserGroupId,\r\n projectId: this.projectId,\r\n doc_Id: Document.doc_Id.toString(),\r\n status: (this.update_status == \"Active\" ? true : false),\r\n doc_no: \"\",\r\n doc_title: \"\",\r\n userid: this.LoggedInUserId\r\n };\r\n if (!Document.is_select) {\r\n this._notificationService.showToast(\"Please select Document\", \"Warning\");\r\n return;\r\n }\r\n this._notificationService.showPopup('Are you sure to ' + this.update_status + ' the selected Document', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.DeleteDocumentService.UpdateDrawingStatus(obj).subscribe((res: DrawingInactiveOutputModel[]) => {\r\n this.Responce(res)\r\n\r\n });\r\n }\r\n });\r\n }\r\n Responce(res: any[]) {\r\n let dialogRef = this._dialog.open(DrawingInactiveResponseComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: res\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n this.getDocumentList();\r\n });\r\n\r\n }\r\n handleHeaderCheckboxEvent(event: any) {\r\n this.DocumentList.map(x => x.is_select = event.checked)\r\n }\r\n\r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n change(data: any) {\r\n\r\n }\r\n getFormValue(controlName: string): any {\r\n return this.DrawingForm.get(controlName)?.value;\r\n }\r\n async getDiscipline(businessGroupId: number) {\r\n if (!businessGroupId) {\r\n this.disciplineList = [];\r\n return;\r\n }\r\n\r\n this.disciplineList = await this.mapRoleFeatureService.getDedAgainstDe(\"Discipline\", businessGroupId, null, null, 0).toPromise();\r\n }\r\n changeDiscipline(event: EIPAutoCompleteEventModel) {\r\n this.disciplineId = event.value != '-2' ? parseInt(event.value.toString()) : null;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n Active Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Document no or title\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Filter\r\n
\r\n\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{update_status}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On|date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-attribute-master',\r\n templateUrl: './attribute-master.component.html',\r\n styleUrls: ['./attribute-master.component.css']\r\n})\r\nexport class AttributeMasterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

Checking

","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { BusinessGroupLinkService } from 'src/app/Service/businessgroup-link/business-group-link.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { IOrganizationViewModel } from 'src/app/ViewModel/OrganizationModel';\r\nimport { groupBy } from 'lodash';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport * as moment from 'moment';\r\n\r\nconst createFormGroup = (dataItem: { group_Id: any; group_Name: any; group_Short_Name: any; is_Active: any; group_Code: any; group_Logo_URL: any; group_Head_Id: any; user_Id: any; }) => new FormGroup({\r\n 'group_Id': new FormControl(dataItem.group_Id),\r\n 'group_Name': new FormControl(dataItem.group_Name),\r\n 'group_Short_Name': new FormControl(dataItem.group_Short_Name),\r\n 'is_Active': new FormControl(dataItem.is_Active),\r\n 'group_Code': new FormControl(dataItem.group_Code),\r\n 'group_Logo_URL': new FormControl(dataItem.group_Logo_URL),\r\n 'group_Head_Id': new FormControl(dataItem.group_Head_Id),\r\n 'user_Id': new FormControl(dataItem.user_Id),\r\n});\r\n\r\n@Component({\r\n selector: 'app-business-group-link',\r\n templateUrl: './business-group-link.component.html',\r\n styleUrls: ['./business-group-link.component.css']\r\n})\r\nexport class BusinessGroupLinkComponent implements OnInit {\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n\r\n /** Dropdown data */\r\n organizationList !: any| IOrganizationViewModel[];\r\n /** Dropdown Filtered data */\r\n organizationListFiltered!: any| IOrganizationViewModel[];\r\n /** Kendo data */\r\n organizationListAgainstProject: IOrganizationViewModel[] | undefined;\r\n\r\n /** Grouped by GroupName */\r\n groupdByGrpName: any;\r\n\r\n public formGroup: FormGroup | undefined;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n isNew = false;\r\n public pageSize = [5, 10, 20, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n\r\n editedRowIndex !: number;\r\n /** Selected row group id */\r\n editedRowGroupId:any = null;\r\n\r\n isNewRow = false;\r\n\r\n\r\n constructor(\r\n private businessGroupLinkService: BusinessGroupLinkService,\r\n private organisationSerice: OrganizationService,\r\n public notificationService: NotificationService,\r\n public commonService: CommonService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.callApis();\r\n // this.getOrganizationList();\r\n // this.getMappedOrganizationAgainstProject();\r\n }\r\n\r\n\r\n async callApis() {\r\n this.organizationList = await this.organisationSerice.getOrganizationList(undefined||null).toPromise();\r\n /** Both active and inactive */\r\n this.organizationListAgainstProject = await this.businessGroupLinkService.getMappedOrganizationAgainstProject().toPromise();\r\n // assign only active object\r\n //this.organizationListAgainstProject = organisationAllList.filter(eachOrg => eachOrg.is_Active); \r\n this.filterWithDropdownList();\r\n }\r\n\r\n\r\n filterWithDropdownList() {\r\n this.groupdByGrpName = groupBy(this.organizationListAgainstProject, 'group_Name');\r\n\r\n this.organizationListFiltered = [];\r\n this.organizationList.forEach((eachGrp: IOrganizationViewModel) => {\r\n if (!(this.groupdByGrpName[eachGrp.group_Name] && this.groupdByGrpName[eachGrp.group_Name].length)) {\r\n this.organizationListFiltered.push(eachGrp);\r\n }\r\n });\r\n }\r\n\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n addGroup() {\r\n // let newOrganisat\r\n }\r\n\r\n changeActiveStatus(event: { checked: any; }) {\r\n this.formGroup?.get('is_Active')?.setValue(event.checked);\r\n }\r\n\r\n changeGroupName(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.formGroup?.get('group_Id')?.setValue(event.value);\r\n this.formGroup?.get('group_Name')?.setValue(event.text);\r\n } else {\r\n this.formGroup?.get('group_Id')?.setValue(null);\r\n this.formGroup?.get('group_Name')?.setValue('');\r\n }\r\n }\r\n\r\n editRowData(data:any) {\r\n //closing previous row, if anything opened\r\n if (this.editedRowIndex >= 0) {\r\n data.sender.closeRow(this.editedRowIndex);\r\n }\r\n\r\n this.editedRowIndex = data.rowIndex;\r\n this.formGroup = createFormGroup(data.dataItem);\r\n this.isNewRow = false;\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n UpdateRowData(data:any) {\r\n // Group name validation \r\n if (!data.dataItem.group_Name) {\r\n this.notificationService.showToast(\"Select Group name\", \"Warning\");\r\n return;\r\n }\r\n\r\n this.saveBusinessGroupLink();\r\n this.isNewRow = false;\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n cancelRowData(data:any) {\r\n this.isNewRow = false;\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n\r\n addHandler() {\r\n this.isNewRow = true;\r\n this.closeEditor();\r\n this.formGroup = createFormGroup({\r\n group_Id: null,\r\n group_Name: '',\r\n group_Short_Name: '',\r\n is_Active: true,\r\n group_Code: '',\r\n group_Logo_URL: '',\r\n group_Head_Id: null,\r\n user_Id: this.commonService.getLoggedInUserId(),\r\n });\r\n this.isNew = true;\r\n this.grid.addRow(this.formGroup);\r\n }\r\n\r\n public cellClickHandler(data:any): void {\r\n\r\n if (data.isEdited) {\r\n return;\r\n }\r\n this.saveBusinessGroupLink();\r\n this.formGroup = createFormGroup(data.dataItem);\r\n this.editedRowIndex = data.rowIndex;\r\n this.grid.editRow(data.rowIndex, this.formGroup);\r\n }\r\n\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = 0;\r\n this.formGroup = undefined;\r\n }\r\n\r\n\r\n saveBusinessGroupLink() {\r\n\r\n if (this.formGroup) {\r\n let newBusinessGroup: any | IOrganizationViewModel = {\r\n group_Id: this.formGroup.get('group_Id')?.value,\r\n group_Name: this.formGroup.get('group_Name')?.value,\r\n group_Short_Name: this.formGroup.get('group_Short_Name')?.value,\r\n is_Active: this.formGroup.get('is_Active')?.value,\r\n group_Code: this.formGroup.get('group_Code')?.value,\r\n group_Logo_URL: this.formGroup.get('group_Logo_URL')?.value,\r\n group_Head_Id: this.formGroup.get('group_Head_Id')?.value,\r\n user_Id: this.formGroup.get('user_Id')?.value,\r\n }\r\n\r\n this.businessGroupLinkService.saveOrganization(newBusinessGroup.group_Id, newBusinessGroup.group_Head_Id, newBusinessGroup.is_Active).subscribe(data => {\r\n this.notificationService.handleResponse(data);\r\n this.callApis();\r\n // this.getMappedOrganizationAgainstProject();\r\n });\r\n }\r\n this.closeEditor();\r\n\r\n // if(THIS)\r\n }\r\n \r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Code}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Short_Name}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.group_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport * as moment from 'moment';\r\nimport { ChecklistService } from 'src/app/Service/checklist/checklist.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ChecklistItemModel } from 'src/app/ViewModel/ChecklistItemModel';\r\n\r\n\r\nconst createFormGroup = (dataItem: { clDescription: any; clId: any; cliDescription: any; cliId: any; cliShortDescription: any; dependentCLIDescription: any; dependentCLIId: any; isActive: any; isCheck: any; isMandatory: any; revisionNo: any; sortOrder: any; createdBy?: number; dependentCliList: any; }) => new FormGroup({\r\n\t'clDescription': new FormControl(dataItem.clDescription),\r\n\t'clId': new FormControl(dataItem.clId),\r\n\t'cliDescription': new FormControl(dataItem.cliDescription),\r\n\t'cliId': new FormControl(dataItem.cliId),\r\n\t'cliShortDescription': new FormControl(dataItem.cliShortDescription),\r\n\t'dependentCLIDescription': new FormControl(dataItem.dependentCLIDescription),\r\n\t'dependentCLIId': new FormControl(dataItem.dependentCLIId),\r\n\t'isActive': new FormControl(dataItem.isActive),\r\n\t'isCheck': new FormControl(dataItem.isCheck),\r\n\t'isMandatory': new FormControl(dataItem.isMandatory),\r\n\t'sortOrder': new FormControl(dataItem.sortOrder),\r\n\t'revisionNo': new FormControl(dataItem.revisionNo),\r\n\t'dependentCliList': new FormControl(dataItem.dependentCliList),\r\n});\r\n\r\n@Component({\r\n\tselector: 'app-checklist-item',\r\n\ttemplateUrl: './checklist-item.component.html',\r\n\tstyleUrls: ['./checklist-item.component.css']\r\n})\r\n\r\nexport class ChecklistItemComponent implements OnInit {\r\n\r\n\r\n\t@ViewChild(GridComponent)\r\n\tprivate grid!: GridComponent;\r\n\r\n\t@Input() checklistName!: string;\r\n\t@Output() response = new EventEmitter();\r\n\r\n\tenableChkLstItemFilter = false;\r\n\tchecklistItemList: ChecklistItemModel[] = [];\r\n\r\n\tchecklistId!: number;\r\n\tisNew = false;\r\n\teditedRowIndex:number | any ;\r\n\tisNewRow = false;\r\n\tpublic formGroup: FormGroup | any;\r\n\r\n\tsortOrderArr: number[] = [];\r\n\tdependentCliList: {\r\n\t\tdependentCLIDescription: string,\r\n\t\tdependentCLIId: number\r\n\t}[] = [];\r\n\r\n\tconstructor(\r\n\t\tpublic checklistService: ChecklistService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t) {\r\n\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.checklistService.checklistId.subscribe(data => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.checklistId = data;\r\n\t\t\t\tthis.getChecklistItem();\r\n\t\t\t} else {\r\n\t\t\t\tthis.checklistItemList = [];\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetChecklistItem() {\r\n\t\tthis.checklistService.getChecklistItem(this.checklistId).subscribe(data => {\r\n\t\t\tthis.checklistItemList = data;\r\n\t\t\tthis.sortOrderArr = [];\r\n\t\t\tdata.forEach(each => {\r\n\t\t\t\tthis.sortOrderArr.push(each.sortOrder);\r\n\t\t\t});\r\n\t\t\tthis.sortOrderArr.sort();\r\n\r\n\t\t\tif (this.checklistItemList.length) {\r\n\t\t\t\tthis.setDependentCliList();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tsetDependentCliList() {\r\n\t\tthis.dependentCliList = [];\r\n\t\tthis.checklistItemList.forEach(each => {\r\n\t\t\tlet newDependentCli = {\r\n\t\t\t\t'dependentCLIDescription': each.cliDescription,\r\n\t\t\t\t'dependentCLIId': each.cliId,\r\n\t\t\t}\r\n\t\t\tthis.dependentCliList.push(newDependentCli);\r\n\t\t});\r\n\r\n\t\tthis.checklistItemList.forEach(each => {\r\n\t\t\teach['dependentCliList'] = this.dependentCliList.filter(eachFilter => eachFilter.dependentCLIId != each.cliId);\r\n\t\t});\r\n\t}\r\n\r\n\temit() {\r\n\t\tthis.response.emit(\"\");\r\n\t}\r\n\r\n\tchangeDependentCli(event: { value: string; text: any; }) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('dependentCLIId').setValue(event.value);\r\n\t\t\tthis.formGroup.get('dependentCLIDescription').setValue(event.text);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('dependentCLIId').setValue(null);\r\n\t\t\tthis.formGroup.get('dependentCLIDescription').setValue('');\r\n\t\t}\r\n\t}\r\n\r\n\tchangeActiveStatus(event: MatCheckboxChange) {\r\n\t\tthis.formGroup.get('isActive').setValue(event.checked);\r\n\t}\r\n\r\n\tchangeIsCheck(event: MatCheckboxChange) {\r\n\t\tthis.formGroup.get('isCheck').setValue(event.checked);\r\n\t}\r\n\r\n\tchangeIsMandatory(event: MatCheckboxChange) {\r\n\t\tthis.formGroup.get('isMandatory').setValue(event.checked);\r\n\t}\r\n\r\n\teditRowData({ sender, rowIndex, dataItem }:any) {\r\n\r\n\t\t//closing previous row, if anything opened\r\n\t\tif (this.editedRowIndex >= 0) {\r\n\t\t\tsender.closeRow(this.editedRowIndex);\r\n\t\t}\r\n\r\n\t\tlet selectedRowSortOrder = dataItem.sortOrder;\r\n\t\tlet index = this.sortOrderArr.indexOf(selectedRowSortOrder);\r\n\t\tif (index > -1) {\r\n\t\t\tthis.sortOrderArr.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tthis.editedRowIndex = rowIndex;\r\n\t\tthis.formGroup = createFormGroup(dataItem);\r\n\t\tthis.isNewRow = false;\r\n\t\tsender.editRow(rowIndex);\r\n\t}\r\n\r\n\tUpdateRowData({ sender, rowIndex, dataItem } : any) {\r\n\t\tdataItem = this.formGroup.value;\r\n\r\n\t\tif (!dataItem.cliDescription) {\r\n\t\t\tthis.notificationService.showToast('Enter checklist item name', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!dataItem.sortOrder) {\r\n\t\t\tthis.notificationService.showToast('Enter sort order', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.sortOrderArr.includes(dataItem.sortOrder)) {\r\n\t\t\tthis.notificationService.showToast('Sort order already exists', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.saveChecklistItem();\r\n\t\tthis.isNewRow = false;\r\n\t\tsender.closeRow(rowIndex);\r\n\t}\r\n\r\n\tcancelRowData({ sender, rowIndex, dataItem }:any) {\r\n\t\tthis.isNewRow = false;\r\n\t\tsender.closeRow(rowIndex);\r\n\t\tthis.getChecklistItem();\r\n\t}\r\n\r\n\taddHandler() {\r\n\r\n\t\tthis.isNewRow = true;\r\n\t\tthis.closeEditor();\r\n\r\n\t\tlet newSortOrderDefaultValue = this.checklistItemList.length ? (this.checklistItemList.length + 1) : 1;\r\n\r\n\t\tthis.formGroup = createFormGroup({\r\n\t\t\tclDescription: '',\r\n\t\t\tclId: this.checklistId,\r\n\t\t\tcliDescription: '',\r\n\t\t\tcliId: null,\r\n\t\t\tcliShortDescription: '',\r\n\t\t\tdependentCLIDescription: '',\r\n\t\t\tdependentCLIId: null,\r\n\t\t\tisActive: true,\r\n\t\t\tisCheck: false,\r\n\t\t\tisMandatory: false,\r\n\t\t\trevisionNo: null,\r\n\t\t\tsortOrder: newSortOrderDefaultValue,\r\n\t\t\tcreatedBy: this.commonService.getLoggedInUserId(),\r\n\t\t\tdependentCliList: this.dependentCliList\r\n\t\t});\r\n\t\tthis.isNew = true;\r\n\t\tthis.grid.addRow(this.formGroup);\r\n\t}\r\n\r\n\tpublic cellClickHandler({ isEdited, dataItem, rowIndex }:any): void {\r\n\r\n\t\tif (isEdited) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.formGroup = createFormGroup(dataItem);\r\n\t\tthis.editedRowIndex = rowIndex;\r\n\t\tthis.grid.editRow(rowIndex, this.formGroup);\r\n\t}\r\n\r\n\r\n\tpublic cancelHandler(): void {\r\n\t\tthis.closeEditor();\r\n\t}\r\n\r\n\tprivate closeEditor(): void {\r\n\t\tthis.grid.closeRow(this.editedRowIndex);\r\n\r\n\t\tthis.isNew = false;\r\n\t\tthis.editedRowIndex = undefined;\r\n\t\tthis.formGroup = undefined;\r\n\t}\r\n\r\n\tsaveChecklistItem() {\r\n\t\tlet newChecklistItem: ChecklistItemModel = this.formGroup.value;\r\n\r\n\t\t// revision number as 1, by default for new checklist item\r\n\t\tif (this.isNewRow) {\r\n\t\t\tnewChecklistItem.revisionNo = 1;\r\n\t\t}\r\n\t\tnewChecklistItem.createdBy = this.commonService.getLoggedInUserId();\r\n\t\tthis.checklistService.postChecklistItem(newChecklistItem).subscribe(data => {\r\n\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\tthis.getChecklistItem();\r\n\t\t});\r\n\t}\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Check list Items\r\n \r\n for - {{checklistName}}\r\n \r\n

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.cliDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.cliShortDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.dependentCLIDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.sortOrder }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.created_By }}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.modified_By }}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}} \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ChecklistService } from 'src/app/Service/checklist/checklist.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { ChecklistModel } from 'src/app/ViewModel/ChecklistModel';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { CopyBulkChecklist } from '../dialogs/Copy-Bulk-Checklist/Copy_Bulk_Checklist';\r\nimport * as moment from 'moment';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { I } from '@angular/cdk/keycodes';\r\n\r\n\r\nconst createFormGroup = (dataItem: { clDescription: any; clId: any; clShortDescription: any; disciplineDescription: any; disciplineId: any; groupId: any; isActive: any; revisionNo: any; createdBy?: number; buid: any; icid: any; projectId: any; icDescription: any; buDescription: any; projectDescription: any; isClone: any; groupDescription?: any; }) => new FormGroup({\r\n\t'clDescription': new FormControl(dataItem.clDescription),\r\n\t'clId': new FormControl(dataItem.clId),\r\n\t'clShortDescription': new FormControl(dataItem.clShortDescription),\r\n\t'icid': new FormControl(dataItem.icid),\r\n\t'icDescription': new FormControl(dataItem.icDescription),\r\n\t'buid': new FormControl(dataItem.buid),\r\n\t'buDescription': new FormControl(dataItem.buDescription),\r\n\t'groupId': new FormControl(dataItem.groupId),\r\n\t'groupDescription': new FormControl(dataItem.groupDescription),\r\n\t'projectId': new FormControl(dataItem.projectId),\r\n\t'projectDescription': new FormControl(dataItem.projectDescription),\r\n\t'disciplineId': new FormControl(dataItem.disciplineId),\r\n\t'disciplineDescription': new FormControl(dataItem.disciplineDescription),\r\n\t'isActive': new FormControl(dataItem.isActive),\r\n\t'revisionNo': new FormControl(dataItem.revisionNo),\r\n\t'isClone': new FormControl(dataItem.isClone),\r\n});\r\n\r\n@Component({\r\n\tselector: 'app-checklist',\r\n\ttemplateUrl: './checklist.component.html',\r\n\tstyleUrls: ['./checklist.component.css']\r\n})\r\n\r\nexport class ChecklistComponent implements OnInit {\r\n\t@ViewChild(GridComponent)\r\n\tprivate grid!: GridComponent;\r\n\r\n\ticList: RoleFeatureModel[] = [];\r\n\tbuList: RoleFeatureModel[] = [];\r\n\tprojectList: ProjectViewModel[] = [];\r\n\tbusinessGroupList: BusinessGroupModel[] = [];\r\n\tdisciplineList: RoleFeatureModel[] = [];\r\n\r\n\trowIcList: RoleFeatureModel[] = [];\r\n\trowBuList: RoleFeatureModel[] = [];\r\n\trowProjectList: ProjectViewModel[] = [];\r\n\trowBusinessGroupList: BusinessGroupModel[] = [];\r\n\trowDisciplineList: RoleFeatureModel[] = [];\r\n\r\n\tcheckList: ChecklistModel[] = [];\r\n\r\n\ticid: number | null = null;\r\n\tbuid: number | null = null;\r\n\tprojectId: number | null = null;\r\n\tbusinessGroupId: number | null = null;\r\n\tdisciplineId: number | null = null;\r\n\r\n\tenablechkLstFilter = false;\r\n\tenablechkLstFullscreen = false;\r\n\tchecklistName: string | null = '';\r\n\tshowChecklistItem = false;\r\n\tisNew = false;\r\n\teditedRowIndex: number | any;\r\n\tisNewRow = false;\r\n\tdisableActiveSwitch = true;\r\n\r\n\ticIsDisabled: boolean = false;\r\n\tprojectIsDisabled: boolean = false;\r\n\r\n\ticRowIsDisabled: boolean = false;\r\n\tprojectRowIsDisabled: boolean = false;\r\n\r\n\t// clear EIPAutocomplete selected values\r\n\tclearIcSelected = 'N';\r\n\tclearBuSelected = 'N';\r\n\tclearProjectSelected = 'N';\r\n\tclearBusinessGroupSelected = 'N';\r\n\tclearDisciplineSelected = 'N';\r\n\r\n\tpublic formGroup: FormGroup | any;\r\n\r\n\tconstructor(\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic checklistService: ChecklistService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic projectInfoService: ProjectInfoService,\r\n\t\tprivate _dialog: MatDialog,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.getIcList();\r\n\t\tthis.getBuList();\r\n\t\tthis.getProject();\r\n\t\tthis.getBusinessGroup(null);\r\n\t\tthis.getDiscipline(null);\r\n\t\t//this.getCheckList();\r\n\t}\r\n\r\n\tasync getIcList() {\r\n\t\tthis.icList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"IC\").toPromise();\r\n\t}\r\n\r\n\tasync getBuList() {\r\n\t\tif (!this.icid) {\r\n\t\t\tthis.buList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.buList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"BU\").toPromise();\r\n\t}\r\n\r\n\tasync getProject() {\r\n\t\tthis.projectInfoService.getProjectList(this.commonService.getLoggedInUserId()).subscribe((data: ProjectViewModel[]) => {\r\n\t\t\tthis.projectList = data;\r\n\t\t\tif (this.projectList) {\r\n\t\t\t\tthis.projectList.forEach(x => { x.projectDescription = x.projectCode + ' - ' + x.projectDescription });\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tasync getBusinessGroup(projectId: number | null) {\r\n\t\tif (!projectId) {\r\n\t\t\tthis.businessGroupList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data:any) => {\r\n\t\t\tthis.businessGroupList = data.filter((each:any) => each.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\tasync getDiscipline(businessGroupId: number | null) {\r\n\t\tif (!businessGroupId) {\r\n\t\t\tthis.disciplineList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.disciplineList = await this.mapRoleFeatureService.getDedAgainstDe(\"Discipline\", businessGroupId, null, null, 0).toPromise();\r\n\t}\r\n\r\n\tasync getRowIcList() {\r\n\t\tthis.rowIcList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"IC\").toPromise();\r\n\t}\r\n\r\n\tasync getRowBuList(icid: number | null) {\r\n\t\tif (!icid) {\r\n\t\t\tthis.rowBuList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.rowBuList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"BU\").toPromise();\r\n\t}\r\n\r\n\tasync getRowProject() {\r\n\t\tthis.projectInfoService.getProjectList(this.commonService.getLoggedInUserId()).subscribe((data: ProjectViewModel[]) => {\r\n\t\t\tthis.rowProjectList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tasync getRowBusinessGroup(projectId: number | null) {\r\n\t\tif (!projectId) {\r\n\t\t\tthis.rowBusinessGroupList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data:any) => {\r\n\t\t\tthis.rowBusinessGroupList = data.filter((each:any) => each.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\tasync getRowDiscipline(businessGroupId: number | null) {\r\n\t\tif (!businessGroupId) {\r\n\t\t\tthis.rowDisciplineList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.rowDisciplineList = await this.mapRoleFeatureService.getDedAgainstDe(\"Discipline\", businessGroupId, null, null, 0).toPromise();\r\n\t}\r\n\r\n\tchangeIc(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t}\r\n\r\n\t\tthis.buid = this.projectId = this.businessGroupId = this.disciplineId = null;\r\n\t\tthis.icid = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getBuList();\r\n\t\tthis.getCheckList();\r\n\t}\r\n\r\n\tchangeBu(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.projectId = this.businessGroupId = null;\r\n\t\t}\r\n\r\n\t\tthis.buid = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getCheckList();\r\n\t}\r\n\r\n\tchangeProject(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icIsDisabled = true;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t}\r\n\r\n\t\tthis.icid = this.buid = this.businessGroupId = this.disciplineId = null;\r\n\t\tthis.projectId = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getBusinessGroup(this.projectId);\r\n\t\tthis.disciplineList = [];\r\n\t\tthis.getCheckList();\r\n\t}\r\n\r\n\tchangeBusinessGroup(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icid = this.buid = null;\r\n\t\t\tthis.businessGroupId = Number(event.value);\r\n\t\t\tthis.getDiscipline(this.businessGroupId);\r\n\t\t\tthis.getCheckList();\r\n\t\t} else {\r\n\t\t\tthis.businessGroupId = null;\r\n\t\t\tthis.disciplineId = null;\r\n\t\t\tthis.disciplineList = [];\r\n\t\t\tthis.getDiscipline(null);\r\n\t\t\tthis.getCheckList();\r\n\t\t}\r\n\t}\r\n\r\n\tchangeDiscipline(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.disciplineId = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getCheckList();\r\n\t}\r\n\r\n\tasync getCheckList() {\r\n\t\tif (!this.icid && !this.buid && !this.projectId && !this.businessGroupId && !this.disciplineId) {\r\n\t\t\tthis.checkList = [];\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.checkList = await this.checklistService.getChecklist(this.businessGroupId, this.disciplineId, this.buid, this.icid, this.projectId).toPromise();\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enablechkLstFilter = !this.enablechkLstFilter;\r\n\t}\r\n\r\n\ttoggleChklstFullscreen() {\r\n\t\tthis.enablechkLstFullscreen = !this.enablechkLstFullscreen\r\n\t}\r\n\r\n\tsetForChecklist(event?: any) {\r\n\t\tthis.showChecklistItem = false;\r\n\t\tthis.checklistName = null;\r\n\t\t//this.clearSelectedFilter();\r\n\t\tthis.getCheckList();\r\n\t}\r\n\r\n\teditRowData({ sender, rowIndex, dataItem }: any) {\r\n\t\tthis.checkAnyChecklistItemsIsActive(dataItem);\r\n\r\n\t\t//closing previous row, if anything opened\r\n\t\tif (this.editedRowIndex >= 0) {\r\n\t\t\tsender.closeRow(this.editedRowIndex);\r\n\t\t}\r\n\r\n\t\tthis.editedRowIndex = rowIndex;\r\n\t\tthis.formGroup = createFormGroup(dataItem);\r\n\t\tthis.isNewRow = false;\r\n\t\tthis.rowDisciplineList = [];\r\n\r\n\t\tthis.getRowIcList();\r\n\t\tthis.getRowBuList(null);\r\n\t\tthis.getRowProject();\r\n\t\tthis.getRowBusinessGroup(null);\r\n\t\tthis.getRowDiscipline(null);\r\n\r\n\t\tsender.editRow(rowIndex);\r\n\t}\r\n\tasync CopyRowData({ sender, rowIndex, dataItem }: any) {\r\n\r\n\t\t//closing previous row, if anything opened\r\n\t\tif (this.editedRowIndex >= 0) {\r\n\t\t\tsender.closeRow(this.editedRowIndex);\r\n\t\t}\r\n\r\n\t\tthis.editedRowIndex = rowIndex;\r\n\t\tdataItem.isClone = true;\r\n\t\tthis.formGroup = createFormGroup(dataItem);\r\n\r\n\t\tthis.isNewRow = true;\r\n\t\tthis.rowDisciplineList = [];\r\n\r\n\t\tthis.getRowIcList();\r\n\t\tthis.getRowBuList(null);\r\n\t\tthis.getRowProject();\r\n\t\tthis.getRowBusinessGroup(null);\r\n\t\tthis.getRowDiscipline(null);\r\n\t\tsender.editRow(rowIndex);\r\n\t}\r\n\r\n\tasync checkAnyChecklistItemsIsActive(dataItem: ChecklistModel) {\r\n\t\tlet checklistItems:any = await this.checklistService.getChecklistItem(dataItem.clId).toPromise();\r\n\t\tlet isAnyOneIsTrue = false;\r\n\t\tfor (let i = 0; i < checklistItems.length; i++) {\r\n\t\t\tif (checklistItems[i].isActive) {\r\n\t\t\t\tisAnyOneIsTrue = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.disableActiveSwitch = isAnyOneIsTrue;\r\n\t}\r\n\r\n\tUpdateRowData({ sender, rowIndex, dataItem }: any) {\r\n\t\tlet newChecklist: ChecklistModel = this.formGroup.value;\r\n\r\n\t\tif (!newChecklist.clDescription) {\r\n\t\t\tthis.notificationService.showToast('Enter checklist name', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!newChecklist.icid && !newChecklist.buid && !newChecklist.projectId && !newChecklist.groupId && !newChecklist.disciplineId) {\r\n\t\t\tthis.notificationService.showToast('Please select either IC or BU or Project or Business Group or Discipline', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.saveChecklist();\r\n\t\tthis.isNewRow = false;\r\n\t\tsender.closeRow(rowIndex);\r\n\t}\r\n\r\n\tcancelRowData({ sender, rowIndex, dataItem }: any) {\r\n\t\tthis.isNewRow = false;\r\n\t\tsender.closeRow(rowIndex);\r\n\t}\r\n\r\n\taddHandler() {\r\n\t\tthis.isNewRow = true;\r\n\t\tthis.closeEditor();\r\n\t\tthis.formGroup = createFormGroup({\r\n\t\t\tclDescription: '',\r\n\t\t\tclId: null,\r\n\t\t\tclShortDescription: '',\r\n\t\t\tdisciplineDescription: '',\r\n\t\t\tdisciplineId: null,\r\n\t\t\tgroupId: null,\r\n\t\t\tisActive: true,\r\n\t\t\trevisionNo: null,\r\n\t\t\tcreatedBy: this.commonService.getLoggedInUserId(),\r\n\t\t\tbuid: null,\r\n\t\t\ticid: null,\r\n\t\t\tprojectId: null,\r\n\t\t\ticDescription: '',\r\n\t\t\tbuDescription: '',\r\n\t\t\tprojectDescription: '',\r\n\t\t\tisClone: false\r\n\t\t});\r\n\t\tthis.isNew = true;\r\n\r\n\t\tthis.getRowIcList();\r\n\t\tthis.getRowBuList(null);\r\n\t\tthis.getRowProject();\r\n\t\tthis.getRowBusinessGroup(null);\r\n\t\tthis.getRowDiscipline(null);\r\n\r\n\t\tthis.grid.addRow(this.formGroup);\r\n\t}\r\n\r\n\tpublic cellClickHandler({ isEdited, dataItem, rowIndex }: any): void {\r\n\t\tif (isEdited) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.formGroup = createFormGroup(dataItem);\r\n\t\tthis.editedRowIndex = rowIndex;\r\n\t\tthis.grid.editRow(rowIndex, this.formGroup);\r\n\t}\r\n\r\n\tviewChecklistItem(dataItem: ChecklistModel) {\r\n\t\tthis.checklistName = dataItem.clDescription;\r\n\t\tthis.checklistService.checklistId.next(dataItem.clId);\r\n\t\tthis.showChecklistItem = true;\r\n\t}\r\n\r\n\tchangeActiveStatus(event: MatCheckboxChange) {\r\n\t\tthis.formGroup.get('isActive').setValue(event.checked);\r\n\t}\r\n\r\n\tpublic cancelHandler(): void {\r\n\t\tthis.closeEditor();\r\n\t}\r\n\r\n\tprivate closeEditor(): void {\r\n\t\tthis.grid.closeRow(this.editedRowIndex);\r\n\r\n\t\tthis.isNew = false;\r\n\t\tthis.editedRowIndex = undefined;\r\n\t\tthis.formGroup = undefined;\r\n\t}\r\n\r\n\tsetRowIc(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icRowIsDisabled = false;\r\n\t\t\tthis.projectRowIsDisabled = true;\r\n\t\t\tthis.formGroup.get('icid').setValue(event.value);\r\n\t\t\tthis.formGroup.get('icDescription').setValue(event.text);\r\n\t\t\tthis.formGroup.get('buid').setValue(null);\r\n\t\t\tthis.formGroup.get('buDescription').setValue('');\r\n\t\t\tthis.getRowBuList(Number(event.value));\r\n\t\t} else {\r\n\t\t\tthis.icRowIsDisabled = false;\r\n\t\t\tthis.projectRowIsDisabled = false;\r\n\t\t\tthis.formGroup.get('icid').setValue(null);\r\n\t\t\tthis.formGroup.get('icDescription').setValue('');\r\n\t\t\tthis.formGroup.get('buid').setValue(null);\r\n\t\t\tthis.formGroup.get('buDescription').setValue('');\r\n\t\t\tthis.getRowBuList(null);\r\n\t\t}\r\n\t}\r\n\r\n\tsetRowBu(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('buid').setValue(event.value);\r\n\t\t\tthis.formGroup.get('buDescription').setValue(event.text);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('buid').setValue(null);\r\n\t\t\tthis.formGroup.get('buDescription').setValue('');\r\n\t\t}\r\n\t}\r\n\r\n\tsetRowProject(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icRowIsDisabled = true;\r\n\t\t\tthis.projectRowIsDisabled = false;\r\n\t\t\tthis.formGroup.get('projectId').setValue(event.value);\r\n\t\t\tthis.formGroup.get('projectDescription').setValue(event.text);\r\n\t\t\tthis.formGroup.get('groupId').setValue(null);\r\n\t\t\tthis.formGroup.get('groupDescription').setValue('');\r\n\t\t\tthis.formGroup.get('disciplineId').setValue(null);\r\n\t\t\tthis.formGroup.get('disciplineDescription').setValue('');\r\n\t\t\tthis.getRowBusinessGroup(Number(event.value));\r\n\t\t\tthis.getRowDiscipline(null);\r\n\t\t} else {\r\n\t\t\tthis.icRowIsDisabled = false;\r\n\t\t\tthis.projectRowIsDisabled = false;\r\n\t\t\tthis.formGroup.get('projectId').setValue(null);\r\n\t\t\tthis.formGroup.get('projectDescription').setValue('');\r\n\t\t\tthis.formGroup.get('groupId').setValue(null);\r\n\t\t\tthis.formGroup.get('groupDescription').setValue('');\r\n\t\t\tthis.formGroup.get('disciplineId').setValue(null);\r\n\t\t\tthis.formGroup.get('disciplineDescription').setValue('');\r\n\t\t\tthis.getRowDiscipline(null);\r\n\t\t\tthis.getRowBusinessGroup(null);\r\n\t\t}\r\n\t}\r\n\r\n\tasync setRowBusiessGrp(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('groupId').setValue(event.value);\r\n\t\t\tthis.formGroup.get('groupDescription').setValue(event.text);\r\n\t\t\tthis.formGroup.get('disciplineId').setValue(null);\r\n\t\t\tthis.formGroup.get('disciplineDescription').setValue('');\r\n\t\t\tthis.getRowDiscipline(Number(event.value));\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('groupId').setValue(null);\r\n\t\t\tthis.formGroup.get('groupDescription').setValue('');\r\n\t\t\tthis.formGroup.get('disciplineId').setValue(null);\r\n\t\t\tthis.formGroup.get('disciplineDescription').setValue('');\r\n\t\t\tthis.getRowDiscipline(null);\r\n\t\t}\r\n\t}\r\n\r\n\tsetRowDiscipline(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('disciplineId').setValue(event.value);\r\n\t\t\tthis.formGroup.get('disciplineDescription').setValue(event.text);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('disciplineId').setValue(null);\r\n\t\t\tthis.formGroup.get('disciplineDescription').setValue('');\r\n\t\t}\r\n\t}\r\n\r\n\tsaveChecklist() {\r\n\t\tif (this.formGroup) {\r\n\t\t\tlet newChecklist: ChecklistModel = this.formGroup.value;\r\n\r\n\r\n\t\t\tnewChecklist.createdBy = this.commonService.getLoggedInUserId();\r\n\t\t\t// revision number as 1, by default for new checklist\r\n\t\t\tif (this.isNewRow) {\r\n\t\t\t\tnewChecklist.revisionNo = 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.checklistService.postChecklist(newChecklist).subscribe((data:any) => {\r\n\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t\tthis.getCheckList();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tBulkCopyCheckist() {\r\n\t\tconst dialogRef = this._dialog.open(CopyBulkChecklist, {\r\n\t\t\tpanelClass: 'mat-dialog-primary',\r\n\t\t\twidth: '900px',\r\n\t\t\tdata: { IprojectList: this.projectList }\r\n\t\t});\r\n\t\tdialogRef.afterClosed().subscribe((res: any) => {\r\n\t\t\tif (res) {\r\n\t\t\t\tlet resproject: any = res.project;\r\n\t\t\t\tif (res.response && res.response.successCode == 200) {\r\n\r\n\t\t\t\t\tthis.notificationService.showToast(res.response.successMessage, \"Success\");\r\n\t\t\t\t}\r\n\t\t\t\telse if (res.response.successCode == 205) {\r\n\t\t\t\t\tthis.notificationService.showToast(res.response.successMessage, \"Warning\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, (err:any) => { });\r\n\t}\r\n\r\n\r\n\r\n\tclearSelectedFilter() {\r\n\t\tthis.clearIcSelected = this.clearBuSelected = this.clearProjectSelected = this.clearBusinessGroupSelected = this.clearDisciplineSelected = 'Y';\r\n\t\tthis.icid = this.buid = this.projectId = this.businessGroupId = this.disciplineId = null;\r\n\t\tthis.icIsDisabled = this.projectIsDisabled = false;\r\n\t}\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Clear Filter\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.clDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.clShortDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ dataItem.icDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ dataItem.buDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ dataItem.projectDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ dataItem.groupDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ dataItem.disciplineDescription }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { AttributeMasterComponent } from './attribute-master/attribute-master.component';\r\nimport { ChecklistComponent } from './checklist/checklist.component';\r\nimport { ChecklistItemComponent } from './checklist-item/checklist-item.component';\r\nimport { MapRoleFeatureComponent } from './map-role-feature/map-role-feature.component';\r\nimport { MemberRoleLinkComponent } from './member-role-link/member-role-link.component';\r\nimport { ElementLinkComponent } from './element-link/element-link.component';\r\nimport { ElementDetailsLinkComponent } from './element-details-link/element-details-link.component';\r\nimport { BusinessGroupLinkComponent } from './business-group-link/business-group-link.component';\r\nimport { MemberElementDetailLinkComponent } from './member-element-detail-link/member-element-detail-link.component';\r\nimport { ProjectMemberLinkComponent } from './project-member-link/project-member-link.component';\r\nimport { DelegateAccessComponent } from './delegate-access/delegate-access.component';\r\nimport { MenuRoleLinkComponent } from './menu-role-link/menu-role-link.component';\r\nimport { ProjectTenderLinkComponent } from './project-tender-link/project-tender-link/project-tender-link.component';\r\nimport { DocumentRevisionLinkComponent } from './document-revision-link/document-revision-link.component';\r\nimport { DeleteDocumentComponents } from './delete-documents/delete-document.components';\r\nimport { DrawingInactiveComponent } from './Drawing-Inactive/Drawing-Inactive.components';\r\nimport { projectworkflowstatusComponent } from './project-workflow-status/projectworkflowstatus.component';\r\nimport { NumberConfigurationComponent } from './number-configuration/number-configuration.component';\r\n\r\nexport const configurationRoutes: Routes = [\r\n { path: 'attribute', component: AttributeMasterComponent, },\r\n { path: 'map-role-features', component: MapRoleFeatureComponent, data: { title: 'ROLE FEATURES LINK', isProjectCodeRequired: true } },\r\n { path: 'member-role-link', component: MemberRoleLinkComponent, data: { title: 'ROLE MEMBERS LINK', isProjectCodeRequired: true } },\r\n { path: 'element-link', component: ElementLinkComponent, data: { title: 'ELEMENT LINK', isProjectCodeRequired: true } },\r\n { path: 'member-element-detail-link', component: MemberElementDetailLinkComponent, data: { title: 'MEMBER ELEMENT DETAILS LINK', isProjectCodeRequired: true } },\r\n { path: 'element-details-link', component: ElementDetailsLinkComponent, data: { title: 'ELEMENT DETAILS LINK', isProjectCodeRequired: true }, },\r\n { path: 'checklist', component: ChecklistComponent, data: { title: 'CHECK LIST', isProjectCodeRequired: false } },\r\n { path: 'checklist-item', component: ChecklistItemComponent, data: { title: 'CHECK LIST ITEM', isProjectCodeRequired: false } },\r\n { path: 'business-group-link', component: BusinessGroupLinkComponent, data: { title: 'ORGANIZATION LINK', isProjectCodeRequired: true } },\r\n { path: 'project-member-link', component: ProjectMemberLinkComponent, data: { title: 'PROJECT MEMBER LINK', isProjectCodeRequired: true }, },\r\n { path: 'delegate-access', component: DelegateAccessComponent, data: { title: 'DELEGATE ACCESS', isProjectCodeRequired: true }, },\r\n { path: 'menu-role-link', component: MenuRoleLinkComponent, data: { title: 'ROLE MENU LINK', isProjectCodeRequired: true } },\r\n { path: 'project-tender-quantity-link', component: ProjectTenderLinkComponent, data: { title: 'PROJECT TENDER QUANTITY LINK', isProjectCodeRequired: true } },\r\n { path: 'document-revision-link', component: DocumentRevisionLinkComponent, data: { title: 'DOCUMENT REVISION LINK', isProjectCodeRequired: true } },\r\n { path: 'delete-document', component: DeleteDocumentComponents, data: { title: 'DOCUMENT ACTIVATION / DELETION', isProjectCodeRequired: true } },\r\n { path: 'drawing-inactive', component: DrawingInactiveComponent, data: { title: 'DRAWING INACTIVE', isProjectCodeRequired: true } },\r\n { path: 'project-workflow-status', component: projectworkflowstatusComponent, data: { title: 'PROJECT WORKFLOW STATUS', isProjectCodeRequired: false } },\r\n { path: 'numberconfiguration', component: NumberConfigurationComponent, data: { title: 'NUMBER CONFIGURATION', isProjectCodeRequired: true } },\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(configurationRoutes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class ConfigurationRoutingModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MemberRoleLinkService } from 'src/app/Service/member-role-link/member-role-link.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { IDelegateAccessViewModel } from 'src/app/ViewModel/DelegateAccessModel';\r\nimport { DelegateAccessService } from 'src/app/Service/delegate-access/delegate-access.service';\r\nimport * as moment from 'moment';\r\n\r\nconst createFormGroup = (dataItem: { projectId: any; memberId: any; memberName?: string; delegatedMemberId: any; delegatedMemberName: any; fromDate: any; toDate: any; isActive: any; }) => new FormGroup({\r\n 'projectId': new FormControl(dataItem.projectId),\r\n 'memberId': new FormControl(dataItem.memberId),\r\n 'delegatedMemberName': new FormControl(dataItem.delegatedMemberName),\r\n 'delegatedMemberId': new FormControl(dataItem.delegatedMemberId),\r\n 'fromDate': new FormControl(dataItem.fromDate, Validators.required),\r\n 'toDate': new FormControl(dataItem.toDate, Validators.required),\r\n 'isActive': new FormControl(dataItem.isActive),\r\n\r\n});\r\n@Component({\r\n selector: 'app-delegate-access',\r\n templateUrl: './delegate-access.component.html',\r\n styleUrls: ['./delegate-access.component.css']\r\n})\r\nexport class DelegateAccessComponent implements OnInit {\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n public memberList: ReadonlyArray = [];\r\n public fromMemberList: ReadonlyArray = [];\r\n public toMemberList: ReadonlyArray = [];\r\n\r\n\r\n public delegateaccesslist: any | any[] = [];\r\n\r\n public formGroup: FormGroup | undefined;\r\n private editedRowIndex!: any | number;\r\n public start = new Date();\r\n public end = new Date();\r\n public selectedFromMemberId: string | number | null = 0;\r\n public selectedMemberId: string | number | null = 0;\r\n public selectedMember: string = '';\r\n isNew = false;\r\n isNewRow = false;\r\n isAdmin = false;\r\n fromDates: any | Map = new Map();\r\n toDates: any | Map = new Map();\r\n memberId: number = 0;\r\n projectId!: number;\r\n groupId: number = 0;\r\n\r\n\r\n /** Selected row id */\r\n editedRowId: any = null;\r\n editedRowMemberId: any = null;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n public pageSize = [20, 50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n\r\n constructor(\r\n private memberRoleLinkService: MemberRoleLinkService,\r\n private commonService: CommonService,\r\n private delegateAccessService: DelegateAccessService,\r\n private notificationService: NotificationService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe(async (result: any[]) => {\r\n result = result.filter(x => x.role_Desc == 'ISD');\r\n if (result.length > 0) {\r\n this.isAdmin = true;\r\n }\r\n });\r\n this.callApis();\r\n }\r\n\r\n callApis() {\r\n var date = new Date();\r\n this.start = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.end = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n this.getMemberList();\r\n this.getDelegateAccessList();\r\n }\r\n\r\n public async getMemberList() {\r\n this.memberList = await this.memberRoleLinkService.getMembersList(this.projectId, this.groupId).toPromise();\r\n if (this.isAdmin) {\r\n this.fromMemberList = this.memberList;\r\n this.toMemberList = this.memberList;\r\n }\r\n else {\r\n this.fromMemberList = this.memberList.filter(data => data.memberId == this.memberId);\r\n this.toMemberList = this.memberList.filter(data => data.memberId != this.memberId);\r\n }\r\n }\r\n\r\n getDelegateAccessList() {\r\n this.delegateAccessService.getDelegateAccessList().subscribe((data: any[]) => {\r\n this.delegateaccesslist = data;\r\n this.delegateaccesslist.map((x: any, index: any) => {\r\n x.index = index;\r\n this.fromDates[index] = new Date(x.fromDate);\r\n this.toDates[index] = new Date(x.toDate);\r\n });\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n changeActiveStatus(event: any) {\r\n this.formGroup?.get('isActive')?.setValue(event);\r\n }\r\n\r\n changeMember(event: { value: string | number; text: string; }) {\r\n\r\n if (event.value != '-2') {\r\n this.selectedMemberId = event.value;\r\n this.selectedMember = event.text;\r\n } else {\r\n this.selectedMemberId = null\r\n this.selectedMember = '';\r\n\r\n }\r\n }\r\n\r\n changeFromMember(event: { value: string | number; }) {\r\n if (event.value != '-2') {\r\n this.selectedFromMemberId = event.value;\r\n } else {\r\n this.selectedFromMemberId = null\r\n }\r\n }\r\n\r\n\r\n editRowData(data: any) {\r\n //closing previous row, if anything opened\r\n if (this.editedRowIndex >= 0) {\r\n data.sender.closeRow(this.editedRowIndex);\r\n }\r\n this.editedRowIndex = data.rowIndex;\r\n this.formGroup = createFormGroup(data.dataItem);\r\n this.selectedMemberId = data.dataItem.delegatedMemberId;\r\n this.selectedMember = data.dataItem.delegatedMemberName;\r\n this.selectedFromMemberId = data.dataItem.memberId;\r\n this.start = data.dataItem.fromDate;\r\n this.end = data.dataItem.toDate;\r\n this.isNewRow = false;\r\n this.formGroup.get('isActive')?.setValue(data.dataItem.isActive);\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n UpdateRowData(data: any) {\r\n this.saveDelegateAccess();\r\n this.isNewRow = false;\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n cancelRowData(data: any) {\r\n this.isNewRow = false;\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n addHandler() {\r\n this.isNewRow = true;\r\n this.closeEditor();\r\n this.formGroup = createFormGroup({\r\n projectId: this.projectId,\r\n memberId: 0,\r\n memberName: '',\r\n delegatedMemberId: 0,\r\n delegatedMemberName: '',\r\n fromDate: '',\r\n toDate: '',\r\n isActive: true,\r\n });\r\n this.isNew = true;\r\n this.grid.addRow(this.formGroup);\r\n }\r\n\r\n\r\n public cellClickHandler(data: any): void {\r\n if (data.isEdited) {\r\n return;\r\n }\r\n this.saveDelegateAccess();\r\n this.formGroup = createFormGroup(data.dataItem);\r\n this.editedRowIndex = data.rowIndex;\r\n this.grid.editRow(data.rowIndex, this.formGroup);\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n /**\r\n*\r\n* Add/Update Delegate Access API Call\r\n*/\r\n private saveDelegateAccess(): void {\r\n\r\n if (new Date(this.end) < new Date(this.start)) {\r\n this.notificationService.showToast(\"Invalid Date Range\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (this.selectedFromMemberId != this.selectedMemberId) {\r\n if (this.formGroup) {\r\n let inputmodel: any | IDelegateAccessViewModel = {\r\n 'projectId': this.projectId,\r\n 'delegatedMemberName': this.selectedMember,\r\n 'memberId': this.selectedFromMemberId,\r\n 'delegatedMemberId': this.selectedMemberId,\r\n 'fromDate': (moment(this.start)).format('DD/MM/YYYY'),\r\n 'toDate': (moment(this.end)).format('DD/MM/YYYY'),\r\n 'isActive': this.formGroup.get('isActive')?.value,\r\n 'userId': this.memberId,\r\n };\r\n this.delegateAccessService.addDelegateAccess(inputmodel).subscribe((res: StandardOutputModel) => {\r\n this.notificationService.handleResponse(res);\r\n this.callApis();\r\n });\r\n this.closeEditor();\r\n }\r\n }\r\n else {\r\n this.notificationService.showToast(\"Can't be able to delegate the same person\", \"Warning\");\r\n return;\r\n }\r\n\r\n }\r\n /**\r\n *\r\n * @param selectedText\r\n */\r\n getFromDateValue(selectedText: any) {\r\n selectedText.value == null;\r\n this.start = selectedText.value;\r\n }\r\n\r\n getToDateValue(selectedText: any) {\r\n selectedText.value == null;\r\n this.end = selectedText.value;\r\n }\r\n getTimeValue(selectedText: any) {\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{dataItem.memberName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.delegatedMemberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.delegatedMemberName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.fromDate | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.toDate | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","\r\n\r\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { DrawingInactiveInputModel, DrawingInactiveOutputModel, IDeleteDocumentInputModel, IDeleteDocumentOutputModel } from 'src/app/ViewModel/DeletedocumentModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DeleteDocumentService } from 'src/app/Service/deletedocument/deletedocument.service';\r\nimport { ScheduleWorkflowhistoryComponent } from '../../engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component';\r\nimport { State } from '@progress/kendo-data-query';\r\nimport { DeleteDocumentResponseComponent } from '../dialogs/Delete-Document-Response/Delete-Document-Response.components';\r\nimport { DrawingInactiveResponseComponent } from \"../Drawing-Inactive-Response/Drawing-Inactive-Response.components\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { MapRoleFeatureService } from \"src/app/Service/map-role-feature/map-role-feature.service\";\r\nimport { BusinessGroupModel } from \"src/app/ViewModel/BusinessGroupModel\";\r\n\r\n@Component({\r\n selector: 'app-delete-documents',\r\n templateUrl: './delete-document.components.html',\r\n styleUrls: ['./delete-document.components.css']\r\n})\r\nexport class DeleteDocumentComponents implements OnInit, OnDestroy {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n projectId: number | undefined;\r\n groupId: number | null | undefined;\r\n public state: State = {\r\n skip: 0,\r\n take: 5,\r\n\r\n // Initial filter descriptor\r\n filter: {\r\n logic: 'and',\r\n filters: []\r\n }\r\n };\r\n RevisionType: string = \"1\";\r\n public pageSize = [15, 30, 50, 100, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n\r\n /**Members list against the business group */\r\n public DocumentList: IDeleteDocumentOutputModel[] = [];\r\n\r\n selectedOption: string = 'Active';\r\n CanDeleteDocumentPermanently: boolean = false;\r\n CanRecoverDocument: boolean = false;\r\n CanDeleteDocument: boolean = false;\r\n subscriptions: Subscription[] = [];\r\n /** Business Group List */\r\n private businessGroupList: ReadonlyArray = [];\r\n\r\n constructor(private _dialog: MatDialog, private _notificationService: NotificationService, public commonService: CommonService, public _DeleteDocumentService: DeleteDocumentService, private _ResdialogRef: MatDialog, private mapRoleFeatureService: MapRoleFeatureService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.getDocumentList();\r\n this.enableMemberRoleFeatures();\r\n this.getBusinessGroups(this.commonService.getProjectId());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n enableMemberRoleFeatures() {\r\n let _getProjectMemberFeatures = this.commonService.getProjectMemberFeatures(this.projectId, this.commonService.getLoggedInUserId(), this.groupId).subscribe((res: any[]) => {\r\n this.CanDeleteDocumentPermanently = res.some(data => data.feature_Desc == 'Delete Document Permanently');\r\n this.CanRecoverDocument = res.some(data => data.feature_Desc == 'Recover Document');\r\n this.CanDeleteDocument = res.some(data => data.feature_Desc == 'Delete');\r\n });\r\n this.subscriptions.push(_getProjectMemberFeatures);\r\n }\r\n\r\n changeButtonToggle(event: any) {\r\n this.selectedOption = event.value;\r\n this.RevisionType = (event.value == 'Active') ? '1' : '2';\r\n this.getDocumentList();\r\n }\r\n\r\n /**\r\n* Get Business Group list\r\n* @param _projectId \r\n*/\r\n getBusinessGroups(_projectId: number) {\r\n this.mapRoleFeatureService.getBusinessGroups(_projectId).subscribe((data: any) => {\r\n this.businessGroupList = data.filter((eachData: any) => eachData.is_Active);\r\n });\r\n }\r\n\r\n /**\r\n * Business group dropdown event handling\r\n * @param event \r\n */\r\n changeBusinessGroup(event: { value: string | number | null; }) {\r\n if (event.value !== '-2') {\r\n this.groupId = Number(event.value);\r\n this.enableMemberRoleFeatures();\r\n this.getDocumentList();\r\n } else {\r\n this.groupId = null;\r\n }\r\n }\r\n\r\n getDocumentList() {\r\n this.DocumentList = [];\r\n let obj: any | IDeleteDocumentInputModel = {\r\n projectId: this.projectId,\r\n groupId: (!!this.groupId ? this.groupId : null),\r\n doc_Id: null,\r\n revision_type: this.RevisionType,\r\n UserId: this.commonService.getLoggedInUserId()\r\n };\r\n let subscription = this._DeleteDocumentService.GetDeleteDocumentlist(obj).subscribe((data: IDeleteDocumentOutputModel[]) => {\r\n this.DocumentList = data.filter(x => x.is_Active == (this.selectedOption == 'Active'));\r\n });\r\n\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n public onSelectionChange(event: any | Event): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { is_select: boolean; }; }) => {\r\n element.dataItem.is_select = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { is_select: boolean; }; }) => {\r\n element.dataItem.is_select = false;\r\n });\r\n }\r\n }\r\n public dataStateChange(state: any): void {\r\n this.DocumentList.map(x => x.is_select = false);\r\n }\r\n\r\n handleHeaderCheckboxEvent(event: any) {\r\n this.DocumentList.map(x => x.is_select = event.checked)\r\n }\r\n\r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n public clearFilters() {\r\n this.state.filter = {\r\n logic: 'and',\r\n filters: []\r\n };\r\n }\r\n\r\n public onClick_WorkflowHistory(dataItem: IDeleteDocumentOutputModel) {\r\n let obj = {\r\n doc_Id: dataItem.doc_Id,\r\n documentId: dataItem.doc_Id,\r\n doc_Title: dataItem.document_title,\r\n doc_No: dataItem.document_no,\r\n documentTitle: dataItem.document_title,\r\n documentNumber: dataItem.document_no,\r\n FromDeleteDocument: (this.selectedOption == \"Active\" && this.CanDeleteDocumentPermanently ? true : false)\r\n };\r\n\r\n let dialogRef = this._dialog.open(ScheduleWorkflowhistoryComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n this.getDocumentList();\r\n this.clearFilters();\r\n });\r\n }\r\n\r\n DrawingDeletionResponse(res: any[]) {\r\n let dialogRef = this._ResdialogRef.open(DeleteDocumentResponseComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: res\r\n });\r\n let subscription = dialogRef.afterClosed().subscribe((data) => {\r\n this.getDocumentList();\r\n this.clearFilters();\r\n });\r\n\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n DeleteDocument(Document: IDeleteDocumentInputModel) {\r\n let selectedDocIds: number[] = [];\r\n let IsTransmittalAvailable: boolean = false;\r\n let IsComminicationAvailable: boolean = false;\r\n\r\n if (!!Document) {\r\n selectedDocIds.push(+Document.doc_Id);\r\n IsTransmittalAvailable = this.DocumentList.some(x => x.doc_Id == +Document.doc_Id && x.isTransmittalAvailable);\r\n IsComminicationAvailable = this.DocumentList.some(x => x.doc_Id == +Document.doc_Id && x.isComminicationAvailable);\r\n }\r\n else {\r\n if (this.selectedOption == \"Active\") {\r\n selectedDocIds = this.DocumentList.filter(x => x.is_select && x.revSlNo > 1).map(x => x.doc_Id);\r\n IsTransmittalAvailable = this.DocumentList.some(x => x.is_select && x.revSlNo > 1 && x.isTransmittalAvailable);\r\n IsComminicationAvailable = this.DocumentList.some(x => x.is_select && x.revSlNo > 1 && x.isComminicationAvailable);\r\n }\r\n else {\r\n selectedDocIds = this.DocumentList.filter(x => x.is_select).map(x => x.doc_Id);\r\n IsTransmittalAvailable = this.DocumentList.some(x => x.is_select && x.isTransmittalAvailable);\r\n IsComminicationAvailable = this.DocumentList.some(x => x.is_select && x.isComminicationAvailable);\r\n }\r\n }\r\n\r\n if (selectedDocIds && selectedDocIds.length > 0) {\r\n this._notificationService.showPopup((this.selectedOption == \"Active\" ? (IsTransmittalAvailable || IsComminicationAvailable ? 'Selected Revision contains Transmittal/Communication, Are you sure you want to Delete the Revision from the System?' : 'Are you sure you want to Delete the Revision from the System?') : (IsTransmittalAvailable || IsComminicationAvailable ? 'Selected Documents contains Transmittal/Communication, Are you sure you want to Permanently Delete the Documents from the System?' : 'Are you sure you want to Permanently Delete the Documents from the System?')), 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let obj: any | IDeleteDocumentInputModel = {\r\n groupId: 0,\r\n projectId: this.projectId,\r\n doc_Id: selectedDocIds.toString(),\r\n revision_type: this.RevisionType,\r\n UserId: this.commonService.getLoggedInUserId()\r\n };\r\n let subscription = this._DeleteDocumentService.DeleteDocumentList(obj).subscribe((res: any[]) => {\r\n if (res) {\r\n this.DrawingDeletionResponse(res);\r\n }\r\n });\r\n this.subscriptions.push(subscription);\r\n }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Kindly select Documents\", \"Warning\");\r\n }\r\n }\r\n\r\n DrawingInactiveResponse(res: any[]) {\r\n let dialogRef = this._dialog.open(DrawingInactiveResponseComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: res\r\n });\r\n\r\n let subscription = dialogRef.afterClosed().subscribe((data) => {\r\n this.getDocumentList();\r\n });\r\n this.subscriptions.push(subscription);\r\n }\r\n\r\n UpdateAllDocuments(Document?: DrawingInactiveOutputModel) {\r\n let selectedDocIds: number[] = [];\r\n\r\n if (!!Document)\r\n selectedDocIds.push(Document.doc_Id);\r\n else\r\n selectedDocIds = this.DocumentList.filter(x => x.is_select).map(x => x.doc_Id);\r\n\r\n if (selectedDocIds && selectedDocIds.length > 0) {\r\n let obj: DrawingInactiveInputModel = {\r\n groupId: this.commonService.getLoggedInUserGroupId(),\r\n projectId: this.projectId,\r\n doc_Id: selectedDocIds.toString(),\r\n status: (this.selectedOption == \"Active\" ? false : true),\r\n doc_no: null,\r\n doc_title: null,\r\n userid: this.commonService.getLoggedInUserId()\r\n };\r\n this._notificationService.showPopup('Are you sure you want to ' + (this.selectedOption == \"Active\" ? 'Inactivate' : 'Activate') + ' the selected Documents?', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let subscription = this._DeleteDocumentService.UpdateDrawingStatus(obj).subscribe((res: DrawingInactiveOutputModel[]) => {\r\n this.DrawingInactiveResponse(res)\r\n });\r\n this.subscriptions.push(subscription);\r\n }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Kindly select Documents\", \"Warning\");\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Active Documents\r\n Inactive Documents\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.document_no}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.latest_revision_no}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.document_type}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
"," \r\nimport { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { IDeleteDocumentInputModel, DrawingInactiveOutputModel, DrawingInactiveInputModel } from 'src/app/ViewModel/DeletedocumentModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DeleteDocumentService } from 'src/app/Service/deletedocument/deletedocument.service';\r\n\r\n@Component({\r\n selector: 'app-Copy-Bulk-Checklist-Response',\r\n templateUrl: './Copy-Bulk-Checklist-Response.components.html',\r\n styleUrls: ['./Copy-Bulk-Checklist-Response.components.css']\r\n})\r\nexport class CopyBulkChecklistResponseComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n projectId!:number;\r\n groupId !:number;\r\n LoggedInUserGroupId!:number;\r\n LoggedInUserId!:number;\r\n public Search:string=\"Search\";\r\n public update_status!:string;\r\n DrawingForm!: FormGroup;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n RevisionType : string =\"1\";\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Members list against the business group */\r\n public Response: any[] = [];\r\n constructor(public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,private _dialog: MatDialog, private _orgService: OrganizationService, public _formBuilder: FormBuilder,\r\n private _extMemberService: ExternalMemberService, private _notificationService: NotificationService, public commonService: CommonService,\r\n public DeleteDocumentService : DeleteDocumentService) {\r\n if (this.data ) {\r\n this.Response=this.data\r\n }\r\n\r\n }\r\n ngOnInit() {\r\n this.createBusinessGroupForm();\r\n \r\n }\r\n\r\n createBusinessGroupForm() {\r\n this.DrawingForm = this._formBuilder.group({\r\n businessGroup: new FormControl('', [Validators.required]),\r\n Documet_no: new FormControl(),\r\n Documet_title : new FormControl(),\r\n DocumentStatus: new FormControl(true),\r\n\r\n })\r\n }\r\n\r\n \r\n\r\n /**\r\n * Get organization list\r\n */\r\n \r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n getFormValue(controlName: string): any {\r\n return this.DrawingForm.get(controlName)?.value;\r\n}\r\n \r\n}\r\n","
\r\n
\r\n Copy Checklist Response\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators, FormBuilder } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from \"@angular/material/dialog\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ChecklistModel, CopyChecklistModel } from 'src/app/ViewModel/ChecklistModel';\r\nimport { ChecklistService } from 'src/app/Service/checklist/checklist.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { CopyBulkChecklistResponseComponent } from '../Copy-Bulk-Checklist-Response/Copy-Bulk-Checklist-Response.components';\r\n\r\n@Component({\r\n selector: 'app-Copy-Bulk-Checklist-dialog',\r\n templateUrl: './Copy_Bulk_Checklist.html'\r\n})\r\nexport class CopyBulkChecklist implements OnInit {\r\n projStartDate = new Date();\r\n projEndDate = new Date();\r\n projectList: ProjectViewModel[] = [];\r\n businessGroups: BusinessGroupModel[] = [];\r\n FrombusinessGroups: BusinessGroupModel[] = [];\r\n TobusinessGroups: BusinessGroupModel[] = [];\r\n EnableSimProjForm!: FormGroup;\r\n selectedFromProject: any;\r\n public actionButtonText: string = \"Submit\";\r\n memberId!: number;\r\n ProjectID!:number|null;\r\n businessGroupId!:number |null;\r\n DisciplineId!:number | null;\r\n toprojectID!:number|null;\r\n tobusinessGroupId!:number|null;\r\n todisciplineId!:number|null;\r\n checkList: any|ChecklistModel[] = [];\r\n disciplineList: any|RoleFeatureModel[] = [];\r\n TodisciplineList: any| RoleFeatureModel[] = [];\r\n enablechkLstFilter =false;\r\n enablechkLstFullscreen =false;\r\n public projectForm: FormGroup = new FormGroup({\r\n\r\n Fromproject: new FormControl(),\r\n Toproject: new FormControl(),\r\n TobusinessGroup: new FormControl(),\r\n FrombusinessGroup: new FormControl(),\r\n FromDiscipline: new FormControl(),\r\n ToDiscipline: new FormControl(),\r\n });\r\n\r\n constructor(private _projService: ProjectMasterService,\r\n public projectMemberLinkService: ProjectMemberLinkService, private _orgService: OrganizationService, private formBuilder: FormBuilder, private projectInfoService: ProjectInfoService, private _commonService: CommonService, \r\n public _dialogRef: MatDialogRef,\r\n private _ResdialogRef: MatDialog,\r\n private _notificationService: NotificationService,\r\n public checklistService: ChecklistService,\r\n public mapRoleFeatureService: MapRoleFeatureService,\r\n @Inject(MAT_DIALOG_DATA) public _data: any) {\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n // if (!!this._data.project)\r\n this.setFormValues();\r\n\r\n }\r\n BUGlist()\r\n {\r\n this.projectForm.get('FrombusinessGroup')?.setValue(\"\");\r\n if (this.ProjectID)\r\n this.projectMemberLinkService.getProjectBusinessGroup(this.ProjectID).subscribe((response: BusinessGroupModel[]) => {\r\n this.FrombusinessGroups = response.filter(each => each.is_Active);\r\n });\r\n }\r\n ToBUGlist()\r\n {\r\n this.projectForm.get('TobusinessGroup')?.setValue(\"\");\r\n if (this.toprojectID)\r\n this.projectMemberLinkService.getProjectBusinessGroup(this.toprojectID).subscribe((response: BusinessGroupModel[]) => {\r\n this.TobusinessGroups = response.filter(each => each.is_Active);\r\n });\r\n }\r\n FromProjectChange(event: ProjectViewModel) {\r\n this.FrombusinessGroups=[];\r\n this.DisciplineId=this.ProjectID = this.businessGroupId = null;\r\n this.ProjectID = event.projectId ? Number(event.projectId) : null;\r\n this.projectForm.get('FrombusinessGroup')?.setValue(''); \r\n this.projectForm.get('FromDiscipline')?.setValue(''); \r\n this.BUGlist();\r\n this.getCheckList();\r\n \r\n \r\n }\r\n\r\n FromBUChange(event: BusinessGroupModel) {\r\n this.disciplineList=[];\r\n this.businessGroupId = this.DisciplineId = null;\r\n this.projectForm.get('FromDiscipline')?.setValue(''); \r\n if(event.group_Id)\r\n {\r\n this.businessGroupId = Number(event.group_Id);\r\n this.getDiscipline(this.businessGroupId);\r\n }\r\n this.getCheckList();\r\n \r\n }\r\n ToBuchange(event: BusinessGroupModel) {\r\n this.TodisciplineList=[];\r\n this.tobusinessGroupId = this.todisciplineId = null;\r\n this.projectForm.get('ToDiscipline')?.setValue('');\r\n if(event.group_Id)\r\n {\r\n this.tobusinessGroupId = Number(event.group_Id);\r\n this.getToDiscipline(this.tobusinessGroupId);\r\n }\r\n }\r\n ToDisiplinechange(event: RoleFeatureModel) {\r\n this.todisciplineId =null;\r\n if(event.dedId)\r\n this.todisciplineId = event.dedId ;\r\n }\r\n FromDisplineChange(event: RoleFeatureModel) {\r\n this.DisciplineId = null;\r\n if(event.dedId)\r\n {\r\n this.DisciplineId = Number(event.dedId) ;\r\n }\r\n this.getCheckList();\r\n }\r\n\r\n async ToProjectchange(event: ProjectViewModel) {\r\n this.TobusinessGroups =[];\r\n this.projectForm.get('TobusinessGroup')?.setValue(\"\"); \r\n this.projectForm.get('ToDiscipline')?.setValue(''); \r\n this.todisciplineId = this.tobusinessGroupId = null;\r\n this.toprojectID = event.projectId ? Number(event.projectId) : null; \r\n this.ToBUGlist();\r\n \r\n }\r\n\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n\r\n this.projectList = this._data.IprojectList;\r\n for (let i = 0; i < this.projectList.length; i++) {\r\n this.projectList[i]['projCodeDesc'] = this.projectList[i].projectCode + ' - ' + this.projectList[i].projectDescription;\r\n }\r\n \r\n\r\n this.ProjectID= this._commonService.getProjectId();\r\n this.selectedFromProject = this.projectList.filter(x => x.projectId == this.ProjectID)[0];\r\n //this.projectForm.get('Fromproject').setValue(this.selectedFromProject);\r\n this.FromProjectChange(this.selectedFromProject);\r\n }\r\n\r\n /**\r\n * Save project\r\n */\r\n savecopychecklist() {\r\n if (!this.ProjectID) {\r\n\t\t\tthis._notificationService.showToast('Please select from project', 'Warning');\r\n\t\t\treturn;\r\n }\r\n if (!this.toprojectID) {\r\n\t\t\tthis._notificationService.showToast('Please select to project', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n let selectedDocIds: number[] = this.checkList.filter((x: { is_select: any; }) => x.is_select).map((x: { clId: any; }) => x.clId);\r\n if (selectedDocIds.length<=0) {\r\n\t\t\tthis._notificationService.showToast('Please select checklist', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n let data: any| CopyChecklistModel = {\r\n fromProjectid: this.ProjectID,\r\n toProjectid: this.toprojectID,\r\n fromgroupId: this.businessGroupId,\r\n togroupId: this.tobusinessGroupId,\r\n fromdisciplineId: this.DisciplineId,\r\n todisciplineId: this.todisciplineId,\r\n cheklistid :selectedDocIds.toString(),\r\n };\r\n this.checklistService.postcopyChecklist(data).subscribe((data:any[]) => {\r\n if(data && data.length>0)\r\n this.Responce(data);\r\n //this._notificationService.handleResponse(data);\r\n\t\t\t//this.getCheckList();\r\n\t\t});\r\n \r\n }\r\n\r\n /**\r\n * Get GroupForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.projectForm.get(controlName)?.value;\r\n }\r\n\r\n \r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n async getCheckList() {\r\n\t\tif (!this.ProjectID && !this.businessGroupId && !this.DisciplineId) {\r\n\t\t\tthis.checkList = [];\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.checkList = await this.checklistService.getChecklist(this.businessGroupId, this.DisciplineId,null, null, this.ProjectID).toPromise();\r\n }\r\n async getDiscipline(businessGroupId: number) {\r\n\t\tif (!businessGroupId) {\r\n\t\t\tthis.disciplineList = [];\r\n\t\t\treturn;\r\n }\r\n\t\tthis.disciplineList = await this.mapRoleFeatureService.getDedAgainstDe(\"Discipline\", businessGroupId, null, null, 0).toPromise();\r\n }\r\n async getToDiscipline(businessGroupId: number) {\r\n\t\tif (!businessGroupId) {\r\n\t\t\tthis.TodisciplineList = [];\r\n\t\t\treturn;\r\n }\r\n\t\tthis.TodisciplineList = await this.mapRoleFeatureService.getDedAgainstDe(\"Discipline\", businessGroupId, null, null, 0).toPromise();\r\n }\r\n toggleFilter() {\r\n this.enablechkLstFilter = !this.enablechkLstFilter;\r\n \r\n\t}\r\n\r\n\ttoggleChklstFullscreen() {\r\n\t\tthis.enablechkLstFullscreen = !this.enablechkLstFullscreen\r\n }\r\n\r\n public onSelectionChange(event: Event | any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { is_select: boolean; }; }) => {\r\n element.dataItem.is_select = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { is_select: boolean; }; }) => {\r\n element.dataItem.is_select = false;\r\n });\r\n }\r\n }\r\n\r\n public dataStateChange(state: any): void {\r\n \r\n this.checkList.map((x: { is_select: boolean; })=>x.is_select=false);\r\n }\r\n handleHeaderCheckboxEvent(event: any) {\r\n this.checkList.map((x: { is_select: any; }) => x.is_select = event.checked)\r\n }\r\n handleRowCheckboxEvent(event: any,rowIndex:number) {\r\n this.checkList[rowIndex].is_select=event.checked;\r\n }\r\n Responce(res: any[]) {\r\n let dialogRef = this._ResdialogRef.open(CopyBulkChecklistResponseComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: res\r\n }); \r\n dialogRef.afterClosed().subscribe((data) => {\r\n this.Reset();\r\n });\r\n \r\n }\r\n Reset()\r\n {\r\n this.checkList=[];\r\n this.projectForm.get('Fromproject')?.setValue('');\r\n this.projectForm.get('FrombusinessGroup')?.setValue('');\r\n this.projectForm.get('FromDiscipline')?.setValue('');\r\n this.projectForm.get('Toproject')?.setValue('');\r\n this.projectForm.get('TobusinessGroup')?.setValue('');\r\n this.projectForm.get('ToDiscipline')?.setValue('');\r\n this.ProjectID =null;\r\n this.toprojectID=null;\r\n this.businessGroupId=null;\r\n this.tobusinessGroupId=null;\r\n this.DisciplineId=null;\r\n this.todisciplineId=null;\r\n \r\n }\r\n}","
\r\n
\r\n Copy Checklist\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Clear Filter\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.clDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.clShortDescription}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.icDescription}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.buDescription}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.projectDescription}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.groupDescription}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.disciplineDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n   Cancel\r\n
\r\n
"," \r\nimport { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { FormBuilder} from \"@angular/forms\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DeleteDocumentService } from 'src/app/Service/deletedocument/deletedocument.service';\r\n\r\n@Component({\r\n selector: 'app-Delete-Document-Response.components',\r\n templateUrl: './Delete-Document-Response.components.html',\r\n styleUrls: ['./Delete-Document-Response.components.css']\r\n})\r\nexport class DeleteDocumentResponseComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n projectId!:number;\r\n groupId!:number;\r\n LoggedInUserGroupId!:number;\r\n LoggedInUserId!:number;\r\n public Search:string=\"Search\";\r\n public update_status!:string;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n RevisionType : string =\"1\";\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Members list against the business group */\r\n public Response: any[] = [];\r\n constructor(public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,private _dialog: MatDialog, private _orgService: OrganizationService, public _formBuilder: FormBuilder,\r\n private _extMemberService: ExternalMemberService, private _notificationService: NotificationService, public commonService: CommonService,\r\n public DeleteDocumentService : DeleteDocumentService) {\r\n if (this.data ) {\r\n this.Response=this.data\r\n }\r\n\r\n }\r\n ngOnInit() {\r\n \r\n \r\n }\r\n\r\n \r\n \r\n\r\n /**\r\n * Get organization list\r\n */\r\n \r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n \r\n}\r\n","
\r\n
\r\n Document Deletion Response\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_no}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n//\\inquirer\\node_modules\\rxjs\\src\\internal\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ElementsService } from 'src/app/Service/elements/elements.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { IElementsViewModel } from 'src/app/ViewModel/ElementsModel';\r\nimport { ModuleModel } from 'src/app/ViewModel/ModuleModel';\r\nimport { ElementLinkModel } from '../../../../ViewModel/ElementLinkModel';\r\n\r\n\r\n@Component({\r\n\tselector: 'app-add-element-link-dialog',\r\n\ttemplateUrl: './add-element-link-dialog.component.html',\r\n\tstyleUrls: ['./add-element-link-dialog.component.css']\r\n})\r\nexport class AddElementLinkDialogComponent implements OnInit {\r\n\r\n\t/** is create mode */\r\n\tisCreate!: boolean;\r\n\t/** Acknowledgement sent to parent */\r\n\tisChangesDone = false;\r\n\t/**Module List */\r\n\tmoduleList!: ReadonlyArray;\r\n\tselectedModuleId: any;\r\n\t/** Element List */\r\n\telementsList!: ReadonlyArray;\r\n\tselectedElementId: any;\r\n\t/** Dependent Element List */\r\n\tdependentElementList!: ReadonlyArray;\r\n\tselectedDependentElementId: any;\r\n\r\n\tformGroup!: FormGroup;\r\n\tisShowListPageIcon: boolean = false;\r\n\tshowMemberElementIcon: boolean = false;\r\n\tisMemberElementIcon: boolean = false;\r\n\t/** Module List Dropdown clear flag */\r\n\tselectedModuleClear = 'N';\r\n\t/** Element List Dropdown clear flag */\r\n\tselectedElementClear = 'N';\r\n\t/** Dependent Element List Dropdown clear flag */\r\n\tselectedDependentElementClear = 'N';\r\n\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public data: { isCreate: boolean, dataItem: ElementLinkModel, businessGroupId: number },\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic elementService: ElementsService,\r\n\t\tpublic elementLinkService: ElementLinkService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tprivate notificationService: NotificationService,\r\n\t) {\r\n\t\tthis.setFormDefaultValues();\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.isCreate = this.data.isCreate;\r\n\t\tthis.callApis();\r\n\t}\r\n\r\n\r\n\tsetFormDefaultValues() {\r\n\t\tthis.formGroup = new FormGroup({\r\n\t\t\tprojectElementDescription: new FormControl(''),\r\n\t\t\thierarchy: new FormControl(),// number only\r\n\t\t\tsortBy: new FormControl(''), // number only\r\n\t\t\thasDependency: new FormControl(false),\r\n\t\t\tisMandatory: new FormControl(false),\r\n\t\t\tisDefaultSelect: new FormControl(false),\r\n\t\t\tisNumbering: new FormControl(false),\r\n\t\t\tisSerialNumber: new FormControl(false),\r\n\t\t\tisActive: new FormControl(true),\r\n\t\t\tisVisible: new FormControl(true),\r\n\t\t\tisShowListPage: new FormControl(false),\r\n\t\t\tisMemberAccess: new FormControl(this.isMemberElementIcon),\r\n\t\t});\r\n\t}\r\n\r\n\tasync callApis() {\r\n\t\tif (!this.isCreate) {\r\n\t\t\tthis.setFormValues();\r\n\t\t}\r\n\t\tthis.moduleList = await this.elementLinkService.getModuleList(this.data.businessGroupId).toPromise();\r\n\t\tlet elementListRes = await this.elementService.GetElementsList(0).toPromise();\r\n\t\tthis.elementsList = elementListRes.filter((eachElement:any) => eachElement.is_Active);\r\n\r\n\t}\r\n\r\n\t/** Clear values. Makes input empty */\r\n\tclearValues() {\r\n\r\n\t\tif (this.isCreate) {\r\n\t\t\tthis.selectedModuleClear = 'Y';\r\n\t\t\tthis.selectedElementClear = 'Y';\r\n\t\t}\r\n\t\tthis.selectedDependentElementClear = 'Y';\r\n\t\tthis.setFormDefaultValues();\r\n\t}\r\n\r\n\tchangeModuleList(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.selectedModuleClear = 'N';\r\n\t\tif (this.isCreate) \r\n\t\t{\r\n\t\t\tif (event.value != '-2') {\r\n\t\t\t\tthis.selectedModuleId = event.value;\r\n\t\t\t} else {\r\n\t\t\t\tthis.selectedModuleId = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (event.value == '1' || event.value == '2') \r\n\t\t{\r\n\t\t\t\t// this.isShowListPageIcon = true;\r\n\t\t\t\tthis.showMemberElementIcon = true;\r\n\t\t} else \r\n\t\t{\r\n\t\t\t\t// this.isShowListPageIcon = false;\r\n\t\t\t\tthis.showMemberElementIcon = false;\r\n\t\t}\r\n\r\n\t\tif (event.value == '1') \r\n\t\t{\r\n\t\t\tthis.isShowListPageIcon = true;\r\n\t\t} else \r\n\t\t{\r\n\t\t\tthis.isShowListPageIcon = false;\r\n\t\t}\r\n\t}\r\n\r\n\tchangeElementList(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.selectedElementClear = 'N';\r\n\t\tif (this.isCreate) {\r\n\t\t\tif (event.value != '-2') {\r\n\t\t\t\tthis.selectedElementId = event.value;\r\n\t\t\t\tthis.setDependentElementData(Number(event.value));\r\n\t\t\t\t// if(event.desc == \"Discipline\")\r\n\t\t\t\t// { \r\n\t\t\t\t// \t\tthis.isMemberElementIcon = true;\r\n\t\t\t\t// \t\tthis.showMemberElementIcon = true;\r\n\t\t\t\t// \t\tthis.setFormDefaultValues();\r\n\t\t\t\t// }\r\n\t\t\t\t// else\r\n\t\t\t\t// {\r\n\t\t\t\t// \t\tthis.isMemberElementIcon = false;\r\n\t\t\t\t// \t\tthis.showMemberElementIcon = false;\r\n\t\t\t\t// \t\tthis.setFormDefaultValues();\r\n\t\t\t\t// }\r\n\t\t\t} else {\r\n\t\t\t\tthis.selectedElementId = null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.setDependentElementData(this.selectedElementId);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove selected Element value and set the remaining as to dependent element\r\n\t */\r\n\tsetDependentElementData(idToRemove: number) {\r\n\t\tthis.dependentElementList = this.elementsList.filter(eachElement => eachElement.dE_Id != idToRemove);\r\n\t}\r\n\r\n\r\n\tchangeDependentElementList(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.selectedDependentElementClear = 'N';\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.selectedDependentElementId = event.value;\r\n\t\t} else {\r\n\t\t\tthis.selectedDependentElementId = null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set exisiting form values\r\n\t */\r\n\tsetFormValues() {\r\n\t\tthis.formGroup.get('projectElementDescription')?.setValue(this.data.dataItem.projectElementDescription);\r\n\t\tthis.formGroup.get('hierarchy')?.setValue(this.data.dataItem.elementHierarchy);\r\n\t\tthis.formGroup.get('sortBy')?.setValue(this.data.dataItem.sortBy);\r\n\t\tthis.formGroup.get('hasDependency')?.setValue(this.data.dataItem.hasDependency);\r\n\t\tthis.formGroup.get('isMandatory')?.setValue(this.data.dataItem.isMandatory);\r\n\t\tthis.formGroup.get('isDefaultSelect')?.setValue(this.data.dataItem.isDefaultSelect);\r\n\t\tthis.formGroup.get('isNumbering')?.setValue(this.data.dataItem.isNumbering);\r\n\t\tthis.formGroup.get('isActive')?.setValue(this.data.dataItem.isActive);\r\n\t\tthis.formGroup.get('isVisible')?.setValue(this.data.dataItem.isVisible);\r\n\t\tthis.formGroup.get('isSerialNumber')?.setValue(this.data.dataItem.isSerialNumber);\r\n\t\tthis.formGroup.get('isShowListPage')?.setValue(this.data.dataItem.isShowListPage);\r\n\t\tthis.formGroup.get('isMemberAccess')?.setValue(this.data.dataItem.isMemberAccess);\r\n\t\tthis.selectedModuleId = this.data.dataItem.moduleId;\r\n\t\tthis.selectedElementId = this.data.dataItem.elementId;\r\n\t\tthis.selectedDependentElementId = this.data.dataItem.dependentElementId;\r\n\t}\r\n\r\n\tcloseDialog() {\r\n\t\tthis.dialogRef.close({ 'isChangesDone': this.isChangesDone });\r\n\t}\r\n\r\n\t/**\r\n\t * Add/Edit Element link\r\n\t */\r\n\tsaveNewElementLink() {\r\n\r\n\t\tif (!this.selectedModuleId) {\r\n\t\t\tthis.notificationService.showToast('Select Module', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.selectedElementId) {\r\n\t\t\tthis.notificationService.showToast('Select Element', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.getFormGroupValue('hasDependency') && !this.selectedDependentElementId) {\r\n\t\t\t// if (!this.selectedDependentElementId) {\r\n\t\t\tthis.notificationService.showToast('Select Dependent Element', 'Warning');\r\n\t\t\treturn;\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\t\tlet newElementLink: ElementLinkModel = {\r\n\t\t\t\"defaultValue\": null,\r\n\t\t\t\"dependentElementDescription\": null,\r\n\t\t\t\"dependentElementId\": this.getFormGroupValue('hasDependency') ? this.selectedDependentElementId : null,\r\n\t\t\t\"elementDescription\": null,\r\n\t\t\t\"elementHierarchy\": Number(this.getFormGroupValue('hierarchy')),\r\n\t\t\t\"elementId\": this.selectedElementId,\r\n\t\t\t\"groupId\": this.data.businessGroupId,\r\n\t\t\t\"hasDependency\": this.getFormGroupValue('hasDependency'),\r\n\t\t\t\"isActive\": this.getFormGroupValue('isActive'),\r\n\t\t\t\"isDefaultSelect\": this.getFormGroupValue('isDefaultSelect'),\r\n\t\t\t\"isMandatory\": this.getFormGroupValue('isMandatory'),\r\n\t\t\t\"isNumbering\": this.getFormGroupValue('isNumbering'),\r\n\t\t\t\"isSerialNumber\": this.getFormGroupValue('isSerialNumber'),\r\n\t\t\t\"isVisible\": this.getFormGroupValue('isVisible'),\r\n\t\t\t\"moduleDescription\": null,\r\n\t\t\t\"moduleId\": this.selectedModuleId,\r\n\t\t\t\"projectElementDescription\": !!this.getFormGroupValue('projectElementDescription') ? this.getFormGroupValue('projectElementDescription') : null,\r\n\t\t\t\"projectId\": Number(this.commonService.getProjectId()),\r\n\t\t\t\"sortBy\": Number(this.getFormGroupValue('sortBy')),\r\n\t\t\t\"isShowListPage\": this.getFormGroupValue('isShowListPage'),\r\n\t\t\t\"isMemberAccess\": this.getFormGroupValue('isMemberAccess')\r\n\t\t}\r\n\t\tlet reqData = {\r\n\t\t\t\"isQueryForStaticElement\": false,\r\n\t\t\t\"createdBy\": this.commonService.getLoggedInUserId(),\r\n\t\t\t\"elementLinkDetails\": [newElementLink],\r\n\t\t};\r\n\r\n\t\tthis.elementLinkService.saveDocumentElements(reqData).subscribe(data => {\r\n\t\t\tthis.isChangesDone = true;\r\n\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\tif (!this.isCreate) {\r\n\t\t\t\t// if edit mode then close dialog, after save\r\n\t\t\t\tthis.closeDialog();\r\n\t\t\t} else {\r\n\t\t\t\t// clear dialog for another new entry\r\n\t\t\t\tthis.clearValues();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get Form group value by key\r\n\t * @param keyName\r\n\t */\r\n\tgetFormGroupValue = (keyName: string): any => this.formGroup.get(keyName)?.value;\r\n\r\n}\r\n","
\r\n
\r\n Create New - Project Element\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Project Element\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Project Element Description\r\n \r\n \r\n
\r\n
\r\n \r\n Hierarchy\r\n \r\n \r\n
\r\n
\r\n \r\n Sort By\r\n \r\n \r\n
\r\n
\r\n \r\n Has Dependency\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Mandatory\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Visible\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Default Select\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Numbering\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Serial Number\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Active Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Show List Page\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Member Element Detail Access\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n   Reset\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ElementsService } from 'src/app/Service/elements/elements.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { ElementLinkModel } from 'src/app/ViewModel/ElementLinkModel';\r\nimport { IElementsViewModel } from 'src/app/ViewModel/ElementsModel';\r\nimport { ModuleModel } from 'src/app/ViewModel/ModuleModel';\r\n\r\n\r\n@Component({\r\n\tselector: 'app-add-static-element-link-dialog',\r\n\ttemplateUrl: './add-static-element-link-dialog.component.html',\r\n\tstyleUrls: ['./add-static-element-link-dialog.component.css']\r\n})\r\nexport class AddStaticElementLinkDialogComponent implements OnInit {\r\n\tisCreate: boolean;\r\n\r\n\tisChangesDone = false;\r\n\tmoduleList!: ReadonlyArray;\r\n\tselectedModuleId: any;\r\n\telementsList!: ReadonlyArray;\r\n\tselectedElementId: any;\r\n\tformGroup!: FormGroup;\r\n\tselectedModuleClear = 'N';\r\n\tselectedElementClear = 'N';\r\n\tisDocSetConfigured:boolean = false;\r\n\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public data: { isCreate: boolean, dataItem: ElementLinkModel, businessGroupId: number },\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic elementService: ElementsService,\r\n\t\tpublic elementLinkService: ElementLinkService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tprivate notificationService: NotificationService,) {\r\n\t\tthis.setFormDefaultValues();\r\n\t\tthis.isCreate = this.data.isCreate;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.callApis();\r\n\t}\r\n\r\n\r\n\tasync callApis() {\r\n\t\tif (!this.data.isCreate) {\r\n\t\t\tthis.setFormValues();\r\n\t\t}\r\n\t\tthis.moduleList = await this.elementLinkService.getModuleList(this.data.businessGroupId).toPromise();\r\n\t\tlet elementListRes:any = await this.elementService.GetElementsList(0).toPromise();\r\n\t\tthis.elementsList = elementListRes.filter((eachElement: { is_Active: any; }) => eachElement.is_Active);\r\n\t}\r\n\r\n\r\n\tsetFormDefaultValues() {\r\n\t\tthis.formGroup = new FormGroup({\r\n\t\t\tdefaultValue: new FormControl(''),\r\n\t\t\tprojectElementDescription: new FormControl(''),\r\n\t\t\tisVisible: new FormControl(false),\r\n\t\t\tisMandatory: new FormControl(false),\r\n\t\t\tisDefaultSelect: new FormControl(false),\r\n\t\t\tisActive: new FormControl(true),\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tsetFormValues() {\r\n\t\tthis.formGroup.get('defaultValue')?.setValue(this.data.dataItem.defaultValue);\r\n\t\tthis.formGroup.get('projectElementDescription')?.setValue(this.data.dataItem.projectElementDescription);\r\n\t\tthis.formGroup.get('isVisible')?.setValue(this.data.dataItem.isVisible);\r\n\t\tthis.formGroup.get('isMandatory')?.setValue(this.data.dataItem.isMandatory);\r\n\t\tthis.formGroup.get('isDefaultSelect')?.setValue(this.data.dataItem.isDefaultSelect);\r\n\t\tthis.formGroup.get('isActive')?.setValue(this.data.dataItem.isActive);\r\n\r\n\t\tthis.selectedModuleId = this.data.dataItem.moduleId;\r\n\t\tthis.selectedElementId = this.data.dataItem.elementId;\r\n\t}\r\n\r\n\tchangeModuleList(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.selectedModuleId = event.value;\r\n\t\t} else {\r\n\t\t\tthis.selectedModuleId = null;\r\n\t\t}\r\n\t}\r\n\r\n\tchangeElementList(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.selectedElementId = event.value;\r\n\t\t\tthis.isDocSetConfigured = (this.selectedElementId == 43) ? true : false;\r\n\t\t} else {\r\n\t\t\tthis.selectedElementId = null;\r\n\t\t}\r\n\t}\r\n\r\n\tclearValues() {\r\n\t\tif (this.isCreate) {\r\n\t\t\tthis.selectedModuleClear = 'Y';\r\n\t\t\tthis.selectedElementClear = 'Y';\r\n\t\t}\r\n\t\tthis.setFormDefaultValues();\r\n\t}\r\n\r\n\tcloseDialog() {\r\n\t\tthis.dialogRef.close({ 'isChangesDone': this.isChangesDone });\r\n\t}\r\n\r\n\tsaveStaticElementLink() {\r\n\r\n\r\n\t\tif (!this.selectedModuleId) {\r\n\t\t\tthis.notificationService.showToast('Select Module', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.selectedElementId) {\r\n\t\t\tthis.notificationService.showToast('Select Element', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet newStaticElementLink: ElementLinkModel = {\r\n\t\t\t\"defaultValue\": !!this.getFormGroupValue('defaultValue') ? this.getFormGroupValue('defaultValue') : null,\r\n\t\t\t\"elementId\": this.selectedElementId,\r\n\t\t\t\"groupId\": this.data.businessGroupId,\r\n\t\t\t\"isActive\": this.getFormGroupValue('isActive'),\r\n\t\t\t\"isDefaultSelect\": this.getFormGroupValue('isDefaultSelect'),\r\n\t\t\t\"isMandatory\": this.isDocSetConfigured ? this.getFormGroupValue('isVisible') : this.getFormGroupValue('isMandatory'),\r\n\t\t\t\"isVisible\": this.getFormGroupValue('isVisible'),\r\n\t\t\t\"moduleId\": this.selectedModuleId,\r\n\t\t\t\"projectElementDescription\": !!this.getFormGroupValue('projectElementDescription') ? this.getFormGroupValue('projectElementDescription') : null,\r\n\t\t\t\"projectId\": Number(this.commonService.getProjectId()),\r\n\t\t\t\"sortBy\": 0,\r\n\t\t\t\"isNumbering\": false,\r\n\t\t\t\"hasDependency\": false,\r\n\t\t\t\"isSerialNumber\": false,\r\n\t\t\t\"elementHierarchy\": 0,\r\n\t\t\t\"moduleDescription\": null,\r\n\t\t\t\"elementDescription\": null,\r\n\t\t\t\"dependentElementId\": 0,\r\n\t\t\t\"dependentElementDescription\": null,\r\n\t\t\t\"isShowListPage\": false,\r\n\t\t\t\"isMemberAccess\": false\r\n\t\t}\r\n\r\n\t\tlet reqData = {\r\n\t\t\t\"isQueryForStaticElement\": true,\r\n\t\t\t\"createdBy\": this.commonService.getLoggedInUserId(),\r\n\t\t\t\"elementLinkDetails\": [newStaticElementLink],\r\n\t\t};\r\n\r\n\t\tthis.elementLinkService.saveDocumentElements(reqData).subscribe((data:any) => {\r\n\t\t\tthis.isChangesDone = true;\r\n\t\t\tif(data.successCode == 200)\r\n\t\t\t{\r\n\t\t\tthis.clearValues();\r\n\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\tthis.closeDialog();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get Form group value by key\r\n\t * @param keyName\r\n\t */\r\n\tgetFormGroupValue = (keyName: string): any => this.formGroup.get(keyName)?.value;\r\n}\r\n","
\r\n
\r\n Create New - Static Element\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Static Elements\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Default Value\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Project Element Description\r\n \r\n \r\n
\r\n
\r\n \r\n Visible\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Mandatory\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Default Select \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Active Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  Reset\r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Criteria, ExternalMemberService } from \"src/app/Service/member/external-member.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { EncryptDecryptService } from \"src/app/Service/encrypt-decrypt.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { ProjectWorkflowStatusService } from 'src/app/Service/ProjectWorkflowStatus/ProjectWorkflowStatus.service';\r\nimport { ProjectWorkflowStatusOutputModel, ProjectWorkflowStatusInputModel } from 'src/app/ViewModel/ProjectWorkflowStatus';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-project-workflow-status-dialog',\r\n templateUrl: './project-workflow-status-dialog.component.html',\r\n styleUrls: ['./project-workflow-status-dialog.component.css']\r\n})\r\nexport class EditprojectworkflowstatusComponent implements OnInit {\r\n public stageList: any[] = [];\r\n public stageTypeList: any[] = [];\r\n public projectId: number;\r\n public groupId: number;\r\n public dedId!:number|null;\r\n public status_TypeId !:number|null;\r\n public InsertFlag : boolean = true;\r\n isValidLntUser: boolean = false;\r\n hide: boolean = true;\r\n criteriaMap = new Map();\r\n customValidators: Criteria[]|any = Object.keys(Criteria).map((key:any) => Criteria[key]);\r\n _is8Characters!: boolean;\r\n _isSymbols!: boolean; \r\n _isComplexWord!: boolean;\r\n isEditUser: boolean = false;\r\n selectedOption: string = 'ltMember';\r\n isInternalUser: boolean = true;\r\n public actionButtonText: string = \"Save\";\r\n memberId!: number ;\r\n psNo: FormControl = new FormControl('', [Validators.required, Validators.maxLength(15), Validators.pattern('^[0-9]*$')])\r\n public PWorkflowStatus!: FormGroup;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n selectedGroup: any;\r\n /**Member Details array */\r\n ProjectWorkflowStatusList!: ProjectWorkflowStatusOutputModel;\r\n constructor(private _projInfoService: ProjectInfoService,public _dialogRef: MatDialogRef, public _formBuilder: FormBuilder, private _commonService: CommonService,\r\n @Inject(MAT_DIALOG_DATA) public _data: any, private encryptDecryptService: EncryptDecryptService, private _notificationService: NotificationService\r\n ,private _projectWorkflowService:ProjectWorkflowStatusService) {\r\n this.memberId = _data.member;\r\n this.projectId = _data.project_Id;\r\n this.groupId = _data.group_Id;\r\n this.ProjectWorkflowStatusList = _data.ProjectWorkflowobj;\r\n \r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() { \r\n \r\n this.getDropDownValue(); \r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.createForm();\r\n //this.ProjectWorkflowStatusList=undefined;\r\n if(this.ProjectWorkflowStatusList)\r\n {\r\n this.setFormValues();\r\n this.InsertFlag = false;\r\n }\r\n \r\n \r\n }\r\n createForm() {\r\n this.PWorkflowStatus = this._formBuilder.group({\r\n //status: new FormControl([Validators.required]),\r\n status: new FormControl(),\r\n statusType: new FormControl(),\r\n statusOrder: new FormControl(),\r\n projectStatusDesc: new FormControl(),\r\n sCurveStatusDesc: new FormControl(),\r\n isActive: new FormControl(true),\r\n });\r\n this.formMarkAsTouched(this.PWorkflowStatus);\r\n }\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n this.PWorkflowStatus.get('status')?.setValue(this.ProjectWorkflowStatusList.statusDescription);\r\n this.dedId =this.ProjectWorkflowStatusList.status_Id;\r\n this.PWorkflowStatus.get('statusType')?.setValue(this.ProjectWorkflowStatusList.statusTypeDesc);\r\n this.status_TypeId =this.ProjectWorkflowStatusList.status_Type; \r\n this.PWorkflowStatus.get('projectStatusDesc')?.setValue(this.ProjectWorkflowStatusList.projectStatusDesc);\r\n this.PWorkflowStatus.get('sCurveStatusDesc')?.setValue(this.ProjectWorkflowStatusList.sCurveStatusDesc);\r\n this.PWorkflowStatus.get('isActive')?.setValue(this.ProjectWorkflowStatusList.isActive);\r\n this.PWorkflowStatus.get('statusOrder')?.setValue(this.ProjectWorkflowStatusList.status_Order);\r\n \r\n }\r\n\r\n formMarkAsTouched(form: any|FormGroup) {\r\n if (form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key).markAsTouched();\r\n });\r\n }\r\n\r\n /**\r\n * Save member details\r\n */\r\n save() {\r\n let _input: ProjectWorkflowStatusInputModel= {\r\n project_Id : this.projectId,\r\n group_Id : this.groupId,\r\n status_Id : this.dedId,\r\n status_Type : this.status_TypeId,\r\n status_Order : this.getFormValue('statusOrder'),\r\n projectStatusDesc : this.getFormValue('projectStatusDesc'),\r\n sCurveStatusDesc : this.getFormValue('sCurveStatusDesc'),\r\n isActive : this.getFormValue('isActive'),\r\n member_Id : this.memberId,\r\n insertFlag : this.InsertFlag\r\n }\r\n this._projectWorkflowService.postProjectWorkflowStatus(_input).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode==200) \r\n this._dialogRef.close( res );\r\n else\r\n {\r\n this._notificationService.showPopup(res.successMessage, \"Warning\");\r\n this.clear();\r\n }\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Get MemForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.PWorkflowStatus.get(controlName)?.value;\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n statusChage(value: any) {\r\n if (value.value != \"-2\") { \r\n this.dedId = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.dedId = null;\r\n }\r\n }\r\n statustypeChage(value: any) {\r\n if (value.value != \"-2\") { \r\n this.status_TypeId = value.additionalValues.additionalValues.status_Type;\r\n } else {\r\n this.status_TypeId = null;\r\n }\r\n }\r\n\r\n getDropDownValue() { \r\n \r\n this.stageTypeList.push({status_Type:1,Desc:\"Scheduled\"},{status_Type:2,Desc:\"Due\"},{status_Type:3,Desc:\"Completed\"},{status_Type:4,Desc:\"Assigned\"},{status_Type:5,Desc:\"Submision No\"})\r\n this._projInfoService.getProjectElementCascadingDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Workflow, deDescription: 'Workflow Status' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription); \r\n this.stageList = res;\r\n });\r\n \r\n }\r\n clear()\r\n {\r\n this.PWorkflowStatus.get('status')?.setValue('');\r\n this.dedId =null;\r\n this.PWorkflowStatus.get('statusType')?.setValue('');\r\n this.status_TypeId =null; \r\n this.PWorkflowStatus.get('projectStatusDesc')?.setValue('');\r\n this.PWorkflowStatus.get('sCurveStatusDesc')?.setValue('');\r\n this.PWorkflowStatus.get('isActive')?.setValue(true);\r\n this.PWorkflowStatus.get('statusOrder')?.setValue('');\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n

Create Project Workflow Status

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Status is required \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Status Type is required \r\n \r\n
\r\n
\r\n \r\n Status Order\r\n \r\n \r\n \r\n Status Order is required \r\n \r\n
\r\n
\r\n \r\n Project Status Desc\r\n \r\n \r\n
\r\n
\r\n \r\n S-Curve Status Desc\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Cancel\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DocumentRevisionLinkService } from 'src/app/Service/document-revision-link/document-revision-link.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-document-revision-link',\r\n templateUrl: './document-revision-link.component.html',\r\n styleUrls: ['./document-revision-link.component.css']\r\n})\r\nexport class DocumentRevisionLinkComponent implements OnInit {\r\n\r\n public editService: any;\r\n public editedRowIndex: any;\r\n public editedProduct: any;\r\n public groupDropdown: any[] = [];\r\n public stageDropdown!: any[];\r\n public docRevisionList: any[] = [];\r\n public groupId!: number | null;\r\n public statusDisable: boolean = true;\r\n public setDisable: boolean = false;\r\n public formGroup!: FormGroup;\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n\r\n constructor(private documentRevisionLinkService: DocumentRevisionLinkService, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.getBusinessGroupList();\r\n this.getgroupValue();\r\n }\r\n\r\n getBusinessGroupList() {\r\n this.mapRoleFeatureService.getBusinessGroups(this.commonService.getProjectId()).subscribe((data: BusinessGroupModel[]) => {\r\n this.groupDropdown = data;\r\n });\r\n }\r\n\r\n getDocumentRevision() {\r\n let obj = {\r\n \"projectId\": this.commonService.getProjectId(),\r\n \"groupId\": this.groupId,\r\n }\r\n this.documentRevisionLinkService.getDocumentRevision(obj).subscribe(data => {\r\n this.docRevisionList = data;\r\n })\r\n }\r\n\r\n getgroupValue() {\r\n this.mapRoleFeatureService.getDedAgainstDe(\"Workflow Status\", this.groupId, Module.Workflow, null, null, this.commonService.getProjectId()).subscribe(data => {\r\n this.stageDropdown = data;\r\n });\r\n // this.documentRevisionLinkService.getGroupData().subscribe(data => {\r\n // this.stageDropdown = data;\r\n // });\r\n }\r\n groupValueChange(val: any) {\r\n if (val.value != '-2') {\r\n this.groupId = val.additionalValues.additionalValues.group_Id;\r\n this.getDocumentRevision();\r\n this.getgroupValue();\r\n } else {\r\n this.groupId = null;\r\n this.docRevisionList = [];\r\n }\r\n }\r\n\r\n public addHandler(data: any) {\r\n this.closeEditor(data.sender, this.editRowIndex);\r\n if (!this.groupId) {\r\n this.notificationService.showToast(\"Please Select any one in Group\", \"Warning\");\r\n return;\r\n }\r\n this.statusDisable = true;\r\n this.setDisable = false;\r\n this.formGroup = new FormGroup({\r\n 'stage': new FormControl('', Validators.required),\r\n 'revision': new FormControl('', Validators.required),\r\n 'active_status': new FormControl(true)\r\n });\r\n this.grid.addRow(this.formGroup);\r\n\r\n }\r\n public editRowIndex: number | undefined;\r\n public editHandler(data: any) {\r\n this.editRowIndex = data.rowIndex;\r\n this.statusDisable = false;\r\n this.setDisable = true;\r\n this.formGroup = new FormGroup({\r\n 'stage': new FormControl(data.dataItem.stageId),\r\n 'revision': new FormControl(data.dataItem.revisionNo),\r\n 'active_status': new FormControl(data.dataItem.isActive),\r\n });\r\n this.closeEditor(data.sender);\r\n this.editedRowIndex = data.rowIndex;\r\n this.editedProduct = Object.assign({}, data.dataItem);\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n public cancelHandler(data: any) {\r\n this.closeEditor(data.sender, data.rowIndex);\r\n }\r\n\r\n // stageValueChange(val: any) { \r\n // if (val.value != '-2'){ \r\n // this.formGroup.get('stage').setValue(val.desc);\r\n // }else {\r\n // this.formGroup.get('stage').setValue(null);\r\n // }\r\n // }\r\n\r\n public saveHandler(data: any) {\r\n data.dataItem = this.formGroup.value;\r\n let obj = {};\r\n if (!this.groupId) {\r\n this.notificationService.showToast(\"Please Select any one in Group\", \"Warning\");\r\n return;\r\n }\r\n if (!data.dataItem.stage) {\r\n this.notificationService.showToast(\"Please Select any one in Stage\", \"Warning\");\r\n return;\r\n }\r\n if (!data.dataItem.revision) {\r\n this.notificationService.showToast(\"Please Enter Revision\", \"Warning\");\r\n return;\r\n }\r\n let findDuplicate;\r\n if (data.isNew) {\r\n let checkExist = this.stageDropdown.filter(x => x.dedId == data.dataItem.stage)[0];\r\n findDuplicate = this.docRevisionList.filter(x => x.stageDescription == checkExist.dedDescription)[0];\r\n } else {\r\n let checkExist = this.stageDropdown.filter(x => x.dedId == data.dataItem.stage)[0];\r\n findDuplicate = this.docRevisionList.filter(x => x.stageDescription == checkExist.dedDescription && x.isActive == data.dataItem.active_status && x.revisionNo == data.dataItem.revision.trimStart().trimEnd())[0];\r\n }\r\n if (!!findDuplicate) {\r\n this.notificationService.showToast(\"Duplicate Stage/No data changed\", \"Warning\");\r\n return;\r\n }\r\n if (!!data.dataItem) {\r\n if (data.isNew) {\r\n let selectedStage = this.stageDropdown.filter(x => x.dedId == data.dataItem.stage)[0];\r\n obj = {\r\n \"projectId\": this.commonService.getProjectId(),\r\n \"groupId\": this.groupId,\r\n \"stageId\": data.dataItem.stage,\r\n \"stageDescription\": selectedStage.dedDescription,\r\n \"created_By\": this.commonService.getLoggedInUserId(),\r\n \"created_On\": new Date(),\r\n \"revisionNo\": data.dataItem.revision.trimStart().trimEnd(),\r\n \"isActive\": data.dataItem.active_status,\r\n \"isDelete\": false,\r\n }\r\n this.documentRevisionLinkService.insertDocumentRevision(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.getDocumentRevision();\r\n }\r\n });\r\n }\r\n else {\r\n let selectedStage = this.stageDropdown.filter(x => x.dedId == data.dataItem.stage)[0];\r\n obj = {\r\n \"projectId\": this.commonService.getProjectId(),\r\n \"groupId\": this.groupId,\r\n \"stageId\": data.dataItem.stage,\r\n \"stageDescription\": selectedStage.dedDescription,\r\n \"modified_By\": this.commonService.getLoggedInUserId(),\r\n \"modified_On\": new Date(),\r\n \"revisionNo\": data.dataItem.revision.trimStart().trimEnd(),\r\n \"isActive\": data.dataItem.active_status,\r\n \"isDelete\": false,\r\n }\r\n this.documentRevisionLinkService.insertDocumentRevision(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.getDocumentRevision();\r\n }\r\n });\r\n }\r\n }\r\n data.sender.closeRow(data.rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n }\r\n\r\n public removeHandler(data: any) {\r\n let obj = {};\r\n if (!!data.dataItem) {\r\n data.dataItem.isDelete = true;\r\n obj = {\r\n \"projectId\": this.commonService.getProjectId(),\r\n \"groupId\": data.dataItem.groupId,\r\n \"stageId\": data.dataItem.stageId,\r\n \"stageDescription\": null,\r\n \"modified_By\": this.commonService.getLoggedInUserId(),\r\n \"modified_On\": new Date(),\r\n \"revisionNo\": data.dataItem.revisionNo.trimStart().trimEnd(),\r\n \"isActive\": data.dataItem.isActive,\r\n \"isDelete\": true,\r\n }\r\n this.documentRevisionLinkService.insertDocumentRevision(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.getDocumentRevision();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private closeEditor(grid: { closeRow: (arg0: any) => void; }, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Select Stage \r\n \r\n \r\n {{data.dedDescription}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementDetailsLinkService } from 'src/app/Service/element-details-link/element-details-link.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ElementdetailsService } from 'src/app/Service/elementdetails/elementdetails.service';\r\nimport { ElementsService } from 'src/app/Service/elements/elements.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { IElementDetailsSortByInputModel, IElementDetailsViewModel, IProjElementDetail } from 'src/app/ViewModel/ElementDetailsModel';\r\nimport { ElementLinkModel } from 'src/app/ViewModel/ElementLinkModel';\r\nimport { ElementDetailsLinkSaveModel } from 'src/app/ViewModel/ElementsDetailsLinkSaveModel';\r\nimport { IElementsViewModel } from 'src/app/ViewModel/ElementsModel';\r\nimport { ModuleModel } from 'src/app/ViewModel/ModuleModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { EditElementDetailsComponent } from '../../master/dialogs/elementdetails-dialog/edit-elementdetails-dialog.component';\r\n\r\n@Component({\r\n\tselector: 'app-element-details-link',\r\n\ttemplateUrl: './element-details-link.component.html',\r\n\tstyleUrls: ['./element-details-link.component.css']\r\n})\r\nexport class ElementDetailsLinkComponent implements OnInit {\r\n\r\n\t/** Selected business group id */\r\n\tbusinessGroupId!: number;\r\n\t/** Selected module id */\r\n\tmoduleId: number;\r\n\t/** Selected element id */\r\n\telementId: number | null = null;\r\n\t/** Selected element description */\r\n\telementDesc: string | null = '';\r\n\t/** Cart params data */\r\n\tcartRequest: any = {}\r\n\t/** Cart selected (right side) data */\r\n\tcartSelectedList: any[] = [];\r\n\tcartSelectedListCopy: [{ value: string; text: string; }] = [{ value: '', text: '' }];\r\n\t/** Array of cart's (right side) selected list's ids */\r\n\tcartSelectedIds: string[] = [];\r\n\t/** Is selected element has dependency */\r\n\telementHasDependency: boolean | null = null;\r\n\t/** Selected element id */\r\n\tdependentElementId: number | null = null;\r\n\t/** Selected element detail id */\r\n\tdependentElementDetailId: number | null = null;\r\n\t/**Module List */\r\n\tmoduleList!: ReadonlyArray;\r\n\t/** Element List */\r\n\telementList!: ReadonlyArray;\r\n\t/** Left side cart data. Filtered with right side data */\r\n\tfilteredCartList!: IElementDetailsViewModel[];\r\n\t/** Dependent Element Details List */\r\n\tdependentElementDetailsList!: RoleFeatureModel[];\r\n\t/** Business Group List */\r\n\tbusinessGroupList!: ReadonlyArray;\r\n\t/** Dependent Element List */\r\n\tdependentElementList!: ReadonlyArray;\r\n\t/** Element Detail List */\r\n\telementDetailsList!: ReadonlyArray;\r\n\tregisterForm!: FormGroup;\r\n\tGroupIdString!: string;\r\n\tModuleIdString: string | null = '';\r\n\tclearElementDD = 'N';\r\n\r\n\tconstructor(\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tpublic elementLinkService: ElementLinkService,\r\n\t\tpublic elementDetailLinkService: ElementDetailsLinkService,\r\n\t\tpublic elementDetailsService: ElementdetailsService,\r\n\t\tpublic elementService: ElementsService,\r\n\t\tprivate dialog: MatDialog,\r\n\t\tprivate formBuilder: FormBuilder\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.createForm();\r\n\t\tthis.commonService.selectedProjectId.subscribe((data: any) => {\r\n\t\t\tif (data != null || data != undefined) {\r\n\t\t\t\tthis.getBusinessGroups(data);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.getModuleList(0);\r\n\t}\r\n\r\n\tcreateForm() {\r\n\t\tthis.registerForm = this.formBuilder.group({\r\n\t\t\torderBy: ['', Validators.required],\r\n\t\t});\r\n\r\n\t}\r\n\t/**\r\n\t * Get Business Group list\r\n\t * @param projectId \r\n\t */\r\n\tasync getBusinessGroups(projectId: number) {\r\n\t\tlet response: any = await this.mapRoleFeatureService.getBusinessGroups(projectId).toPromise();\r\n\t\tthis.businessGroupList = response.filter((each: {\r\n\t\t\tis_Active: any;\r\n\t\t}) => each.is_Active);\r\n\t}\r\n\r\n\t/**\r\n\t * Get module List\r\n\t * @param businessGroupId \r\n\t */\r\n\tasync getModuleList(businessGroupId: number) {\r\n\t\tlet x = await this.elementLinkService.getModuleList(businessGroupId).toPromise();\r\n\t\tthis.moduleList = await this.elementLinkService.getModuleList(businessGroupId).toPromise();\r\n\t}\r\n\r\n\t/**\r\n\t * Get element list\r\n\t */\r\n\tasync getElementList() {\r\n\t\tlet response: any = await this.elementService.GetElementsList().toPromise();\r\n\t\tthis.elementList = response.filter((each: {\r\n\t\t\tis_Active: any;\r\n\t\t}) => each.is_Active);\r\n\t}\r\n\r\n\t/**\r\n\t * Get dependent element list\r\n\t */\r\n\tgetDependentElements() {\r\n\t\tthis.elementDetailLinkService.getDependentElements(this.commonService.getProjectId(), this.GroupIdString, this.ModuleIdString, this.elementId).subscribe((data: any) => {\r\n\t\t\tthis.dependentElementList = [data];\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get left and right side cart values\r\n\t * @param hasDependency \r\n\t */\r\n\tasync callApis(hasDependency?: boolean) {\r\n\t\tthis.elementDetailsList = await this.elementDetailsService.GetElementDetailsList(this.elementId).toPromise();\r\n\r\n\t\tlet selectedArr: any = await this.mapRoleFeatureService.getDedAgainstDe(this.elementDesc, this.GroupIdString, this.ModuleIdString, this.dependentElementId, this.dependentElementDetailId ? this.dependentElementDetailId : 0).toPromise();\r\n\t\tthis.cartSelectedList = [];\r\n\t\tthis.cartSelectedListCopy = [{\r\n\t\t\tvalue: '',\r\n\t\t\ttext: ''\r\n\t\t}];\r\n\t\tselectedArr.forEach((eachData: {\r\n\t\t\tdedId: string | number; dedShortDescription: string; dedDescription: string; sortBy: any;\r\n\t\t}) => {\r\n\t\t\tif (!this.cartSelectedList || !this.cartSelectedList.some(x => x.value == eachData.dedId && x.text ==\r\n\t\t\t\t(eachData.dedShortDescription ? eachData.dedShortDescription + ' - ' : '') + eachData.dedDescription)) {\r\n\t\t\t\tthis.cartSelectedList.push({\r\n\t\t\t\t\tvalue: eachData.dedId,\r\n\t\t\t\t\ttext: (eachData.dedShortDescription ? eachData.dedShortDescription + ' - ' : '') + eachData.dedDescription,\r\n\t\t\t\t\torderBy: (!!eachData.sortBy && eachData.sortBy != 0) ? eachData.sortBy : this.cartSelectedList.length + 1\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tthis.cartSelectedListCopy.push(this.getAsCartValue(eachData.dedId, eachData.dedDescription, (!!eachData.sortBy && eachData.sortBy != 0) ? eachData.sortBy : this.cartSelectedListCopy.length + 1));\r\n\t\t\tthis.cartSelectedIds.push(eachData.dedId.toString());\r\n\t\t});\r\n\r\n\t\tthis.filteredCartList = [];\r\n\t\tthis.filteredCartList = this.elementDetailsList.filter(x => x.is_Active && !selectedArr.find((y: {\r\n\t\t\tdedId: number | undefined;\r\n\t\t}) => y.dedId == x.deD_Id))\r\n\t\tthis.filteredCartList.forEach(x => x.deD_Description = (x.deD_Short_Description ? x.deD_Short_Description + ' - ' : '') + x.deD_Description);\r\n\t\tthis.setCartParams();\r\n\r\n\t\tif (this.elementHasDependency) {\r\n\t\t\tthis.getDependentElements();\r\n\t\t} else { }\r\n\t}\r\n\r\n\tchangeBusinessGroup(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.businessGroupId = Number(event.value);\r\n\t\t\tthis.getModuleList(Number(event.value));\r\n\t\t}\r\n\t\tthis.elementList = this.dependentElementList = this.dependentElementDetailsList = [];\r\n\t\tthis.ModuleIdString = this.elementDesc = this.elementId = this.dependentElementId = this.dependentElementDetailId = null;\r\n\t}\r\n\r\n\tchangeModule(event: any) {\r\n\t\tlet selectedMemberIds: number[] = event.emittingList.map((x: {\r\n\t\t\tvalue: any;\r\n\t\t}) => x.value);\r\n\t\tthis.clearElementDD = \"Y\";\r\n\t\tthis.elementList = [];\r\n\t\tif (selectedMemberIds && selectedMemberIds.length > 0) {\r\n\t\t\tthis.ModuleIdString = selectedMemberIds.toString();\r\n\t\t\tthis.getElementList();\r\n\t\t} else {\r\n\t\t\tthis.clearCart();\r\n\t\t}\r\n\t\tthis.elementDetailsList = [];\r\n\t\tthis.dependentElementDetailsList = this.dependentElementList = [];\r\n\t\tthis.elementId = this.dependentElementDetailId = this.dependentElementId = null;\r\n\t}\r\n\r\n\tasync changeElement(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.clearElementDD = 'N';\r\n\t\tthis.dependentElementList = [];\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.elementId = Number(event.value);\r\n\t\t\tthis.elementDesc = event.text;\r\n\t\t\tlet flagResponse = await this.elementLinkService.getDependentFlag(this.GroupIdString, this.ModuleIdString, this.elementId).toPromise();\r\n\t\t\tthis.elementHasDependency = flagResponse['hasDependency'];\r\n\r\n\t\t\tthis.callApis(this.elementHasDependency);\r\n\t\t} else {\r\n\t\t\tthis.elementId = this.elementDesc = this.elementHasDependency = null;\r\n\t\t\tthis.clearCart();\r\n\t\t}\r\n\t\tthis.dependentElementDetailsList = [];\r\n\t\tthis.dependentElementId = null;\r\n\t}\r\n\r\n\tchangeDependentElement(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event['value'] != '-2') {\r\n\t\t\tthis.dependentElementId = Number(event['value']);\r\n\t\t\tthis.clearCart();\r\n\t\t\tthis.mapRoleFeatureService.getDedAgainstDe(event['desc'], this.GroupIdString, this.ModuleIdString, null).subscribe((data: any) => {\r\n\t\t\t\tthis.dependentElementDetailsList = data;\r\n\t\t\t\tif (this.dependentElementDetailsList && this.dependentElementDetailsList.length > 0) {\r\n\t\t\t\t\tthis.dependentElementDetailsList.forEach(obj => {\r\n\t\t\t\t\t\tobj.dedDescription = obj.dedShortDescription + ' - ' + obj.dedDescription\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\r\n\t\t\tthis.callApis(this.elementHasDependency);\r\n\t\t\tthis.dependentElementId = this.dependentElementDetailId = null;\r\n\t\t\tthis.dependentElementDetailsList = [];\r\n\t\t}\r\n\t}\r\n\r\n\tchangeDependentElementDetail(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.dependentElementDetailId = Number(event['value']);\r\n\t\t\tthis.elementHasDependency = false;\r\n\t\t\tthis.callApis(this.elementHasDependency);\r\n\t\t} else {\r\n\t\t\tthis.dependentElementDetailId = null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Event handling when click 'Post' in cart\r\n\t * @param event \r\n\t */\r\n\tgetSelectedCartItems(event: any) {\r\n\t\tthis.saveElementDetailLink(event);\r\n\t}\r\n\r\n\t/**\r\n\t * Save Element Detail Link\r\n\t * @param event \r\n\t */\r\n\tpublic gridView!: any[];\r\n\topenGridView(data?: any) { }\r\n\r\n\tsaveElementDetailLink(event: any) {\r\n\t\tif (this.dependentElementId && !this.dependentElementDetailId) {\r\n\t\t\tthis.notificationService.showToast(\"Select Dependent Element Detail\", 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet newActiveIds = this.getIdAsArray(event),\r\n\t\t\tnewInActiveIds = this.getInActiveIds(newActiveIds),\r\n\t\t\treqData: ElementDetailsLinkSaveModel = {\r\n\t\t\t\tProjectId: this.commonService.getProjectId(),\r\n\t\t\t\tGroupId: this.GroupIdString,\r\n\t\t\t\tModuleId: this.ModuleIdString,\r\n\t\t\t\tElementId: this.elementId,\r\n\t\t\t\tDependentElementId: this.dependentElementId,\r\n\t\t\t\tDependentElementDetailedId: this.dependentElementDetailId ? this.dependentElementDetailId : 0,\r\n\t\t\t\tActiveElementDetailedIds: newActiveIds.length ? newActiveIds.toString() : null,\r\n\t\t\t\tInactiveElementDetailedIds: newInActiveIds.length ? newInActiveIds.toString() : null,\r\n\t\t\t\tCreatedBy: this.commonService.getLoggedInUserId(),\r\n\t\t\t};\r\n\t\tthis.elementDetailLinkService.saveElementsDetailsLink(reqData).subscribe((data: any) => {\r\n\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\tthis.callApis();\r\n\t\t});\r\n\t}\r\n\r\n\tgetInActiveIds(currentSelectedIds: number[]): number[] {\r\n\t\tlet inActiveIds: number[] = [];\r\n\t\tthis.cartSelectedListCopy.forEach(eachSelected => {\r\n\t\t\tif (!currentSelectedIds.includes(Number(eachSelected['value']))) {\r\n\t\t\t\tinActiveIds.push(Number(eachSelected['value']));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn inActiveIds;\r\n\t}\r\n\r\n\t/**\r\n\t * Return selected value as array of ids\r\n\t * Ex: [2,5,4,6,1]\r\n\t * @param eventArr \r\n\t */\r\n\tgetIdAsArray(eventArr: []): number[] {\r\n\t\tlet valueArr: number[] = [];\r\n\t\teventArr.forEach(eachEvent => {\r\n\t\t\tvalueArr.push(eachEvent['value'])\r\n\t\t});\r\n\t\treturn valueArr\r\n\t}\r\n\r\n\t/**\r\n\t * Setting cart data\r\n\t */\r\n\tsetCartParams() {\r\n\t\tthis.cartRequest = {\r\n\t\t\t'params': {\r\n\t\t\t\t'intCompanyCode': '1', 'intRegionCode': '376', 'DOPTCode': 'C', 'DTCode': '30016', 'UserID': '3095',\r\n\t\t\t\t'dtValuationPeriod': '31-05-2019',\r\n\t\t\t\t'LockingType': 'P',\r\n\t\t\t\t'selectedCartItems': this.cartSelectedList\r\n\t\t\t},\r\n\t\t\t'settings': {\r\n\t\t\t\t'mode': 'popup',\r\n\t\t\t\t'textField': 'deD_Description',\r\n\t\t\t\t'valueField': 'deD_Id',\r\n\t\t\t\t'cartLabel': 'Element Detail',\r\n\t\t\t\t'minimumSelectedItemCount': 0\r\n\t\t\t},\r\n\t\t\t'dataSource': this.filteredCartList,\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Clear cart left, right values\r\n\t */\r\n\tclearCart() {\r\n\t\tthis.cartSelectedList = [];\r\n\t\tthis.filteredCartList = [];\r\n\t\tthis.setCartParams();\r\n\t}\r\n\r\n\t/**\r\n\t * Get as cart's selected data format\r\n\t * @param value \r\n\t * @param text \r\n\t */\r\n\tgetAsCartValue(value: string | number, text: string, sortBy: number) {\r\n\t\tvalue = value.toString().trim();\r\n\t\ttext = text.trim();\r\n\r\n\t\treturn {\r\n\t\t\tvalue: value,\r\n\t\t\ttext: value + ' - ' + text,\r\n\t\t\torderBy: sortBy\r\n\t\t};\r\n\t}\r\n\r\n\topenElementDetailDialog() {\r\n\t\tif (!this.GroupIdString) {\r\n\t\t\tthis.notificationService.showToast('Select Business Group', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.ModuleIdString) {\r\n\t\t\tthis.notificationService.showToast('Select Module', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!this.elementId) {\r\n\t\t\tthis.notificationService.showToast('Select Element', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst dialogRef = this.dialog.open(EditElementDetailsComponent, {\r\n\t\t\tpanelClass: 'mat-dialog-secondary',\r\n\t\t\twidth: '95%',\r\n\t\t\tminWidth: '95vw',\r\n\t\t\tdata: {\r\n\t\t\t\telementdetails: null,\r\n\t\t\t\telementId: this.elementId,\r\n\t\t\t\telementList: this.elementList\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdialogRef.afterClosed().subscribe((data: any) => {\r\n\t\t\tthis.callApis();\r\n\t\t});\r\n\t}\r\n\r\n\tonChange_Member(event: any, num: any) {\r\n\t\tif (!!event) {\r\n\t\t\tlet selectedMemberIds: number[] = event.emittingList.map((x: {\r\n\t\t\t\tvalue: any;\r\n\t\t\t}) => x.value);\r\n\t\t\tthis.GroupIdString = selectedMemberIds.toString();\r\n\t\t\tthis.elementList = this.dependentElementList = this.dependentElementDetailsList = [];\r\n\t\t\tthis.elementDesc = this.elementId = this.dependentElementId = this.dependentElementDetailId = null;\r\n\t\t}\r\n\t}\r\n\r\n\tupdateElementDetailsSortOrder() {\r\n\t\tlet elementDetailsSortBy: IProjElementDetail[] = this.cartSelectedList.map((x, index) => {\r\n\t\t\tlet elementDetails: IProjElementDetail = {\r\n\t\t\t\tdeD_Id: x.value,\r\n\t\t\t\tsort_By: (!!x.orderBy && Number.isInteger(x.orderBy) && x.orderBy != 0) ? x.orderBy : index + 1\r\n\t\t\t};\r\n\t\t\treturn elementDetails;\r\n\t\t})\r\n\t\tlet elementDetailsOrderBy: IElementDetailsSortByInputModel = {\r\n\t\t\tprojectId: this.commonService.getProjectId(),\r\n\t\t\tgroupId: this.GroupIdString,\r\n\t\t\tmoduleId: this.ModuleIdString,\r\n\t\t\tdeId: this.elementId,\r\n\t\t\tuserId: this.commonService.getLoggedInUserId(),\r\n\t\t\tprojElementDetails: elementDetailsSortBy\r\n\t\t}\r\n\t\tthis.elementDetailLinkService.updateElementDetailsSortby(elementDetailsOrderBy).subscribe((res: StandardOutputModel) => {\r\n\t\t\tif (res.successCode == 200 && res.successMessage) {\r\n\t\t\t\tthis.notificationService.showToast(res.successMessage, \"Success\");\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Sl. No.Element DetailSort By
{{i+1}}{{data.text}} \r\n \r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { AddElementLinkDialogComponent } from '../dialogs/add-element-link-dialog/add-element-link-dialog.component';\r\nimport { ElementLinkModel } from 'src/app/ViewModel/ElementLinkModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n\tselector: 'app-element-link',\r\n\ttemplateUrl: './element-link.component.html',\r\n\tstyleUrls: ['./element-link.component.css']\r\n})\r\nexport class ElementLinkComponent implements OnInit {\r\n\r\n\t/** Selected Business List Id */\r\n\tbusinessGroupId = null;\r\n\tbuttonToggle = \"ELEMENT\"; // default value; Onload value;\r\n\tisElement = true;\r\n\tisStaticElement = false;\r\n\telementLinkList!: ReadonlyArray;\r\n\tenableFilter = false;\r\n\tenableFullscreen = false;\r\n\r\n\tpublic pageSize = [5, 10, 20, {\r\n\t\ttext: 'All',\r\n\t\tvalue: 'all'\r\n\t}];\r\n\tconstructor(public elementLinkService: ElementLinkService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tprivate dialog: MatDialog,\r\n\t\tprivate notificationService: NotificationService,\r\n\t) { }\r\n\r\n\tngOnInit() { }\r\n\r\n\tgetDocumentElements() {\r\n\t\tthis.elementLinkService.getDocumentElements(this.commonService.getProjectId(), false).subscribe((data: ElementLinkModel[]) => {\r\n\t\t\tthis.elementLinkList = data;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tchangeBusinessGroup(event: any) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.elementLinkService.selectedBusinessGrpId = event.value;\r\n\t\t\tthis.getDocumentElements();\r\n\t\t} else {\r\n\t\t\tthis.clearData();\r\n\t\t}\r\n\t}\r\n\r\n\tclearData() {\r\n\t\tthis.elementLinkService.selectedBusinessGrpId = null;\r\n\t\tthis.elementLinkService.clearBusinessGroup = 'Y';\r\n\t\tthis.elementLinkList = [];\r\n\t}\r\n\r\n\t/**\r\n\t * Button Toggle Event Handle\r\n\t * @param event \r\n\t */\r\n\tchangeButtonToggle(event: any) {\r\n\t\tthis.buttonToggle = event.value;\r\n\r\n\t\t// Element selected in button toggle\r\n\t\tif (this.buttonToggle == 'ELEMENT') {\r\n\t\t\tthis.isElement = true;\r\n\t\t\tthis.isStaticElement = false;\r\n\t\t} else {\r\n\t\t\t// Static Element selected in button toggle\r\n\t\t\tthis.isElement = false;\r\n\t\t\tthis.isStaticElement = true;\r\n\t\t}\r\n\t}\r\n\r\n\taddEditElementLink(dataItem: ElementLinkModel, isCreate: boolean) {\r\n\t\tif (this.elementLinkService.selectedBusinessGrpId) {\r\n\t\t\tlet dialogRef = this.dialog.open(AddElementLinkDialogComponent, {\r\n\t\t\t\tpanelClass: 'mat-dialog-secondary',\r\n\t\t\t\twidth: '95%',\r\n\t\t\t\tminWidth: '95vw',\r\n\t\t\t\tdisableClose: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tdataItem,\r\n\t\t\t\t\tisCreate,\r\n\t\t\t\t\tbusinessGroupId: this.elementLinkService.selectedBusinessGrpId,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.afterClosed().subscribe(data => {\r\n\t\t\t\tif (data['isChangesDone']) {\r\n\t\t\t\t\tthis.getDocumentElements();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.notificationService.showToast('Select Business Group', 'Warning');\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n Element\r\n Static Element\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.moduleDescription}}\r\n \r\n \r\n \r\n \r\n {{dataItem.elementDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.dependentElementDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { RoleFeatureMapped } from 'src/app/ViewModel/RoleFeatureMappedModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { RoleFeaturePostModel } from 'src/app/ViewModel/RoleFeaturePostModel';\r\n@Component({\r\n\tselector: 'app-map-role-feature',\r\n\ttemplateUrl: './map-role-feature.component.html',\r\n\tstyleUrls: ['./map-role-feature.component.css']\r\n})\r\nexport class MapRoleFeatureComponent implements OnInit {\r\n\t/** List of roles */\r\n\tpublic roleList: ReadonlyArray = [];\r\n\t/** List of Features */\r\n\tpublic featureList: ReadonlyArray = [];\r\n\t/** User transactional data. Changes done by user, recorded here */\r\n\tprivate userMappedObject = new Map();\r\n\t/** Copy of userMappedObject data, formmated db data */\r\n\tprivate userMappedObjFromDB = new Map();\r\n\t/** Business Group List */\r\n\tprivate businessGroupList: ReadonlyArray = [];\r\n\t/** Selected Business Group Id */\r\n\tprivate businessGroupId!: number;\r\n\t/** Feature Header Checkbox */\r\n\tprivate featureHeader: any = {};\r\n\tprivate roleHeader: any = {};\r\n\tpublic enableFilter = false;\r\n\tpublic enableFullscreen = false;\r\n\tprivate projectId!: number;\r\n\tpublic pageSize = [5, 10, 20, {\r\n\t\ttext: 'All',\r\n\t\tvalue: 'all'\r\n\t}];\r\n\r\n\tconstructor(\r\n\t\tprivate mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tprivate commonService: CommonService,\r\n\t\tprivate notificationService: NotificationService,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.projectId = this.commonService.getProjectId();\r\n\t\tthis.commonService.selectedProjectId.subscribe((data: any) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.getBusinessGroups(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get Business Group list\r\n\t * @param _projectId \r\n\t */\r\n\tgetBusinessGroups(_projectId: number) {\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(_projectId).subscribe((data: any) => {\r\n\t\t\tthis.businessGroupList = data.filter((eachData: any) => eachData.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Business group dropdown event handling\r\n\t * @param event \r\n\t */\r\n\tchangeBusinessGroup(event: { value: string | number | null; }) {\r\n\t\tif (event.value !== '-2') {\r\n\t\t\tthis.businessGroupId = Number(event.value);\r\n\t\t\tthis.userMappedObjFromDB.clear();\r\n\t\t\tthis.callApis();\r\n\t\t} else {\r\n\t\t\tthis.clearValues();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get Roles, Features and Mapped data.\r\n\t * Calling API one after other\r\n\t */\r\n\tasync callApis() {\r\n\t\tlet _dataObj: any = await this.mapRoleFeatureService.getDedAgainstDe('Role', this.businessGroupId, null, null).toPromise();\r\n\t\tlet _disObj = _dataObj.filter(\r\n\t\t\t(thing: { dedId: any; }, i: any, arr: any[]) => arr.findIndex(t => t.dedId === thing.dedId) === i\r\n\t\t);\r\n\t\tthis.roleList = _disObj;\r\n\t\tthis.featureList = await this.mapRoleFeatureService.getDedAgainstDe('Feature', this.businessGroupId, null, null).toPromise();\r\n\t\t//mapped data needs above two APIs response\r\n\t\tlet mappedResponse = await this.mapRoleFeatureService.getRoleFeatureLinkData(this.businessGroupId).toPromise();\r\n\t\tthis.formatDataDbToUi(mappedResponse);\r\n\t}\r\n\r\n\t/** \r\n\t * Set Feature Header Checkbox Status. \r\n\t * Call after API data received and\r\n\t * Call after every row data checkbox value changes\r\n\t */\r\n\tsetFeatureHeader(featureId?: number) {\r\n\t\tif (!featureId) {\r\n\t\t\tthis.featureList.forEach(feature => {\r\n\t\t\t\tthis.featureHeader[feature.dedId] = this.roleList.every((role) => this.userMappedObjFromDB.get(role.dedId + '_' + feature.dedId));\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.featureHeader[featureId] = this.roleList.every((role) => !!this.userMappedObject.get(role.dedId + '_' + featureId));\r\n\t\t}\r\n\t}\r\n\r\n\tsetRoleHeader(roleId?: number) {\r\n\t\tif (!roleId) {\r\n\t\t\tthis.roleList.forEach(role => {\r\n\t\t\t\tthis.roleHeader[role.dedId] = this.featureList.every((feature) => this.userMappedObjFromDB.get(role.dedId + '_' + feature.dedId));\r\n\t\t\t})\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.roleHeader[roleId] = this.featureList.every((feature) => !!this.userMappedObject.get(roleId + '_' + feature.dedId));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Data row Checkbox event trigger\r\n\t * @param isChecked Checked event status\r\n\t * @param role \r\n\t * @param feature \r\n\t */\r\n\tmapRoleFeature(isChecked: boolean, roleId: number, featureId: number) {\r\n\t\tlet key: string = roleId + '_' + featureId;\r\n\t\tif (this.userMappedObject.has(key)) {\r\n\t\t\tthis.userMappedObject.delete(key);\r\n\t\t} else {\r\n\t\t\tthis.userMappedObject.set(key, isChecked);\r\n\t\t}\r\n\t\tthis.setFeatureHeader(featureId);\r\n\t\tthis.setRoleHeader(roleId);\r\n\t}\r\n\r\n\t/**\r\n\t * Header checkbox event\r\n\t * @param isChecked Checked event status\r\n\t * @param featureId \r\n\t */\r\n\tcheckAllRoles(isChecked: boolean, featureId: number) {\r\n\t\tthis.roleList.forEach(eachRole => {\r\n\t\t\tthis.userMappedObject.set(eachRole.dedId + '_' + featureId, isChecked);\r\n\t\t\tthis.userMappedObjFromDB.set(eachRole.dedId + '_' + featureId, isChecked); // update in UI variable also\r\n\t\t});\r\n\t\tthis.featureHeader[featureId] = isChecked;\r\n\t}\r\n\r\n\tcheckAllFeatures(isChecked: boolean, roleId: number) {\r\n\t\tthis.featureList.forEach(eachFeat => {\r\n\t\t\tthis.userMappedObject.set(roleId + '_' + eachFeat.dedId, isChecked);\r\n\t\t\tthis.userMappedObjFromDB.set(roleId + '_' + eachFeat.dedId, isChecked);\r\n\t\t})\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Format UI Data (Object) to DB Data (Array). Done before API call\r\n\t */\r\n\tformatDataUiToDb() {\r\n\t\tlet output: RoleFeatureMapped[] = [];\r\n\t\tlet splitData = [];\r\n\t\tthis.userMappedObject.forEach((isCheck, key) => {\r\n\t\t\tsplitData = key.split('_');\r\n\t\t\toutput.push(this.convertData(Number(splitData[0]), Number(splitData[1]), isCheck));\r\n\t\t});\r\n\t\treturn output;\r\n\t}\r\n\r\n\t/**\r\n\t * Format DB Data (Array) to UI Data (Object)\r\n\t */\r\n\tformatDataDbToUi(arrData: RoleFeatureMapped[]) {\r\n\t\tarrData.forEach(eachData => {\r\n\t\t\tthis.userMappedObjFromDB.set(eachData.roleId + '_' + eachData.featureId, eachData.isCheck);\r\n\t\t});\r\n\t\tthis.setFeatureHeader();\r\n\t\tthis.setRoleHeader();\r\n\t}\r\n\r\n\t/**\r\n\t * Save changes. API call\r\n\t */\r\n\tsubmitMapped() {\r\n\t\t// no data in kendo\r\n\t\tif (!this.roleList.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet roleFeaturesMapping = this.formatDataUiToDb();\r\n\r\n\t\tif (!roleFeaturesMapping.length) {\r\n\t\t\tthis.notificationService.showToast(\"No new changes done\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet reqData: RoleFeaturePostModel = {\r\n\t\t\troleFeaturesMapping,\r\n\t\t\tcreatedBy: this.commonService.getLoggedInUserId(),\r\n\t\t\tprojectId: this.commonService.getProjectId(),\r\n\t\t\tgroupId: this.businessGroupId,\r\n\t\t}\r\n\t\tthis.mapRoleFeatureService.postRoleFeature(reqData).subscribe((data: any) => {\r\n\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\tthis.userMappedObject.clear();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Returns Params as Object\r\n\t * @param roleId \r\n\t * @param featureId\r\n\t * @param isCheck \r\n\t */\r\n\tconvertData = (roleId: number, featureId: number, isCheck: boolean) => ({ roleId, featureId, isCheck })\r\n\r\n\t/**\r\n\t * Check whether the role and feature mapped or not \r\n\t * @param roleId \r\n\t * @param featureId \r\n\t */\r\n\tisChecked = (roleId: number, featureId: number): boolean => !!this.userMappedObjFromDB.get(roleId + '_' + featureId);\r\n\r\n\tclearValues() {\r\n\t\tthis.roleList = [];\r\n\t\tthis.featureList = [];\r\n\t\tthis.userMappedObject.clear();\r\n\t\tthis.userMappedObjFromDB.clear();\r\n\t}\r\n\r\n\tcheckGridHeight() {\r\n\t\tif (this.roleList.length > 0)\r\n\t\t\treturn 540;\r\n\t\telse\r\n\t\t\treturn 182;\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n \r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.dedDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{feature.dedDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { DataBindingDirective, GridComponent } from '@progress/kendo-angular-grid';\r\n\r\n\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { EIPGeneralCartModule } from 'eipgeneral-cart';\r\nimport { EIPMultiSelectAutoCompleteComponent } from 'eipmulti-select-auto-complete';\r\nimport { groupBy, values } from 'lodash';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { MemberElementDetailLinkService } from 'src/app/Service/member-element-detail-link/member-element-detail-link.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ElementsService } from 'src/app/Service/elements/elements.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'app-member-element-detail-link',\r\n\ttemplateUrl: './member-element-detail-link.component.html',\r\n\tstyleUrls: ['./member-element-detail-link.component.css']\r\n})\r\nexport class MemberElementDetailLinkComponent implements OnInit, OnDestroy {\r\n\tpublic projectId: number;\r\n\tcartRequest = {};\r\n\tbusinessGrpList: BusinessGroupModel[] = [];\r\n\tbusinessGrpId: number | null | undefined;\r\n\tdisciplineList: any | RoleFeatureModel[] = [];\r\n\tdisciplineId: number | null | undefined;\r\n\tremarks = \"\";\r\n\tprojectMembers: any | ProjectMemberModel[] | undefined;\r\n\tprojectSelectedMembers: ProjectMemberModel[] = [];\r\n\tcartDataSource: any[] = [];\r\n\tcartSelectedData: any = [];\r\n\tcartSelectedDataCopy = [];\r\n\telementId: number | null | undefined;\r\n\telementDetailedId: string | null | undefined;\r\n\telementDedIdCount: number;\r\n\tclearElementDD: boolean = true;\r\n\tClearElementDD: string = 'N';\r\n\tdedDescription: any;\r\n\tdisciplineClearDD = 'N';\r\n\tsetClick: boolean = true;\r\n\tfakeCheckAll: boolean | undefined;\r\n\tpublic postMember: any[] = [];\r\n\tselectionAction: any[] = [];\r\n\tinactiveMemberIds: any[] = [];\r\n\tNewMemberSelect: any[] = [];\r\n\tremovedMember: any[] = [];\r\n\tallRowsSelected: boolean = false;\r\n\tallRowsLeftSelected: boolean = false;\r\n\tenableFilter: boolean = true;\r\n\tFilterDataRSList: any[] = []\r\n\tFilterDataLSList: any[] = [];\r\n\tpublic skip: number = 20;\r\n\tpublic isEmitOnSelect: string = \"N\";\r\n\tmyfilter: any;\r\n\r\n\tmoduleList: any[] = [];\r\n\telementList: any[] = [];\r\n\telemenetDedList: any[] = [];\r\n\tselectedBusinessId: number;\r\n\tselectedModule: any;\r\n\tselectedModuleIds: string;\r\n\tselectedModuleCount: number = 0;\r\n\tselectedEle_De_desc: string;\r\n\tselectedEle_De_Id: number;\r\n\tselectedEle_Ded_desc: string;\r\n\tselectedEle_Ded_Id: number;\r\n\tUnsubscribeArray: Subscription[] = [];\r\n\r\n\r\n\t@ViewChild('CheckTest') select: any | EIPMultiSelectAutoCompleteComponent;\r\n\t@ViewChild('card') card: EIPGeneralCartModule | undefined;\r\n\t@ViewChild('grid') grid: GridComponent | undefined;\r\n\t@ViewChild(DataBindingDirective) directive: any;\r\n\t@ViewChild('searchLeftName') inputLeftName: any;\r\n\t@ViewChild('searchRightName') inputRightName: any;\r\n\r\n\r\n\tconstructor(public organizationService: OrganizationService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic memberElementDetailLinkService: MemberElementDetailLinkService,\r\n\t\tpublic elementLinkService: ElementLinkService,\r\n\t\tpublic elementService: ElementsService,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.projectId = this.commonService.getProjectId();\r\n\t\tlet getbusiness = this.commonService.selectedProjectId.subscribe((data: any) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.getBusinessGroup(data);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.UnsubscribeArray.push(getbusiness);\r\n\t}\r\n\r\n\t/**\r\n\t * Get business group list \r\n\t * @param projectId \r\n\t */\r\n\tasync getBusinessGroup(projectId: number) {\r\n\t\tlet response: any = await this.mapRoleFeatureService.getBusinessGroups(projectId).toPromise();\r\n\t\tthis.businessGrpList = response.filter((each: any) => each.is_Active);\r\n\t}\r\n\r\n\tasync onchangeBusinessGroup(event) {\r\n\t\tthis.businessGrpId = Number(event.value);\r\n\t\tthis.getModuleList(this.businessGrpId);\r\n\t}\r\n\tasync getModuleList(businessGroupId: number) {\r\n\t\tthis.moduleList = await this.elementLinkService.getModuleList(businessGroupId).toPromise();\r\n\t\tthis.moduleList = this.moduleList.filter(x => x.cedDescription == \"Upload Document\" || x.cedDescription == \"Schedule Document\");\r\n\t}\r\n\tasync onchangeModule(event: any) {\r\n\t\tlet selectedModule: number[] = event.emittingList.map(x => x.value);\r\n\t\tif (selectedModule && selectedModule.length > 0) {\r\n\t\t\tthis.elementList = [];\r\n\t\t\tthis.disciplineList = [];\r\n\t\t\tthis.tempdiscipline = [];\r\n\t\t\tthis.cartSelectedData = [];\r\n\t\t\tthis.elementDedIdCount = 0;\r\n\t\t\tthis.selectedModuleCount = selectedModule.length;\r\n\t\t\tthis.selectedModuleIds = selectedModule.toString();\r\n\t\t\tthis.elementList = await this.elementLinkService.getModuleElements(this.projectId, this.businessGrpId, this.selectedModuleIds, this.selectedModuleCount).toPromise();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.selectedModuleCount = 0;\r\n\t\t\tthis.selectedModuleIds = null;\r\n\t\t\tthis.elementList = [];\r\n\t\t\tthis.disciplineList = [];\r\n\t\t\tthis.tempdiscipline = [];\r\n\t\t\tthis.elementDedIdCount = 0;\r\n\t\t\tthis.cartDataSource = [];\r\n\t\t\tthis.projectSelectedMembers = [];\r\n\t\t\tthis.cartSelectedData = [];\r\n\t\t}\r\n\t}\r\n\ttempdiscipline: any[] = [];\r\n\tasync onchangeElement(event) {\r\n\t\tthis.disciplineList = [];\r\n\t\tthis.tempdiscipline = [];\r\n\t\tthis.selectedEle_De_desc = event.desc;\r\n\t\tthis.elementId = event.value;\r\n\t\tthis.disciplineList = await this.mapRoleFeatureService.getDedAgainstDe(this.selectedEle_De_desc, this.businessGrpId, this.selectedModuleIds, null, 0).toPromise();\r\n\t\tthis.disciplineList.forEach(eachData => {\r\n\t\t\tif (!this.tempdiscipline || !this.tempdiscipline.some(x => x.value == eachData.dedId && x.text ==\r\n\t\t\t\t(eachData.dedShortDescription ? eachData.dedShortDescription + ' - ' : '') + eachData.dedDescription)) {\r\n\t\t\t\tthis.tempdiscipline.push({ value: eachData.dedId, text: (eachData.dedShortDescription ? eachData.dedShortDescription + ' - ' : '') + eachData.dedDescription, orderBy: eachData.sortBy });\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.disciplineList = this.tempdiscipline;\r\n\t}\r\n\tasync onchangeEleDetail(event) {\r\n\t\tlet selectedDEDIds: number[] = event.emittingList.map(x => x.value);\r\n\t\tif (selectedDEDIds && selectedDEDIds.length > 0) {\r\n\t\t\tthis.cartSelectedData = [];\r\n\t\t\tthis.elementDedIdCount = selectedDEDIds.length;\r\n\t\t\tthis.elementDetailedId = selectedDEDIds.toString();\r\n\t\t\tthis.projectMembers = await this.memberElementDetailLinkService.getMembers(this.businessGrpId, this.commonService.getProjectId()).toPromise();\r\n\t\t\tthis.setCartValues();\r\n\t\t\tthis.callApis();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.elementDedIdCount = 0;\r\n\t\t\tthis.projectMembers = [];\r\n\t\t\tthis.cartDataSource = [];\r\n\t\t\tthis.projectSelectedMembers = [];\r\n\t\t\tthis.cartSelectedData = [];\r\n\t\t}\r\n\t}\r\n\r\n\tonSelectionChangeRightSide(event: any): void {\r\n\t\tif (event['selectedRows'].length > 0) {\r\n\t\t\tevent['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n\t\t\t\telement.dataItem.isSelected = true;\r\n\t\t\t\tthis.selectionAction.push(element.dataItem);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (event['deselectedRows'].length > 0) {\r\n\t\t\tevent['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; value: any; }; }) => {\r\n\t\t\t\telement.dataItem.isSelected = false;\r\n\t\t\t\tfor (let i = 0; i < this.selectionAction.length; i++) {\r\n\t\t\t\t\tif (element.dataItem.value == this.selectionAction[i].value) {\r\n\t\t\t\t\t\tthis.selectionAction.splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonSelectionChangeLeftSide(event: any) {\r\n\t\tif (event['selectedRows'].length > 0) {\r\n\t\t\tevent['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n\t\t\t\telement.dataItem.isSelected = true;\r\n\t\t\t\tthis.inactiveMemberIds.push(element.dataItem);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (event['deselectedRows'].length > 0) {\r\n\t\t\tevent['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; value: any; }; }) => {\r\n\t\t\t\telement.dataItem.isSelected = false;\r\n\t\t\t\tfor (let i = 0; i < this.inactiveMemberIds.length; i++) {\r\n\t\t\t\t\tif (element.dataItem.value == this.inactiveMemberIds[i].value) {\r\n\t\t\t\t\t\tthis.inactiveMemberIds.splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\tasync callApis() {\r\n\t\t// this.projectMembers = await this.memberElementDetailLinkService.getMembers(this.businessGrpId, this.commonService.getProjectId()).toPromise();\t\t\t\r\n\t\tthis.removedMember = [];\r\n\t\tthis.inactiveMemberIds = [];\r\n\t\tthis.projectSelectedMembers = [];\r\n\t\tthis.cartSelectedData = [];\r\n\t\tif (this.businessGrpId)\r\n\t\t\tthis.projectSelectedMembers = await this.memberElementDetailLinkService.getSelectedElementMembers(this.commonService.getProjectId(), this.businessGrpId, this.elementId, this.elementDetailedId, this.elementDedIdCount, this.selectedModuleIds, this.selectedModuleCount).toPromise();\r\n\t\tthis.projectSelectedMembers.forEach((eachMember, index) => {\r\n\t\t\tlet cartValue: any = this.getAsCartSelectedValue(eachMember.memberId, eachMember.memberName);\r\n\t\t\tcartValue[\"itemIndex\"] = index;\r\n\t\t\tcartValue[\"isCheck\"] = false;\r\n\t\t\tcartValue[\"isCheckAll\"] = false;\r\n\t\t\tthis.cartSelectedData.push(cartValue);\r\n\t\t});\r\n\t\tthis.FilterDataLSList = this.cartSelectedData;\r\n\t\tthis.setCartValues();\r\n\t}\r\n\r\n\t/**\r\n\t * Set cart values\r\n\t * Remove selected cart list from original carts list\r\n\t */\r\n\tOnClickRightSideHeaderCheckbox(event: any, dataItem: any) {\r\n\t\tif (event.currentTarget.checked) {\r\n\t\t\tthis.selectionAction = [];\r\n\t\t\tthis.cartDataSource.forEach(member => {\r\n\t\t\t\tmember.isCheck = true\r\n\t\t\t})\r\n\t\t\tthis.selectionAction = this.cartDataSource;\r\n\t\t} else {\r\n\t\t\tthis.selectionAction = [];\r\n\t\t\tthis.cartDataSource.forEach(member => {\r\n\t\t\t\tmember.isCheck = false;\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\trightcellClickHandler(event: any) {\r\n\t\tlet duplicateSelect: boolean = false;\r\n\t\tthis.myfilter = true;\r\n\t\tif (this.selectionAction.length > 0) {\r\n\t\t\tthis.selectionAction.forEach(data => {\r\n\t\t\t\tif (data.value == event.dataItem.value) {\r\n\t\t\t\t\tdata.isCheck = !data.isCheck;\r\n\t\t\t\t\tduplicateSelect = true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tif (duplicateSelect == false) {\r\n\t\t\t\tevent.dataItem.isCheck = true;\r\n\t\t\t\tthis.selectionAction.push(event.dataItem)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tevent.dataItem.isCheck = true;\r\n\t\t\tthis.selectionAction.push(event.dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\tleftSidecellClickHandler(event: any) {\r\n\t\tlet duplicateSelect: boolean = false;\r\n\t\tif (this.inactiveMemberIds.length > 0) {\r\n\t\t\tthis.inactiveMemberIds.forEach(data => {\r\n\t\t\t\tif (data.value == event.dataItem.value) {\r\n\t\t\t\t\tdata.isCheck = !data.isCheck;\r\n\t\t\t\t\tduplicateSelect = true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tif (duplicateSelect == false) {\r\n\t\t\t\tevent.dataItem.isCheck = true;\r\n\t\t\t\tthis.inactiveMemberIds.push(event.dataItem)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tevent.dataItem.isCheck = true;\r\n\t\t\tthis.inactiveMemberIds.push(event.dataItem);\r\n\t\t}\r\n\t}\r\n\r\n\tOnClickRightSideRowCheckbox(event: any, dataItem: any) {\r\n\t\tif (event.currentTarget.checked) {\r\n\t\t\tlet duplicateSelect: boolean = false;\r\n\t\t\tif (this.selectionAction.length > 0) {\r\n\t\t\t\tthis.selectionAction.forEach(data => {\r\n\t\t\t\t\tif (data.value == dataItem.value) {\r\n\t\t\t\t\t\tdata.isCheck = true;\r\n\t\t\t\t\t\tduplicateSelect = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tif (duplicateSelect == false) {\r\n\t\t\t\t\tdataItem.isCheck = true;\r\n\t\t\t\t\tthis.selectionAction.push(dataItem)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdataItem.isCheck = true;\r\n\t\t\t\tthis.selectionAction.push(dataItem);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.selectionAction.forEach(data => {\r\n\t\t\t\tif (data.value == dataItem.value) {\r\n\t\t\t\t\tdata.isCheck = false;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tOnClickLeftSideHeaderCheckbox(event: any, dataItem: any) {\r\n\t\tif (event.currentTarget.checked) {\r\n\t\t\tthis.inactiveMemberIds = [];\r\n\t\t\tthis.cartSelectedData.forEach((member: any) => {\r\n\t\t\t\tmember.isCheck = true\r\n\t\t\t})\r\n\t\t\tthis.inactiveMemberIds = this.cartSelectedData;\r\n\t\t} else {\r\n\t\t\tthis.inactiveMemberIds = [];\r\n\t\t\tthis.cartSelectedData.forEach((member: any) => {\r\n\t\t\t\tmember.isCheck = false;\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tpublic onFilterRS(inputValue: string): void {\r\n\t\tthis.cartDataSource = process(this.FilterDataRSList, {\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"or\",\r\n\t\t\t\tfilters: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'text',\r\n\t\t\t\t\t\toperator: 'contains',\r\n\t\t\t\t\t\tvalue: inputValue\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}\r\n\t\t}).data;\r\n\t\tthis.directive.skip = 0;\r\n\t}\r\n\r\n\tpublic onFilterLS(inputValue: string): void {\r\n\t\tthis.cartSelectedData = process(this.FilterDataLSList, {\r\n\t\t\tfilter: {\r\n\t\t\t\tlogic: \"or\",\r\n\t\t\t\tfilters: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'text',\r\n\t\t\t\t\t\toperator: 'contains',\r\n\t\t\t\t\t\tvalue: inputValue\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t}\r\n\t\t}).data;\r\n\t\tthis.directive.skip = 0;\r\n\t}\r\n\r\n\tOnClickLeftSideRowCheckbox(event: any, dataItem: any) {\r\n\t\tif (event.currentTarget.checked) {\r\n\t\t\tlet duplicateSelect: boolean = false;\r\n\t\t\tif (this.inactiveMemberIds.length > 0) {\r\n\t\t\t\tthis.inactiveMemberIds.forEach(data => {\r\n\t\t\t\t\tif (data.value == dataItem.value) {\r\n\t\t\t\t\t\tdata.isCheck = true;\r\n\t\t\t\t\t\tduplicateSelect = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tif (duplicateSelect == false) {\r\n\t\t\t\t\tdataItem.isCheck = true;\r\n\t\t\t\t\tthis.inactiveMemberIds.push(dataItem)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdataItem.isCheck = true;\r\n\t\t\t\tthis.inactiveMemberIds.push(dataItem);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.inactiveMemberIds.forEach(data => {\r\n\t\t\t\tif (data.value == dataItem.value) {\r\n\t\t\t\t\tdata.isCheck = false;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tsetCartValues() {\r\n\t\tconst arr: any = this.projectMembers;\r\n\t\tconst ids: any = this.projectMembers.map((o: { memberId: any; }) => o.memberId);\r\n\t\tconst filtered = arr.filter(({ memberId }: any, index: number) => !ids.includes(memberId, index + 1));\r\n\t\tif (filtered.length > 0) {\r\n\t\t\tfiltered.forEach((eachMember: { memberId: string | number; memberName: string; }, index: any) => {\r\n\t\t\t\tlet cartValue: any = this.getAsCartSelectedValue(eachMember.memberId, eachMember.memberName);\r\n\t\t\t\tcartValue[\"itemIndex\"] = index;\r\n\t\t\t\tcartValue[\"isCheck\"] = false;\r\n\t\t\t\tcartValue[\"isCheckAll\"] = false;\r\n\t\t\t\tthis.cartDataSource.push(cartValue);\r\n\t\t\t\tthis.cartDataSource = this.getUnique(this.cartDataSource, 'text')\r\n\t\t\t});\r\n\t\t\tthis.FilterDataRSList = this.cartDataSource;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tgetUnique(arr: any[], comp: string) {\r\n\t\t// store the comparison values in array\r\n\t\tconst unique = arr.map(e => e[comp])\r\n\t\t\t// store the indexes of the unique objects\r\n\t\t\t.map((e: any, i, final) => final.indexOf(e) === i && i)\r\n\t\t\t// eliminate the false indexes & return unique objects\r\n\t\t\t.filter((e: any) => arr[e]).map((e: any) => arr[e]);\r\n\t\treturn unique;\r\n\t}\r\n\trightSideMoveMember() {\r\n\t\tthis.NewMemberSelect = [];\r\n\t\tif (!this.businessGrpId) {\r\n\t\t\tthis.notificationService.showToast(\"Select Business Group\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.elementId) {\r\n\t\t\tthis.notificationService.showToast(\"Select Element\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet uniqMember: any[] = [];\r\n\t\tlet selectedMember: any[] = [];\r\n\t\tselectedMember = this.selectionAction.filter(data => data.isCheck == true);\r\n\t\tif (selectedMember.length > 0) {\r\n\t\t\tselectedMember.forEach((element, index) => {\r\n\t\t\t\tthis.NewMemberSelect.push(element.value);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (this.NewMemberSelect.length > 0) {\r\n\t\t\tthis.saveMemberElementDetailLink();\r\n\t\t}\r\n\r\n\t\tif (this.cartSelectedData.length > 0) {\r\n\t\t\tselectedMember.forEach((obj, index) => {\r\n\t\t\t\tlet duplicateMember = this.cartSelectedData.some((member: { value: any; }) => member.value == obj.value);\r\n\t\t\t\tif (duplicateMember == false) {\r\n\t\t\t\t\tuniqMember.push(obj);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tArray.prototype.push.apply(this.cartSelectedData, selectedMember);\r\n\t\t}\r\n\t\tif (uniqMember.length > 0) {\r\n\t\t\tArray.prototype.push.apply(this.cartSelectedData, uniqMember);\r\n\t\t}\r\n\t\tthis.cartSelectedData.forEach((member: { [x: string]: any; }, index: any) => {\r\n\t\t\tmember[\"itemIndex\"] = index;\r\n\t\t})\r\n\t\tif (this.inputLeftName.nativeElement.value == '')\r\n\t\t\tthis.inputLeftName.nativeElement.placeholder = 'Search Member...';\r\n\t\telse\r\n\t\t\tthis.inputLeftName.nativeElement.value = '';\r\n\r\n\t}\r\n\r\n\r\n\r\n\r\n\tleftSideMoveMember() {\r\n\t\tif (!this.businessGrpId) {\r\n\t\t\tthis.notificationService.showToast(\"Select business group\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.elementId) {\r\n\t\t\tthis.notificationService.showToast(\"Select discipline\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet uniqMember: any[] = [];\r\n\t\tthis.removedMember = [];\r\n\t\tlet leftSideselectedMember: any[] = [];\r\n\t\tleftSideselectedMember = this.inactiveMemberIds.filter(data => data.isCheck == true);\r\n\t\tif (leftSideselectedMember.length > 0) {\r\n\t\t\tleftSideselectedMember.forEach((element, index) => {\r\n\t\t\t\tthis.removedMember.push(element.value);\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (this.removedMember.length > 0) {\r\n\t\t\tthis.saveMemberElementDetailLink();\r\n\t\t}\r\n\t\tif (this.cartSelectedData.length > 0) {\r\n\t\t\tleftSideselectedMember.forEach((obj, index) => {\r\n\t\t\t\tthis.cartSelectedData.forEach((member: { value: any; }, i: any) => {\r\n\t\t\t\t\tif (member.value == obj.value) {\r\n\t\t\t\t\t\tthis.cartSelectedData.splice(i, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (this.inputRightName.nativeElement.value == '')\r\n\t\t\tthis.inputRightName.nativeElement.placeholder = 'Search Member...';\r\n\t\telse\r\n\t\t\tthis.inputRightName.nativeElement.value = '';\r\n\t}\r\n\r\n\tactiveIds(event: EIPAutoCompleteEventModel[]) {\r\n\t\tlet selectedIds: any = [];\r\n\t\tevent.forEach(eachMember => {\r\n\t\t\tselectedIds.push(eachMember.value);\r\n\t\t});\r\n\t\treturn selectedIds;\r\n\t}\r\n\r\n\t/**\r\n\t * Change data to respective cart selected data format\r\n\t * @param value \r\n\t * @param text \r\n\t */\r\n\tgetAsCartSelectedValue(value: string | number, text: string) {\r\n\t\tvalue = value.toString().trim();\r\n\t\ttext = text.trim();\r\n\t\tlet output = {\r\n\t\t\tvalue,\r\n\t\t\ttext: value + ' - ' + text\r\n\t\t};\r\n\t\treturn output;\r\n\t}\r\n\r\n\r\n\r\n\r\n\tsaveMemberElementDetailLink() {\r\n\t\tthis.NewMemberSelect.forEach((memberID, i) => {\r\n\t\t\tlet duplicateMemberId = this.removedMember.some(newmemberID => newmemberID == memberID);\r\n\t\t\tif (duplicateMemberId) {\r\n\t\t\t\tthis.NewMemberSelect.splice(i, 1);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tlet reqData: any = {\r\n\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\"groupId\": this.businessGrpId,\r\n\t\t\t\"elementId\": this.elementId,\r\n\t\t\t\"elementDetailedId\": this.elementDetailedId,\r\n\t\t\t\"activeMemberIds\": this.NewMemberSelect.length > 0 ? this.NewMemberSelect.toString() : null,\r\n\t\t\t\"inactiveMemberIds\": this.removedMember.length > 0 ? this.removedMember.toString() : null,\r\n\t\t\t\"createdBy\": this.commonService.getLoggedInUserId(),\r\n\t\t\t\"module\": this.selectedModuleIds\r\n\t\t}\r\n\r\n\t\tlet postmember = this.memberElementDetailLinkService.postMembersElementDetails(reqData).subscribe(data => {\r\n\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\tthis.selectionAction = [];\r\n\t\t\tthis.NewMemberSelect = [];\r\n\t\t\tthis.removedMember = [];\r\n\t\t\tthis.inactiveMemberIds = [];\r\n\t\t\tthis.cartDataSource = [];\r\n\t\t\tthis.allRowsSelected = false;\r\n\t\t\tthis.allRowsLeftSelected = false;\r\n\t\t\tthis.cartSelectedData = [];\r\n\t\t\tthis.callApis();\r\n\t\t});\r\n\t\tthis.UnsubscribeArray.push(postmember);\r\n\t}\r\n\r\n\t/** \r\n\t * Compare previous selected cart data input and current selected cart data input to get inactive ids\r\n\t * @param prevSelected \r\n\t * @param currentSelected \r\n\t * @returns Ex: ['16345'] \r\n\t */\r\n\tgetInactiveIds(prevSelected: any[], currentSelected: string | any[]) {\r\n\t\tlet InActiveIds: any[] = [];\r\n\t\tprevSelected.forEach(eachSelected => {\r\n\t\t\tif (!currentSelected.includes(eachSelected['value'])) {\r\n\t\t\t\tInActiveIds.push(eachSelected['value']);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn InActiveIds;\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Compare two arrays and remove data which presents in second array\r\n\t * @param dataSource Main data array\r\n\t * @param selectedArray selected array. Needs to remove from main data array\r\n\t * @param key value key name\r\n\t */\r\n\tremoveDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n\t\tlet filteredArray: any[] = [],\r\n\t\t\tgrpdSelecetedArray = groupBy(selectedArray, key);\r\n\t\tdataSource.forEach((eachData: any) => {\r\n\t\t\tif (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n\t\t\t\tfilteredArray.push(eachData);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn filteredArray;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n\t}\r\n}","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n MemberName\r\n \r\n \r\n \r\n {{dataItem.text}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Selected MemberName \r\n \r\n \r\n \r\n {{dataItem.text}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { MemberRoleLinkService } from 'src/app/Service/member-role-link/member-role-link.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { ReplectRoleMemberModel, RoleMemberMappedModel } from 'src/app/ViewModel/RoleMemberMappedModel';\r\nimport { RoleMemberPostModel } from 'src/app/ViewModel/RoleMemberPostModel';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { ProjectViewModel } from \"src/app/ViewModel/ProjectModel\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ReplaceMemberComponent } from '../replace-member/replace-member.component';\r\n\r\n@Component({\r\n\tselector: 'app-member-role-link',\r\n\ttemplateUrl: './member-role-link.component.html',\r\n\tstyleUrls: ['./member-role-link.component.css']\r\n})\r\nexport class MemberRoleLinkComponent implements OnInit {\r\n\r\n\trolesList: ReadonlyArray = [];\r\n\tprivate businessGroupList: ReadonlyArray = [];\r\n\tmemberList: ReadonlyArray = [];\r\n\t/** User transactional data. Changes done by user, recorded here */\r\n\tprivate userMappedObject = new Map();\r\n\t/** Copy of userMappedObject data, formmated db data */\r\n\tprivate userMappedObjFromDB = new Map();\r\n\r\n\tprivate userMappedObjFromAssignmentDetailsDB = new Map();\r\n\t/** Selected Business Group Id */\r\n\tprivate businessGroupId!: number;\r\n\t/** Role Header Checkbox */\r\n\tprivate roleHeader: any = {};\r\n\tmemberHeader: any = {};\r\n\tenableFilter = false;\r\n\tenableFullscreen = false;\r\n\tcanUpload: boolean = false;\r\n\tprojectId!: number;\r\n\tgroupId!: number;\r\n\tmemberId!: number;\r\n\tprojectCode!: string;\r\n\tacceptFileTypes: string = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n\t@ViewChild('grid') public grid!: GridComponent;\r\n\t@ViewChild('excelMemberRoleUpload') excelMemberRoleUpload: any;\r\n\tReplectRoleMemberModel: ReplectRoleMemberModel[];\r\n\r\n\tpublic pageSize = [5, 10, 20, {\r\n\t\ttext: 'All',\r\n\t\tvalue: 'all'\r\n\t}];\r\n\r\n\tconstructor(\r\n\t\tprivate mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tprivate memberRoleLinkService: MemberRoleLinkService,\r\n\t\tprivate commonService: CommonService,\r\n\t\tprivate notificationService: NotificationService,\r\n\t\tprivate loaderService: LoaderService,\r\n\t\tprivate _commonService: CommonService,\r\n\t\tprivate _notificationService: NotificationService,\r\n\t\tprivate dialog: MatDialog\r\n\t) {\r\n\t\tthis.commonService.selectedProjectId.subscribe(data => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.getBusinessGroupList(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.projectId = this._commonService.getProjectId();\r\n\t\tthis.projectCode = this._commonService.getProjectCode();\r\n\t\tthis.groupId = this._commonService.getLoggedInUserGroupId();\r\n\t\tthis.memberId = this._commonService.getLoggedInUserId();\r\n\r\n\t\tthis.enableMemberRoleFeatures();\r\n\t}\r\n\r\n\r\n\tasync callApis() {\r\n\t\t// Get project members list. Kendo row data\r\n\t\tthis.memberList = await this.memberRoleLinkService.getMembersList(this.commonService.getProjectId(), this.businessGroupId).toPromise();\r\n\t\t// Get available roles. Kendo column data\r\n\t\tthis.rolesList = await this.mapRoleFeatureService.getDedAgainstDe('Role', this.businessGroupId, null, null).toPromise();\r\n\t\tthis.getMappedRoleMembers();\r\n\t}\r\n\r\n\tenableMemberRoleFeatures() {\r\n\t\tthis._commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n\t\t\tthis.canUpload = res.some(data => data.feature_Desc == 'Upload');\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get business group list\r\n\t * @param projectId \r\n\t */\r\n\tgetBusinessGroupList(projectId: number) {\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data: BusinessGroupModel[]) => {\r\n\t\t\tthis.businessGroupList = data.filter(eachData => eachData.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\tcheckGridHeight() {\r\n\t\tif (this.memberList.length > 0)\r\n\t\t\treturn 540;\r\n\t\telse\r\n\t\t\treturn 182;\r\n\t}\r\n\r\n\t/**\r\n\t * Business group dropdown event handling\r\n\t * @param event \r\n\t */\r\n\tchangeBusinessGroup(event: { value: string; }) {\r\n\t\tif (event.value !== '-2') {\r\n\t\t\tthis.businessGroupId = Number(event.value);\r\n\t\t\tthis.userMappedObjFromDB.clear();\r\n\t\t\tthis.callApis();\r\n\t\t} else {\r\n\t\t\tthis.clearValues();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get already mapped role-members link\r\n\t */\r\n\tgetMappedRoleMembers() {\r\n\t\tthis.memberRoleLinkService.getMappedRoleMembers(this.commonService.getProjectId(), this.businessGroupId).subscribe(data => {\r\n\t\t\tthis.formatDataDbToUi(data);\r\n\t\t});\r\n\t}\r\n\r\n\tformatDataDbToUi(arrData: RoleMemberMappedModel[]) {\r\n\t\tarrData.forEach(eachData => {\r\n\t\t\tthis.userMappedObjFromDB.set(`${eachData.memberId}_${eachData.roleId}`, eachData.isCheck);\r\n\t\t\tthis.userMappedObjFromAssignmentDetailsDB.set(`${eachData.memberId}_${eachData.roleId}`, eachData.assignmentDetails);\r\n\t\t});\r\n\t\tthis.setMemberHeader();\r\n\t\tthis.setRoleHeader();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns whether the memberId and roleId mappped or not\r\n\t * @param memberId \r\n\t * @param roleId \r\n\t */\r\n\tisChecked = (memberId: number, roleId: number) => this.userMappedObjFromDB.get(`${memberId}_${roleId}`);\r\n\r\n\r\n\tGetAssignmentDetails = (memberId: number, roleId: number) => this.userMappedObjFromAssignmentDetailsDB.get(`${memberId}_${roleId}`);\r\n\r\n\t/**\r\n\t * Kendo row checkbox event handling\r\n\t * Map MemberId and RoleId\r\n\t * @param isChecked \r\n\t * @param memberId \r\n\t * @param roleId \r\n\t */\r\n\tmapMemberRole(isChecked: boolean, memberId: number, roleId: number) {\r\n\t\tlet key = `${memberId}_${roleId}`;\r\n\t\tif (this.userMappedObject.has(key)) {\r\n\t\t\tthis.userMappedObject.delete(key);\r\n\t\t} else {\r\n\t\t\tthis.userMappedObject.set(key, isChecked);\r\n\t\t}\r\n\t\tthis.userMappedObjFromDB.set(key, isChecked);\r\n\r\n\t\tthis.setMemberHeader(memberId);\r\n\t\tthis.setRoleHeader(roleId);\r\n\t}\r\n\r\n\t/**\r\n\t * Save mapped Member Roles\r\n\t */\r\n\tsubmitMapped() {\r\n\t\t// no kendo row data\r\n\t\tif (!this.memberList.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet roleMembersMapping = this.formatDataUiToDb();\r\n\r\n\t\tif (!roleMembersMapping.length) {\r\n\t\t\tthis.notificationService.showToast(\"No new changes done\", 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet reqData: RoleMemberPostModel = {\r\n\t\t\t\"roleMembersMapping\": roleMembersMapping,\r\n\t\t\t\"groupId\": this.businessGroupId,\r\n\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\"createdBy\": this.commonService.getLoggedInUserId(),\r\n\t\t\t\"inActiveMemberIds\": ''\r\n\t\t}\r\n\r\n\t\tthis.memberRoleLinkService.CheckRoleMemberWFAssignment(reqData).subscribe(data => {\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\tthis.ReplectRoleMemberModel = data;\r\n\r\n\t\t\t\tconst dialogRef = this.dialog.open(ReplaceMemberComponent, {\r\n\t\t\t\t\tpanelClass: ['mat-dialog-secondary', 'w80'],\r\n\t\t\t\t\tdata: { RoleMembersUpdated: roleMembersMapping, ReplacementRequiredMembers: this.ReplectRoleMemberModel, IsMemberRemoved: false }\r\n\t\t\t\t});\r\n\t\t\t\tdialogRef.afterClosed().subscribe((res: any) => {\r\n\t\t\t\t\tif (res.length > 0) {\r\n\t\t\t\t\t\tlet UpdatedReqData: RoleMemberPostModel = {\r\n\t\t\t\t\t\t\t\"roleMembersMapping\": res,\r\n\t\t\t\t\t\t\t\"groupId\": this.businessGroupId,\r\n\t\t\t\t\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\t\t\t\t\"createdBy\": this.commonService.getLoggedInUserId(),\r\n\t\t\t\t\t\t\t\"inActiveMemberIds\": ''\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.memberRoleLinkService.mapMemberRoles(UpdatedReqData).subscribe(data => {\r\n\t\t\t\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t\t\t\t\tthis.userMappedObject.clear();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.memberRoleLinkService.mapMemberRoles(reqData).subscribe(data => {\r\n\t\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t\t\tthis.userMappedObject.clear();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * Format UI Data (Object) to DB Data (Array). Done before API call\r\n\t */\r\n\tformatDataUiToDb() {\r\n\t\tlet output: RoleMemberMappedModel[] = [];\r\n\t\tlet splitData = [];\r\n\t\tthis.userMappedObject.forEach((isCheck, key) => {\r\n\t\t\tsplitData = key.split('_');\r\n\t\t\toutput.push(this.convertData(Number(splitData[0]), Number(splitData[1]), isCheck, this.GetAssignmentDetails(Number(splitData[1]), Number(splitData[0])), 0));\r\n\t\t});\r\n\t\treturn output;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns Params as Object\r\n\t * @param memberId \r\n\t * @param roleId \r\n\t * @param isCheck \r\n\t */\r\n\tconvertData = (memberId: number, roleId: number, isCheck: boolean, assignmentDetails: string, delegateMemberId: number) => ({ memberId, roleId, isCheck, assignmentDetails, delegateMemberId })\r\n\r\n\t/**\r\n\t * Column Header Checkbox event\r\n\t * Check/UnCheck all members below that column (role)\r\n\t * @param isChecked \r\n\t * @param roleId \r\n\t */console\r\n\tcheckAllMembers(isChecked: boolean, roleId: number) {\r\n\t\tthis.memberList.forEach(eachMember => {\r\n\t\t\tthis.userMappedObject.set(`${eachMember.memberId}_${roleId}`, isChecked);\r\n\t\t\tthis.userMappedObjFromDB.set(`${eachMember.memberId}_${roleId}`, isChecked); // update in UI variable also\r\n\t\t});\r\n\t\tthis.roleHeader[roleId] = isChecked;\r\n\t}\r\n\r\n\tcheckAllRoles(isChecked: boolean, memId: number) {\r\n\t\tthis.rolesList.forEach(eachRole => {\r\n\t\t\tthis.userMappedObject.set(`${memId}_${eachRole.dedId}`, isChecked);\r\n\t\t\tthis.userMappedObjFromDB.set(`${memId}_${eachRole.dedId}`, isChecked);\r\n\t\t});\r\n\t\tthis.memberHeader[memId] = isChecked;\r\n\t}\r\n\r\n\t/**\r\n\t * Set Feature Header Checkbox Status.\r\n\t * Call after API data received and\r\n\t * Call after every row data checkbox value changes\r\n\t * @param roleId \r\n\t */\r\n\tsetRoleHeader(roleId?: number) {\r\n\t\tif (!roleId) {\r\n\t\t\tif (this.memberList.length) {\r\n\t\t\t\tthis.rolesList.forEach(role => {\r\n\t\t\t\t\tthis.roleHeader[role.dedId] = this.memberList.every((member) => !!this.userMappedObjFromDB.get(member.memberId + '_' + role.dedId));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.roleHeader[roleId] = this.memberList.every((member) => !!this.userMappedObject.get(member.memberId + '_' + roleId));\r\n\t\t}\r\n\t}\r\n\tsetMemberHeader(memId?: number) {\r\n\t\tif (!memId) {\r\n\t\t\tthis.memberList.forEach(mem => {\r\n\t\t\t\tthis.memberHeader[mem.memberId] = this.rolesList.every((role) => !!this.userMappedObjFromDB.get(mem.memberId + '_' + role.dedId));\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.memberHeader[memId] = this.rolesList.every((role) => !!this.userMappedObject.get(memId + '_' + role.dedId));\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\tclearValues() {\r\n\t\tthis.memberList = [];\r\n\t\tthis.roleHeader = {};\r\n\t\tthis.userMappedObject.clear();\r\n\t\tthis.userMappedObjFromDB.clear();\r\n\t}\r\n\r\n\tdownloadMemberRoleExcelTemplate() {\r\n\t\tthis.loaderService.isLoading.next(true);\r\n\t\tlet projectModel: ProjectViewModel = this._commonService.getCurrentProjectDetails();\r\n\t\tlet fileName = \"RoleMember_Excel_Template-\" + this._commonService.getProjectCode() + \".xlsx\";\r\n\t\tthis.memberRoleLinkService.GetMemberRoleExcelTemplate(this.commonService.getProjectId(), this.businessGroupId, 'Role').subscribe((data: any) => {\r\n\t\t\tthis.loaderService.isLoading.next(false);\r\n\t\t\tconst downloadLink = document.createElement(\"a\");\r\n\t\t\tdownloadLink.href = window.URL.createObjectURL(data);\r\n\t\t\tdownloadLink.download = fileName;\r\n\t\t\tdownloadLink.click();\r\n\t\t\tdocument.body.removeChild(downloadLink);\r\n\t\t},\r\n\t\t\terr => {\r\n\t\t\t\tthis.loaderService.isLoading.next(false);\r\n\t\t\t\tthis._notificationService.showToast(\"Error in downloading Template\", \"Warning\");\r\n\t\t\t});\r\n\t}\r\n\r\n\tuploadMemberRoleExcelTemplate() {\r\n\t\tthis.excelMemberRoleUpload.nativeElement.click();\r\n\t}\r\n\r\n\tUploadMemberRoleTemplate(event: any) {\r\n\t\tthis.loaderService.isLoading.next(true);\r\n\t\tif (event.target.files[0].type != this.acceptFileTypes) {\r\n\t\t\tthis.loaderService.isLoading.next(false);\r\n\t\t\tthis._notificationService.showPopup(\"File type is incorrect(*.xlsx file type expected)\", \"Warning\");\r\n\t\t\tthis.excelMemberRoleUpload.nativeElement.value = '';\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst formData: FormData = new FormData();\r\n\t\tformData.append('MemberRoleExcelTemplate', event.target.files[0], event.target.files[0].name);\r\n\t\tformData.append('ProjectId', this.projectId.toString());\r\n\t\tformData.append('GroupId', this.businessGroupId.toString());\r\n\t\tformData.append('MemberId', this.memberId.toString());\r\n\r\n\t\tthis.memberRoleLinkService.UploadMemberRoleExcelTemplate(formData).subscribe((res: any) => {\r\n\t\t\tthis.notificationService.handleResponse(res);\r\n\t\t\tthis.userMappedObject.clear();\r\n\t\t\tthis.callApis();\r\n\t\t\tthis.excelMemberRoleUpload.nativeElement.value = '';\r\n\t\t}, (err) => {\r\n\t\t\tthis.loaderService.isLoading.next(false);\r\n\t\t\tthis.excelMemberRoleUpload.nativeElement.value = '';\r\n\t\t\tthis._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n\t\t});\r\n\t}\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Excel Download\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Excel Upload\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{role.dedDescription}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { menuModel, subMenuModel } from 'src/app/ViewModel/ApplicationMenu.Model';\r\nimport { MenuService } from 'src/app/Service/application-menu/menu.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\n\r\n@Component({\r\n\tselector: 'app-menu-role-link',\r\n\ttemplateUrl: './menu-role-link.component.html',\r\n\tstyleUrls: ['./menu-role-link.component.css']\r\n})\r\n\r\nexport class MenuRoleLinkComponent implements OnInit {\r\n\r\n\tmenuData: any[] = [];\r\n\tfinelDate: any[] = [];\r\n\tprivate userMappedObject = new Map();\r\n\tprivate userMappedObjFromDB = new Map();\r\n\tprivate businessGroupId: number | undefined | null;\r\n\tprivate roleHeader:any = {};\r\n\tenableFullscreen = false;\r\n\trolesList: any = [];\r\n\tprivate businessGroupList: ReadonlyArray = [];\r\n\tmenuHeader:any = {};\r\n\r\n\tconstructor(public _notificationService: NotificationService, private commonService: CommonService, private menuService: MenuService, private mapRoleFeatureService: MapRoleFeatureService) {\r\n\t\tthis.commonService.selectedProjectId.subscribe(data => {\r\n\t\t\tif (data != null || data != undefined) {\r\n\t\t\t\tthis.getBusinessGroupList(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t}\r\n\r\n\tcheckGridHeight() {\r\n\t\tif (this.menuData.length > 0)\r\n\t\t\treturn 600;\r\n\t\telse\r\n\t\t\treturn 400;\r\n\t}\r\n\r\n\tcallAPIs() {\r\n\t\tthis.getRoleData(this.businessGroupId);\r\n\t\tthis.getMenuData();\r\n\t}\r\n\r\n\tgetBusinessGroupList(projectId: number) {\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data: BusinessGroupModel[]) => {\r\n\t\t\tthis.businessGroupList = data.filter(eachData => eachData.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\tasync getRoleData(businessGroupId: number | null | undefined) {\r\n\t\tthis.rolesList = await this.mapRoleFeatureService.getDedAgainstDe('Role', businessGroupId, null, null).toPromise();\r\n\t\tthis.getRoleMenuMappingData();\r\n\t}\r\n\r\n\tmapMemberRole(isChecked: boolean, menuId: number, dedId: number) {\r\n\t\tlet key = `${menuId}_${dedId}`;\r\n\t\tif (this.userMappedObject.has(key)) {\r\n\t\t\tthis.userMappedObject.delete(key);\r\n\t\t} else {\r\n\t\t\tthis.userMappedObject.set(key, isChecked);\r\n\t\t}\r\n\t\tthis.setMenuHeader(menuId);\r\n\t\tthis.setRoleHeader(dedId);\r\n\t}\r\n\r\n\tconvertData = (menuId: number, roleId: number, isActive: boolean) => ({ menuId, roleId, isActive });\r\n\r\n\tsubmitMapped() {\r\n\t\tlet roleMenusMapping = this.formatDataUiToDb();\r\n\t\tif(!roleMenusMapping.length)\r\n\t\t{\r\n\t\t\tthis._notificationService.showToast(\"No new changes done\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.menuService.getMenuRoleMapping(roleMenusMapping, this.businessGroupId).subscribe(data => {\r\n\t\t\tif (data[\"successCode\"] == 200) {\r\n\t\t\t\tthis._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._notificationService.showToast(data[\"successMessage\"], \"Warning\")\r\n\t\t\t}\r\n\t\t\tthis.getRoleMenuMappingData();\r\n\t\t\tthis.userMappedObject.clear();\r\n\t\t});\r\n\t}\r\n\r\n\tcheckAllMembers(isChecked: boolean, roleId: number) {\r\n\t\tthis.menuData.forEach(eachParentMember => {\r\n\t\t\tthis.userMappedObject.set(`${eachParentMember.menuId}_${roleId}`, isChecked);\r\n\t\t\tthis.userMappedObjFromDB.set(`${eachParentMember.menuId}_${roleId}`, isChecked);\r\n\r\n\t\t\teachParentMember['subMenu'].forEach((eachChildMember: { menuId: any; }) => {\r\n\t\t\t\tthis.userMappedObject.set(`${eachChildMember.menuId}_${roleId}`, isChecked);\r\n\t\t\t\tthis.userMappedObjFromDB.set(`${eachChildMember.menuId}_${roleId}`, isChecked);\r\n\t\t\t});\r\n\t\t});\r\n\t\tthis.roleHeader[roleId] = isChecked;\r\n\t}\r\n\r\n\tcheckAllRoles(isChecked:boolean,menuId?:any)\r\n\t{\r\n\t\tif(!!menuId)\r\n\t\t{\r\n\t\t\tthis.rolesList.forEach((role: { dedId: any; }) => {\r\n\t\t\t\tthis.userMappedObject.set(`${menuId}_${role.dedId}`,isChecked);\r\n\t\t\t\tthis.userMappedObjFromDB.set(`${menuId}_${role.dedId}`,isChecked);\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.menuHeader[menuId] = isChecked;\r\n\t}\r\n\r\n\tformatDataUiToDb() {\r\n\t\tlet output: any[] = [];\r\n\t\tlet splitData = [];\r\n\t\tthis.userMappedObject.forEach((isCheck, key) => {\r\n\t\t\tsplitData = key.split('_');\r\n\t\t\toutput.push(this.convertData(Number(splitData[0]), Number(splitData[1]), isCheck));\r\n\t\t});\r\n\t\treturn output;\r\n\t}\r\n\r\n\tisChecked = (menuId: number, roleId: number) => this.userMappedObjFromDB.get(`${menuId}_${roleId}`);\r\n\r\n\tgetRoleMenuMappingData() {\r\n\t\tif(this.businessGroupId)\r\n\t\tthis.menuService.getMenuRoleData(this.businessGroupId).subscribe((data: any[]) => {\r\n\t\t\tthis.formatDataDbToUi(data);\r\n\t\t});\r\n\t}\r\n\r\n\tformatDataDbToUi(menuRoles: any[]) {\r\n\t\tmenuRoles.forEach(data => {\r\n\t\t\tthis.userMappedObjFromDB.set(`${data.menuId}_${data.roleId}`, data.isActive);\r\n\t\t})\r\n\t\tthis.setMenuHeader(null);\r\n\t\tthis.setRoleHeader(null);\r\n\t}\r\n\r\n\tsetRoleHeader(roleId?: number|null, data?: any[]) {\r\n\t\tif (!roleId) {\r\n\t\t\tif (this.menuData.length) {\r\n\t\t\t\tthis.rolesList.forEach((role: { dedId: string | number; roleId: string; }) => {\r\n\t\t\t\t\tthis.roleHeader[role.dedId] = this.menuData.every((member) => !!this.userMappedObjFromDB.get(member.menuId + '_' + role.roleId));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.roleHeader[roleId] = this.menuData.every((member) => !!this.userMappedObject.get(member.menuId + '_' + roleId));\r\n\t\t}\r\n\t}\r\n\r\n\tsetMenuHeader(menuId?: number | null, data?: any[])\r\n\t{\r\n\t\tif(!menuId)\r\n\t\t{\r\n\t\t\tif(this.rolesList.length)\r\n\t\t\t{\r\n\t\t\t\tthis.menuData.forEach(menu => {\r\n\t\t\t\t\tthis.menuHeader[menu.menuId] = this.rolesList.every((role: { dedId: string; }) => !!this.userMappedObjFromDB.get(menu.menuId+'_'+role.dedId));\r\n\t\t\t\t\tmenu.subMenu.forEach((subMenu: { menuId: string; }) => {\r\n\t\t\t\t\t\tthis.menuHeader[subMenu.menuId] = this.rolesList.every((role: { dedId: string; }) => !!this.userMappedObjFromDB.get(subMenu.menuId+'_'+role.dedId));\t\t\t\t\t\t\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.menuHeader[menuId]=this.rolesList.every((role: { dedId: string; }) => !!this.userMappedObject.get(menuId+'_'+role.dedId));\r\n\t\t}\r\n\t}\r\n\r\n\tgetMenuData() {\r\n\t\tthis.menuService.getApplicationMenulist().subscribe(data => {\r\n\t\t\tthis.menuData = [];\r\n\t\t\tdata.forEach((value: { parentMenuId: any; isActive: any; displayName?: string; icon?: string; isAdminMenu?: boolean; isProjectCodeRequired?: boolean; menuId?: number | null; menuOrder?: number | null; routeUrl?: string; help_url?: string | undefined; subMenu?: subMenuModel[] | null; }) => {\r\n\t\t\t\tif (value.parentMenuId == null && value.isActive == true) {\r\n\t\t\t\t\tlet _menu: any| menuModel = value;\r\n\t\t\t\t\t_menu.subMenu = data.filter((x: { parentMenuId: number | null; isActive: boolean; }) => x.parentMenuId == _menu.menuId && x.isActive == true);\r\n\t\t\t\t\tthis.menuData.push(_menu);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t})\r\n\t}\r\n\r\n\r\n\tchangeBusinessGroup(event:any) {\r\n\t\tif (event.value !== '-2') {\r\n\t\t\tthis.businessGroupId = event.value;\r\n\t\t\tthis.callAPIs();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.menuData = [];\r\n\t\t\tthis.businessGroupId = null;\r\n\t\t\tthis.rolesList = [];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t* Full screen\r\n\t*/\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n\t\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Save\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.displayName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{role.dedDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectWorkflowStatusService } from 'src/app/Service/ProjectWorkflowStatus/ProjectWorkflowStatus.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { ModuleModel } from 'src/app/ViewModel/ModuleModel';\r\nimport { INumberInputModel, INumberViewModel } from 'src/app/ViewModel/ProjectWorkflowStatus';\r\n\r\n\r\nexport enum Modules {\r\n \"Upload Document\" = 1,\r\n \"Schedule Document\" = 2,\r\n \"Workflow\" = 3,\r\n \"Communication\" = 4,\r\n \"Transmittal\" = 5\r\n}\r\n\r\nconst createFormGroup = (dataItem: { module_Name: any; module_Id: any; sl_No_Length: any; is_Active: any; }) => new FormGroup({\r\n 'module_Name': new FormControl(dataItem.module_Name),\r\n 'module_Id': new FormControl(dataItem.module_Id),\r\n 'sl_No_Length': new FormControl(dataItem.sl_No_Length),\r\n 'is_Active': new FormControl(dataItem.is_Active),\r\n});\r\n\r\n@Component({\r\n selector: 'app-number-configuration',\r\n templateUrl: './number-configuration.component.html',\r\n styleUrls: ['./number-configuration.component.css']\r\n})\r\nexport class NumberConfigurationComponent implements OnInit {\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n moduleList!: ReadonlyArray;\r\n\r\n numberConfigurationView!: INumberViewModel[];\r\n project_Id!: number;\r\n group_Id: number = 0;\r\n userId!: number;\r\n sl_No_Length!: number;\r\n enableFilter = false;\r\n public formGroup: FormGroup | any;\r\n editedRowIndex: number | undefined;\r\n isNewRow = false;\r\n isNew = false;\r\n input_Type: string = '';\r\n module_Id!: number;\r\n is_Active: boolean = true;\r\n selectedModuleId: any;\r\n selectedModuleClear = 'N';\r\n isCreate: boolean = true;\r\n isShowListPageIcon: boolean = false;\r\n\r\n\r\n constructor(private _ProjectWorkStatusService: ProjectWorkflowStatusService,\r\n public notificationService: NotificationService,\r\n public elementLinkService: ElementLinkService,\r\n public commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.project_Id = this.commonService.getProjectId();\r\n this.group_Id = this.commonService.getLoggedInUserGroupId();\r\n this.userId = this.commonService.getLoggedInUserId();\r\n this.getNumberConfigurationdetails();\r\n }\r\n\r\n getNumberConfigurationdetails() {\r\n this.input_Type = 'SELECT';\r\n this._ProjectWorkStatusService.getNumber(this.project_Id, this.group_Id, this.input_Type).subscribe((data: INumberViewModel[]) => {\r\n data.forEach(val => {\r\n val[\"module_Name\"] = this.getModuleName(val.module_Id)\r\n });\r\n this.numberConfigurationView = data;\r\n });\r\n }\r\n\r\n getModuleName(moduleId: number) {\r\n switch (moduleId) {\r\n case 1:\r\n return \"Upload Document\";\r\n case 2:\r\n return \"Schedule Document\";\r\n case 3:\r\n return \"Workflow\";\r\n case 4:\r\n return \"Communication\";\r\n case 5:\r\n return \"Transmittal\"\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n changeModuleList(event: EIPAutoCompleteEventModel) {\r\n this.selectedModuleClear = 'N';\r\n if (this.isCreate) {\r\n if (event.value != '-2') {\r\n this.selectedModuleId = event.value;\r\n } else {\r\n this.selectedModuleId = null;\r\n }\r\n }\r\n if (event.value == '1') {\r\n this.isShowListPageIcon = true;\r\n } else {\r\n this.isShowListPageIcon = false;\r\n }\r\n }\r\n\r\n setFormValues(event: any) {\r\n this.formGroup.get('sl_No_Length')?.setValue(event.target.value);\r\n this.selectedModuleId = this.module_Id;\r\n }\r\n\r\n saveNC(dataItem: any) {\r\n if (!this.selectedModuleId) {\r\n this.notificationService.showToast('Select Module', 'Warning');\r\n return;\r\n }\r\n let _input: INumberInputModel = {\r\n project_Id: this.project_Id,\r\n group_Id: this.group_Id,\r\n userId: this.userId,\r\n module_Id: this.selectedModuleId,\r\n sl_No_Length: !!this.formGroup.get(\"sl_No_Length\")?.value ? this.formGroup.get(\"sl_No_Length\")?.value : dataItem.sl_No_Length,\r\n is_Active: dataItem.is_Active,\r\n input_Type: \"INSERT\"\r\n }\r\n this._ProjectWorkStatusService.postNumber(_input).subscribe((data) => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.getNumberConfigurationdetails();\r\n }\r\n else {\r\n this.notificationService.showToast('Module Name Already Exist', 'Warning');\r\n }\r\n });\r\n }\r\n\r\n async callModule() {\r\n this.moduleList = await this.elementLinkService.getModuleList(this.group_Id).toPromise();\r\n this.moduleList = this.moduleList.filter(x => x.cedDescription != 'Workflow');\r\n }\r\n\r\n\r\n\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n\r\n addHandler() {\r\n this.isNewRow = true;\r\n this.closeEditor();\r\n this.formGroup = createFormGroup({\r\n module_Name: '',\r\n module_Id: null,\r\n sl_No_Length: null,\r\n is_Active: true,\r\n });\r\n this.isNew = true;\r\n this.callModule();\r\n this.grid.addRow(this.formGroup);\r\n }\r\n\r\n editRowData(dataItem: any) {\r\n if (this.editedRowIndex && this.editedRowIndex >= 0) {\r\n dataItem.sender.closeRow(this.editedRowIndex);\r\n }\r\n this.editedRowIndex = dataItem.rowIndex;\r\n this.formGroup = createFormGroup(dataItem);\r\n this.isNewRow = false;\r\n dataItem.sender.editRow(dataItem.rowIndex);\r\n }\r\n\r\n UpdateRowData({ sender, rowIndex, dataItem }) {\r\n let newNumberlist: INumberViewModel = this.formGroup.value;\r\n if (newNumberlist.sl_No_Length <= 0 || newNumberlist.sl_No_Length >= 10) {\r\n this.notificationService.showToast('Serial No Length can be between 1 and 9 only!!!', 'Warning');\r\n return;\r\n }\r\n if (this.isNewRow == true) {\r\n this.saveNC(dataItem);\r\n }\r\n else {\r\n this.updateNC(dataItem);\r\n }\r\n this.isNewRow = false;\r\n dataItem.sender.closeRow(dataItem.rowIndex);\r\n }\r\n\r\n updataSlNo(event: any) {\r\n this.formGroup.get(\"sl_No_Length\")?.setValue(event.target.value)\r\n }\r\n\r\n updateNC(dataItem: any) {\r\n let _input: INumberInputModel = {\r\n project_Id: this.project_Id,\r\n group_Id: this.group_Id,\r\n userId: this.userId,\r\n module_Id: dataItem.module_Id,\r\n //is_Active: this.formGroup.get('is_Active')?.value,\r\n is_Active: dataItem.is_Active,\r\n sl_No_Length: !!this.formGroup.get(\"sl_No_Length\")?.value ? this.formGroup.get(\"sl_No_Length\")?.value : dataItem.dataItem.sl_No_Length,\r\n input_Type: \"UPDATE\"\r\n }\r\n this._ProjectWorkStatusService.postNumber(_input).subscribe((data) => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.getNumberConfigurationdetails();\r\n }\r\n else {\r\n this.notificationService.showToast(data.successMessage, \"Error\");\r\n }\r\n });\r\n\r\n }\r\n\r\n changeActiveStatus(event: MatCheckboxChange) {\r\n this.formGroup.get('is_Active')?.setValue(event.checked);\r\n }\r\n\r\n public cellClickHandler(dataItem: any): void {\r\n if (dataItem.isEdited) {\r\n return;\r\n }\r\n this.formGroup = createFormGroup(dataItem);\r\n this.editedRowIndex = dataItem.rowIndex;\r\n this.grid.editRow(dataItem.rowIndex, this.formGroup);\r\n\r\n }\r\n\r\n cancelRowData(dataItem: any) {\r\n this.isNewRow = false;\r\n dataItem.sender.closeRow(dataItem.rowIndex);\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n if (this.editedRowIndex)\r\n this.grid.closeRow(this.editedRowIndex);\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.module_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.module_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sl_No_Length}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { IOrganizationViewModel } from 'src/app/ViewModel/OrganizationModel';\r\nimport { groupBy } from 'lodash';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { RoleMemberPostModel } from 'src/app/ViewModel/RoleMemberPostModel';\r\nimport { MemberRoleLinkService } from 'src/app/Service/member-role-link/member-role-link.service';\r\nimport { ReplectRoleMemberModel, RoleMemberMappedModel } from 'src/app/ViewModel/RoleMemberMappedModel';\r\nimport { ReplaceMemberComponent } from '../replace-member/replace-member.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n\tselector: 'app-project-member-link',\r\n\ttemplateUrl: './project-member-link.component.html',\r\n\tstyleUrls: ['./project-member-link.component.css']\r\n})\r\nexport class ProjectMemberLinkComponent implements OnInit {\r\n\r\n\tbusinessGroupId!: string | number | null;\r\n\tprojectBusinessGroupId!: number | null;\r\n\t/** Business group list */\r\n\tbusinessGroupList: IOrganizationViewModel[] = [];\r\n\t/** Project business group listF */\r\n\tprojectBusinessGroupList: BusinessGroupModel[] = [];\r\n\tmemberList: any | ProjectMemberModel[] = [];\r\n\tprojectSelectedMembers: ProjectMemberModel[] = [];\r\n\t/** Cart filtered data source. removed duplication with selected data */\r\n\tcartDataSource: ProjectMemberModel[] = [];\r\n\t/** Cart Right side (seleceted data) */\r\n\tcartSelectedList: any = [];\r\n\tcartRequest = {};\r\n\tcartSelectedListCopy!: any[];\r\n\tuserId!: number;\r\n\tReplectRoleMemberModel: ReplectRoleMemberModel[];\r\n\r\n\tconstructor(\r\n\t\tpublic projectMemberLinkService: ProjectMemberLinkService,\r\n\t\tpublic organizationService: OrganizationService,\r\n\t\tpublic memberService: ExternalMemberService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tprivate memberRoleLinkService: MemberRoleLinkService,\r\n\t\tprivate dialog: MatDialog\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.userId = this.commonService.getLoggedInUserId();\r\n\t\tthis.getBusinessGroup();\r\n\t\tthis.getProjectBusinessGroup();\r\n\t}\r\n\r\n\t/**\r\n\t * Change key format. Remove already selected members.\r\n\t * @param inputArr \r\n\t * @param alreadySelectedMembers \r\n\t */\r\n\tchangeKeyFormat(inputArr: any[], alreadySelectedMembers: []) {\r\n\t\tlet grpdSelectedMembers = groupBy(alreadySelectedMembers, 'memberId');\r\n\t\tlet outputArr: {}[] = [];\r\n\t\tinputArr.forEach(eachObj => {\r\n\t\t\tlet output: any = {};\r\n\t\t\tif (eachObj['is_Active']) {\r\n\t\t\t\toutput['companyCode'] = eachObj['company_Code'];\r\n\t\t\t\toutput['designation'] = eachObj['designation'];\r\n\t\t\t\toutput['eMailId'] = eachObj['eMail_Id'];\r\n\t\t\t\toutput['eccWebLogin'] = eachObj['ecc_Web_Login'];\r\n\t\t\t\toutput['isActive'] = eachObj['is_Active'];\r\n\t\t\t\toutput['isInternal'] = eachObj['is_Internal'];\r\n\t\t\t\toutput['memberId'] = eachObj['member_Id'];\r\n\t\t\t\toutput['memberName'] = eachObj['member_Name'];\r\n\t\t\t\toutput['memberShortName'] = eachObj['member_Short_Name'];\r\n\t\t\t\toutput['mobileNo'] = eachObj['mobile_No'];\r\n\t\t\t\toutput['reportingTo'] = eachObj['reporting_To'];\r\n\t\t\t\toutput['result'] = eachObj['result'];\r\n\t\t\t\toutput['staffPSNo'] = eachObj['staff_PSNo'];\r\n\t\t\t\toutput['successCode'] = eachObj['successCode'];\r\n\t\t\t\toutput['successMessage'] = eachObj['successMessage'];\r\n\t\t\t\toutput['userId'] = eachObj['user_Id'];\r\n\r\n\t\t\t\tif (!(grpdSelectedMembers && grpdSelectedMembers[output['memberId']] && grpdSelectedMembers[output['memberId']].length)) {\r\n\t\t\t\t\toutputArr.push(output);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn outputArr;\r\n\t}\r\n\r\n\r\n\tasync getBusinessGroup() {\r\n\t\tlet organizationList: any = await this.organizationService.getOrganizationList().toPromise();\r\n\t\tthis.businessGroupList = organizationList.filter((eachOrg: { is_Active: any; }) => eachOrg.is_Active);\r\n\t}\r\n\r\n\tasync getProjectBusinessGroup() {\r\n\t\tlet response: any = await this.projectMemberLinkService.getProjectBusinessGroup(this.commonService.getProjectId()).toPromise();\r\n\t\tthis.projectBusinessGroupList = response.filter((each: { is_Active: any; }) => each.is_Active);\r\n\t}\r\n\r\n\r\n\tasync getMemberList() {\r\n\t\tlet selectedCount = 0;\r\n\t\tthis.projectSelectedMembers = await this.projectMemberLinkService.getSelectedMemberList(this.commonService.getProjectId(), this.projectBusinessGroupId).toPromise();\r\n\t\tthis.setCartValues(selectedCount);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Compare two arrays and remove data which presents in second array\r\n\t * @param dataSource Main data array\r\n\t * @param selectedArray selected array. Needs to remove from main data array\r\n\t * @param key value key name\r\n\t */\r\n\tremoveDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n\t\tlet filteredArray: any[] = [],\r\n\t\t\tgrpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n\t\tdataSource.forEach((eachData: any) => {\r\n\t\t\tif (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n\t\t\t\tfilteredArray.push(eachData);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn filteredArray;\r\n\t}\r\n\r\n\tsetCartValues(selectedCount?: number) {\r\n\t\tif (selectedCount == 0) {\r\n\t\t\tthis.cartDataSource = this.removeDuplicates(this.memberList, this.projectSelectedMembers, 'memberId');\r\n\t\t\tthis.cartSelectedList = [];\r\n\t\t\tthis.cartSelectedListCopy = [];\r\n\t\t\tthis.projectSelectedMembers.forEach(eachMember => {\r\n\t\t\t\tlet cartValue: any = this.getAsCartSelectedValue(eachMember.memberId, eachMember.memberName);\r\n\t\t\t\tthis.cartSelectedList.push(cartValue);\r\n\t\t\t\tthis.cartSelectedListCopy.push(cartValue);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.cartDataSource = this.removeDuplicates(this.memberList, this.projectSelectedMembers, 'memberId');\r\n\t\t\tthis.projectSelectedMembers.forEach(eachMember => {\r\n\t\t\t\tlet cartValue = this.getAsCartSelectedValue(eachMember.memberId, eachMember.memberName);\r\n\t\t\t\tthis.cartSelectedList.push(cartValue);\r\n\t\t\t\tthis.cartSelectedListCopy.push(cartValue);\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.setCartParams();\r\n\t}\r\n\r\n\t/**\r\n\t * Change data to respective cart selected data format\r\n\t * @param value \r\n\t * @param text \r\n\t */\r\n\tgetAsCartSelectedValue(value: string | number, text: string) {\r\n\t\tvalue = value.toString().trim();\r\n\t\ttext = text.trim();\r\n\t\tlet output = {\r\n\t\t\tvalue,\r\n\t\t\ttext: value + ' - ' + text\r\n\t\t};\r\n\t\treturn output;\r\n\t}\r\n\r\n\r\n\tsave(event: EIPAutoCompleteEventModel[]) {\r\n\r\n\t\tif (!this.businessGroupId) {\r\n\t\t\tthis.notificationService.showToast('Select Business Group', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.projectBusinessGroupId) {\r\n\t\t\tthis.notificationService.showToast('Select Project Business Group', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//let activeIds = this.activeIds(event),\r\n\t\tlet activeIds = this.activeIds(this.cartSelectedList),\r\n\t\t\tinactiveIds = this.getInactiveIds(this.cartSelectedListCopy, activeIds),\r\n\t\t\treqData = {\r\n\t\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\t\"groupId\": this.projectBusinessGroupId,\r\n\t\t\t\t\"reportingTo\": 0,\r\n\t\t\t\t\"activeMemberIds\": activeIds.length ? activeIds.toString() : null,\r\n\t\t\t\t\"inactiveMemberIds\": inactiveIds.length ? inactiveIds.toString() : null,\r\n\t\t\t\t\"createdBy\": this.userId,\r\n\t\t\t\t\"roleMembersMapping\": []\r\n\t\t\t};\r\n\r\n\t\tif (inactiveIds.length > 0) {\r\n\t\t\tlet inActiveMemberData: RoleMemberPostModel = {\r\n\t\t\t\t\"roleMembersMapping\": [],\r\n\t\t\t\t\"groupId\": this.projectBusinessGroupId,\r\n\t\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\t\"createdBy\": this.commonService.getLoggedInUserId(),\r\n\t\t\t\t\"inActiveMemberIds\": inactiveIds.length ? inactiveIds.toString() : null,\r\n\t\t\t}\r\n\r\n\t\t\tthis.memberRoleLinkService.CheckRoleMemberWFAssignment(inActiveMemberData).subscribe(data => {\r\n\t\t\t\tif (data.length > 0) {\r\n\t\t\t\t\tthis.ReplectRoleMemberModel = data;\r\n\r\n\t\t\t\t\tlet refData: RoleMemberMappedModel[] = this.ReplectRoleMemberModel.map(y => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmemberId: y.member_Id,\r\n\t\t\t\t\t\t\tisCheck: false,\r\n\t\t\t\t\t\t\troleId: y.role_Id,\r\n\t\t\t\t\t\t\tassignmentDetails: '',\r\n\t\t\t\t\t\t\tdelegateMemberId: y.replaceMemberId\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tconst dialogRef = this.dialog.open(ReplaceMemberComponent, {\r\n\t\t\t\t\t\tpanelClass: ['mat-dialog-secondary', 'w80'],\r\n\t\t\t\t\t\tdata: { RoleMembersUpdated: refData, ReplacementRequiredMembers: this.ReplectRoleMemberModel, IsMemberRemoved: true }\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdialogRef.afterClosed().subscribe((res: any) => {\r\n\t\t\t\t\t\tif (res.length > 0) {\r\n\t\t\t\t\t\t\tlet UpdatedReqData = {\r\n\t\t\t\t\t\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\t\t\t\t\t\"groupId\": this.projectBusinessGroupId,\r\n\t\t\t\t\t\t\t\t\"reportingTo\": 0,\r\n\t\t\t\t\t\t\t\t\"activeMemberIds\": activeIds.length ? activeIds.toString() : null,\r\n\t\t\t\t\t\t\t\t\"inactiveMemberIds\": inactiveIds.length ? inactiveIds.toString() : null,\r\n\t\t\t\t\t\t\t\t\"createdBy\": this.userId,\r\n\t\t\t\t\t\t\t\t\"roleMembersMapping\": res,\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tthis.projectMemberLinkService.postProjectMemberLink(UpdatedReqData).subscribe(data => {\r\n\t\t\t\t\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.projectMemberLinkService.postProjectMemberLink(reqData).subscribe(data => {\r\n\t\t\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.projectMemberLinkService.postProjectMemberLink(reqData).subscribe(data => {\r\n\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Compare previous selected cart data input and current selected cart data input to get inactive ids\r\n\t * @param prevSelected \r\n\t * @param currentSelected \r\n\t * @returns Ex: ['16345']\r\n\t */\r\n\tgetInactiveIds(prevSelected: any[], currentSelected: string | any[]) {\r\n\t\tlet inActiveIds: any[] = [];\r\n\t\tprevSelected.forEach(eachSelected => {\r\n\t\t\tif (!currentSelected.includes(eachSelected['value'])) {\r\n\t\t\t\tinActiveIds.push(eachSelected['value']);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn inActiveIds;\r\n\t}\r\n\r\n\t/**\r\n\t * Setting cart data\r\n\t */\r\n\tsetCartParams() {\r\n\t\tthis.cartRequest = {\r\n\t\t\t'params': {\r\n\t\t\t\t'LockingType': 'P',\r\n\t\t\t\t'selectedCartItems': this.cartSelectedList,\r\n\t\t\t},\r\n\t\t\t'settings': {\r\n\t\t\t\t'mode': 'popup',\r\n\t\t\t\t'textField': 'memberName',\r\n\t\t\t\t'valueField': 'memberId',\r\n\t\t\t\t'cartLabel': 'Members',\r\n\t\t\t\t'minimumSelectedItemCount': 0\r\n\t\t\t},\r\n\t\t\t'dataSource': this.cartDataSource,\r\n\t\t}\r\n\t}\r\n\r\n\tasync changeBusinessGroup(event: { value: string | number; }) {\r\n\t\tlet selectedCount: number = 0;\r\n\t\tif (event.value != '-2') {\r\n\t\t\tselectedCount = selectedCount + 1;\r\n\t\t\tthis.businessGroupId = event.value;\r\n\t\t\tif (this.businessGroupId) {\r\n\t\t\t\tlet x: any = this.businessGroupId\r\n\t\t\t\tlet members: any = await this.memberService.GetMembersList({ group_Id: parseInt(x) }).toPromise();\r\n\t\t\t\tlet alreadySelectedMembers = await this.projectMemberLinkService.getSelectedMemberList(this.commonService.getProjectId(), null).toPromise();\r\n\t\t\t\tthis.memberList = this.changeKeyFormat(members, alreadySelectedMembers);\r\n\t\t\t}\r\n\t\t\tthis.projectSelectedMembers = [];\r\n\t\t\tthis.setCartValues(selectedCount);\r\n\t\t} else {\r\n\t\t\tthis.businessGroupId = null;\r\n\t\t\tthis.memberList = [];\r\n\t\t\tthis.projectSelectedMembers = [];\r\n\t\t}\r\n\t}\r\n\r\n\tchangeProjectBusinessGroup(event: { value: string; }) {\r\n\t\tlet selectedCount = 0;\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.projectBusinessGroupId = parseInt(event.value);\r\n\t\t\tthis.getMemberList();\r\n\t\t} else {\r\n\t\t\tthis.projectBusinessGroupId = null;\r\n\t\t\tthis.projectSelectedMembers = [];\r\n\t\t\tthis.setCartValues(selectedCount);\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedCartItems(event: EIPAutoCompleteEventModel[]) {\r\n\t\tthis.save(event);\r\n\t}\r\n\r\n\t/**\r\n * Get cart selected value as array of ids\r\n * @param event\r\n * @returns Ex: [162065,162064] \r\n */\r\n\tactiveIds(event: EIPAutoCompleteEventModel[]) {\r\n\t\tlet selectedIds: (string | number)[] = [];\r\n\t\tevent.forEach(eachMember => {\r\n\t\t\tselectedIds.push(eachMember.value);\r\n\t\t});\r\n\t\treturn selectedIds;\r\n\t}\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
","import { Component, ElementRef, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { TestBed } from '@angular/core/testing';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { TenderQuantityService } from 'src/app/Service/tender-quantity/tender-quantity.service';\r\nimport { tenderQuantity } from 'src/app/ViewModel/Tender-Quantity.Model';\r\nimport { EditConfigurComponent } from '../../tender-add/edit-configur/edit-configur.component';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-project-tender-link',\r\n templateUrl: './project-tender-link.component.html',\r\n styleUrls: ['./project-tender-link.component.css']\r\n})\r\nexport class ProjectTenderLinkComponent implements OnInit {\r\n\r\n public lastscrollLeft!: number;\r\n public approverList: any;\r\n public tenderSection!: boolean;\r\n public Itemsection!: boolean;\r\n public Elementsection!: boolean;\r\n public elementsList!: any[];\r\n public setclear = 'N';\r\n public ItemList: any;\r\n public selectedDiscipline: any;\r\n public existsTenderElement: any[] = [];\r\n public currentTab: any;\r\n public Currentpage: any;\r\n public ElementProjectlink: any[] = [];\r\n public ItemProjectlink: any[] = [];\r\n public sentDataToDp: tenderQuantity[] = [];\r\n public viewClick!: boolean;\r\n public subItemlist: any[] = [];\r\n public structrue: any;\r\n public tenderlist: any[] = [];\r\n public quantity:any;\r\n public submittedby: any = {};\r\n public docConfig: FieldConfig[] = [];\r\n public SubmitBtn: boolean = false;\r\n public ApproveBtn: boolean = false;\r\n public ReviseBtn: boolean = false;\r\n public AddBtn: boolean = false;\r\n public editQuantity!: number;\r\n public updateQuantity!: number;\r\n public setDisable: boolean = false;\r\n public EC_enableFilter :boolean = false;\r\n public IC_enableFilter :boolean = false;\r\n public enableFullscreen:any ={'kgrid-fullscreen' : 'enableFullscreen'};\r\n private editedRowIndex!: any|number;\r\n private editedLine: any;\r\n private editEvent: any;\r\n\r\n @ViewChildren('divIcon') divIconHover!: QueryList;\r\n @ViewChild('docSetForm') tqSetDynamicForm!: DynamicFormComponent;\r\n\r\n constructor(private dialog: MatDialog, private tenderQuantityService: TenderQuantityService,\r\n public notificationService: NotificationService, private formBuilder: FormBuilder,\r\n private _projService: ProjectInfoService, private commonService: CommonService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.getSelectValue();\r\n this.getData();\r\n this.getDynamicFormChanges();\r\n }\r\n\r\n getDynamicFormChanges() {\r\n this.tqSetDynamicForm?.form.get('Discipline')?.valueChanges.subscribe(data => {\r\n this.SubmitBtn = false;\r\n this.AddBtn = false;\r\n this.ReviseBtn = false;\r\n this.ApproveBtn = false;\r\n this.tenderlist = [];\r\n if (!!data) {\r\n this.quantity = null;\r\n this.selectedDiscipline = data;\r\n if (this.currentTab == \"Tender Quantity\") {\r\n this.setclear = 'Y';\r\n this.tenderQuantityService.getElementProjectConfigure(this.selectedDiscipline.dedId).subscribe(data => { \r\n this.elementsList = data.filter((val: { active_Tag: string; })=>val.active_Tag == \"Yes\");\r\n if (!!this.elementsList) {\r\n this.elementsList.forEach(element => {\r\n this.tenderQuantityService.getItemProjectConfigure(element).subscribe((data: any[]) => {\r\n if (!!data && data.length > 0) {\r\n let teId = data[0].tE_Id;\r\n let element: any = this.elementsList.filter(x => x.tE_Id == teId)[0];\r\n if (!!element) {\r\n element.items = data.filter(data => data.disc_DED_Id == this.selectedDiscipline.dedId && data.active_Tag == \"Yes\");\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n } else {\r\n this.selectedDiscipline = undefined;\r\n this.elementsList = [];\r\n this.quantity = null;\r\n }\r\n });\r\n\r\n this.tqSetDynamicForm?.form.get('Structure / Package')?.valueChanges.subscribe(data => {\r\n this.SubmitBtn = false;\r\n this.AddBtn = false;\r\n this.quantity = null;\r\n this.ReviseBtn = false;\r\n this.ApproveBtn = false;\r\n this.setclear = 'Y';\r\n this.tenderlist = [];\r\n this.structrue = data;\r\n });\r\n }\r\n\r\n getProjectTenderDetail() {\r\n let obj = {};\r\n if (!!this.elementsList) {\r\n obj = {\r\n \"project_Id\": this.commonService.getProjectId(),\r\n \"disc_DED_Id\": this.tqSetDynamicForm?.form.get('Discipline')?.value.dedId,\r\n \"t_Id\": null\r\n }\r\n this.tenderQuantityService.getProjectTenderElement(obj).subscribe(data => {\r\n this.existsTenderElement = data;\r\n let structureId = this.tqSetDynamicForm?.form.get('Structure / Package')?.value.dedId\r\n this.tenderlist = data.filter((value: { struct_DED_Id: any; }) => value.struct_DED_Id == structureId);\r\n });\r\n }\r\n }\r\n\r\n getItemData(data: any, stage: any) {\r\n let setItem = data.tenderElementDetails.filter((value: { tE_Description: any; }) => value.tE_Description == stage.tE_Description)[0];\r\n if (!!setItem && !!setItem.tI_Description)\r\n return setItem.tI_Description;\r\n }\r\n\r\n\r\n tabChanged(event: any) {\r\n this.AddBtn = false;\r\n this.SubmitBtn = false;\r\n this.selectedDiscipline = undefined;\r\n this.structrue = undefined;\r\n this.tenderlist = [];\r\n this.elementsList = [];\r\n this.quantity = null;\r\n this.ngOnInit();\r\n this.currentTab = event.tab.textLabel;\r\n this.EC_enableFilter = false;\r\n this.IC_enableFilter = false;\r\n }\r\n\r\n\r\n getData() {\r\n this.tenderQuantityService.getElementProjectConfigure().subscribe(data => {\r\n this.ElementProjectlink = data;\r\n this.ElementProjectlink.forEach((value,i)=>{\r\n value[\"index\"]=i+1;\r\n })\r\n });\r\n\r\n this.tenderQuantityService.getItemProjectConfigure().subscribe(data => {\r\n this.ItemProjectlink = data;\r\n this.ItemProjectlink.forEach((value,i)=>{\r\n value[\"index\"]=i+1; \r\n })\r\n });\r\n\r\n this._projService.getProjectFeatureWiseMembers({ projectId: this.commonService.getProjectId(), groupId: this.commonService.getLoggedInUserGroupId(), featureDescription: 'Approve' })\r\n .subscribe((data) => {\r\n this.approverList = data;\r\n });\r\n }\r\n\r\n\r\n\r\n AddNewData(currentpage?: String, Val?: any) {\r\n this.Currentpage = currentpage;\r\n let typeAction:any = {}\r\n switch (currentpage) {\r\n case 'Elements-Configure': {\r\n typeAction[\"currentpage\"] = currentpage\r\n if (!!Val)\r\n typeAction[\"value\"] = Val;\r\n break;\r\n }\r\n case 'Item-Configure': {\r\n typeAction[\"currentpage\"] = currentpage;\r\n if (!!Val)\r\n typeAction[\"value\"] = Val;\r\n break;\r\n }\r\n case 'Tender': {\r\n typeAction[\"currentpage\"] = currentpage;\r\n if (!!Val)\r\n typeAction[\"value\"] = Val;\r\n break;\r\n }\r\n }\r\n let dialogRef = this.dialog.open(EditConfigurComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n maxWidth: '70vw',\r\n data: typeAction\r\n });\r\n dialogRef.afterClosed().subscribe(data => {\r\n this.getData();\r\n });\r\n }\r\n\r\n\r\n editHandler(currentpage: string, val: any,) {\r\n this.AddNewData(currentpage, val);\r\n let test :any= this.tqSetDynamicForm.fields;\r\n test[0][\"setDisable\"] = true;\r\n this.tqSetDynamicForm.createControl();\r\n }\r\n\r\n getTqSetConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'select',\r\n name: 'Discipline',\r\n label: 'Discipline',\r\n deDescription: 'Discipline',\r\n module_id: Module.ScheduleDocument,\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Please select discipline\"\r\n }\r\n ],\r\n value: new BehaviorSubject(null)\r\n },\r\n {\r\n type: 'select',\r\n name: 'Structure / Package',\r\n label: 'Structure / Package',\r\n deDescription: 'Structure / Package',\r\n module_id: Module.ScheduleDocument,\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Structure No Required\"\r\n }\r\n ],\r\n value: new BehaviorSubject(null)\r\n },\r\n ]\r\n }\r\n\r\n setRevisionValues(Val?: any) {\r\n if (Val.value != \"-2\") {\r\n this.submittedby['submittedId'] = Val.value;\r\n }\r\n }\r\n\r\n getSelectValue() {\r\n this.docConfig = this.getTqSetConfig();\r\n this.tqSetDynamicForm.fields = this.docConfig;\r\n this.tqSetDynamicForm.createControl();\r\n }\r\n\r\n viewSubBtn() {\r\n this.setclear = 'Y';\r\n let getDisciplineChange = this.tqSetDynamicForm?.form.get('Discipline')?.value;\r\n if (!this.selectedDiscipline) {\r\n this.notificationService.showPopup(\"Discipline Selection is required\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (!this.structrue) {\r\n this.notificationService.showPopup(\"Structure / Package Selection is required\", \"Warning\");\r\n return;\r\n }\r\n if (this.ApproveBtn == false && this.ReviseBtn == false) {\r\n this.SubmitBtn = true;\r\n this.AddBtn = true;\r\n }\r\n this.getProjectTenderDetail();\r\n }\r\n\r\n resetAddControl(valueChanges?: string) {\r\n this.setclear = 'Y';\r\n let obj:any = {\r\n \"trans_Type\": null,\r\n \"project_Id\": this.commonService.getProjectId(),\r\n \"t_Id\": null,\r\n \"disc_DED_Id\": (!!this.tqSetDynamicForm?.form.get('Discipline')?.value.dedId) ? this.tqSetDynamicForm?.form.get('Discipline')?.value.dedId : \"\",\r\n \"struct_DED_Id\": this.structrue.dedId,\r\n \"active_Tag\": \"yes\",\r\n \"member_Id\": this.commonService.getLoggedInUserId(),\r\n \"submitted_Tag\": false,\r\n \"submitted_By\": null,\r\n \"submitted_On\": null,\r\n \"tenderDetails\": [],\r\n \"approved_Tag\": false,\r\n \"approved_by\": null,\r\n \"approved_On\": null,\r\n \"sort_By\": 0\r\n }\r\n obj.trans_Type = \"Submit\";\r\n obj.tenderDetails = this.tenderlist.map((element => {\r\n return { \"t_Id\": element.t_Id };\r\n }));\r\n\r\n this.tenderQuantityService.insertTenderData(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n obj.trans_Type = \"Approve\";\r\n obj.tenderDetails = this.tenderlist.map((element => {\r\n return { \"t_Id\": element.t_Id };\r\n }));\r\n this.tenderQuantityService.insertTenderData(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.getProjectTenderDetail();\r\n }\r\n });\r\n }\r\n });\r\n this.SubmitBtn = true;\r\n this.AddBtn = true;\r\n this.setDisable = false;\r\n this.ReviseBtn = false;\r\n }\r\n\r\n addTender(currentAction?: string) {\r\n let elementDetails: any[] = this.elementsList.filter(val => !!val.selectedItem).map(data => {\r\n return { \"tE_Id\": data.selectedItem.tE_Id, \"tI_Id\": data.selectedItem.tI_Id }\r\n });\r\n let isDuplicate: boolean = false;\r\n let tenderId: any;\r\n if (currentAction == 'add') {\r\n let sortedElements: any[] = elementDetails.sort(a => a.tE_Id);\r\n for (let itemIndex = 0; itemIndex < this.tenderlist.length; itemIndex++) {\r\n let currentItem: any = this.tenderlist[itemIndex];\r\n let items: any[] = currentItem.tenderElementDetails.map((data: { tE_Id: any; tI_Id: any; }) => {\r\n return { \"tE_Id\": data.tE_Id, \"tI_Id\": data.tI_Id }\r\n }).sort((a: { tE_Id: any; }) => a.tE_Id);\r\n if (JSON.stringify(sortedElements) === JSON.stringify(items)) {\r\n this.notificationService.showPopup(\"Already Exsists!!!\", \"Warning\");\r\n isDuplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (isDuplicate)\r\n return;\r\n\r\n let obj:any = {\r\n \"trans_Type\": null,\r\n \"project_Id\": this.commonService.getProjectId(),\r\n \"t_Id\": null,\r\n \"disc_DED_Id\": (!!this.tqSetDynamicForm?.form.get('Discipline')?.value.dedId) ? this.tqSetDynamicForm?.form.get('Discipline')?.value.dedId : \"\",\r\n \"struct_DED_Id\": this.structrue.dedId,\r\n \"active_Tag\": \"yes\",\r\n \"member_Id\": this.commonService.getLoggedInUserId(),\r\n \"submitted_Tag\": false,\r\n \"submitted_By\": null,\r\n \"submitted_On\": null,\r\n \"tenderDetails\": [],\r\n \"approved_Tag\": false,\r\n \"approved_by\": null,\r\n \"approved_On\": null,\r\n \"sort_By\": 0\r\n }\r\n switch (currentAction) {\r\n case \"add\": {\r\n this.setclear = 'N';\r\n if (elementDetails.length != 0) {\r\n obj.trans_Type = \"Insert\";\r\n obj[\"quantity\"] = this.quantity ? this.quantity : 0;\r\n this.tenderQuantityService.insertTenderData(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n tenderId = data.result;\r\n let addValueTender = { \"t_Id\": data.result, \"tenderElementDetails\": elementDetails, active_Tag: \"yes\", \"member_Id\": 0 };\r\n addValueTender.active_Tag = this.elementsList[0].active_Tag;\r\n addValueTender.member_Id = this.commonService.getLoggedInUserId();\r\n this.tenderQuantityService.insertElementDetailsTenderData(addValueTender).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.quantity = null;\r\n this.setclear = 'Y';\r\n this.getProjectTenderDetail();\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n }\r\n });\r\n }\r\n })\r\n } else {\r\n this.notificationService.showPopup(\"Please Select any one Elements\", \"Warning\");\r\n }\r\n break;\r\n }\r\n\r\n case \"submit\": {\r\n this.quantity = null;\r\n obj.trans_Type = \"Submit\";\r\n obj.submitted_Tag = true;\r\n obj.submitted_By = this.commonService.getLoggedInUserId();\r\n obj.submitted_On = new Date();\r\n obj.tenderDetails = this.tenderlist.map((element => {\r\n return { \"t_Id\": element.t_Id };\r\n }));\r\n this.tenderQuantityService.insertTenderData(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n if (!!this.editEvent) {\r\n this.closeEditor(this.editEvent);\r\n }\r\n this.SubmitBtn = false;\r\n this.AddBtn = false;\r\n this.ApproveBtn = true;\r\n this.getProjectTenderDetail();\r\n\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n }\r\n });\r\n break;\r\n } case \"approve\": {\r\n if (!!this.submittedby.submittedId) {\r\n obj.trans_Type = \"Approve\";\r\n obj.approved_Tag = true;\r\n obj.approved_by = this.submittedby.submittedId;\r\n obj.approved_On = new Date();\r\n obj.tenderDetails = this.tenderlist.map((element => {\r\n return { \"t_Id\": element.t_Id };\r\n }));\r\n this.tenderQuantityService.insertTenderData(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.setclear = 'Y';\r\n this.SubmitBtn = false;\r\n this.AddBtn = false;\r\n this.ApproveBtn = false;\r\n this.ReviseBtn = true;\r\n this.getProjectTenderDetail();\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n }\r\n });\r\n } else {\r\n this.notificationService.showPopup(\"Please Select Approved By\", \"Warning\");\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n numberOnly(event: { which: any; keyCode: any; }): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n } else {\r\n if (this.quantity > 8000000) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n onValueChange(value: any, element: any) {\r\n if (!!value && value.value != \"-2\") {\r\n element.selectedItem = value.additionalValues.additionalValues;\r\n }\r\n else {\r\n element.selectedItem = null;\r\n }\r\n }\r\n\r\n \r\n\r\n editRowData(data:any) {\r\n this.editEvent = data.sender;\r\n this.closeEditor(data.sender);\r\n this.editedRowIndex = data.rowIndex;\r\n this.editedLine = Object.assign({}, data.dataItem);\r\n data.sender.editRow(data.rowIndex);\r\n this.updateQuantity = data.dataItem.tenderElementDetails[0].quantity;\r\n }\r\n\r\n closeEditor(grid: { closeRow: (arg0: number) => void; }, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedLine = undefined;\r\n }\r\n\r\n cancelHandler(data:any) {\r\n this.closeEditor(data.sender, data.rowIndex);\r\n }\r\n\r\n deleteRowData(data:any){ \r\n this.tenderQuantityService.deleteTender(data.dataItem.t_Id).subscribe(data =>{ \r\n if (data.successCode == 200) { \r\n this.getProjectTenderDetail();\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n }\r\n });\r\n }\r\n \r\n UpdateRowData(data:any) {\r\n let obj:any = {\r\n \"trans_Type\": \"Insert\",\r\n \"t_Id\": data.dataItem.t_Id,\r\n \"project_Id\": this.commonService.getProjectId(),\r\n \"member_Id\": this.commonService.getLoggedInUserId(),\r\n \"disc_DED_Id\": data.dataItem.disc_DED_Id,\r\n \"struct_DED_Id\": data.dataItem.struct_DED_Id,\r\n \"active_Tag\": \"yes\",\r\n \"quantity\": this.updateQuantity,\r\n \"submitted_Tag\": false,\r\n \"submitted_By\": null,\r\n \"submitted_On\": null,\r\n \"tenderDetails\": [],\r\n \"approved_Tag\": false,\r\n \"approved_by\": null,\r\n \"approved_On\": null,\r\n \"sort_By\": 0\r\n }\r\n this.tenderQuantityService.insertTenderData(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.closeEditor(data.sender);\r\n this.getProjectTenderDetail();\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n }\r\n });\r\n }\r\n\r\n toggleFilter(tap:any) { \r\n switch (tap){\r\n case 'element' :{ \r\n this.EC_enableFilter = !this.EC_enableFilter;\r\n break;\r\n }\r\n case 'items' :{ \r\n this.IC_enableFilter = !this.IC_enableFilter;\r\n break;\r\n } \r\n } \r\n }\r\n \r\n}\r\n\r\n\r\n","
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { ProjectWorkflowStatusService } from 'src/app/Service/ProjectWorkflowStatus/ProjectWorkflowStatus.service';\r\nimport { ProjectWorkflowStatusOutputModel, ProjectWorkflowStatusInputModel } from 'src/app/ViewModel/ProjectWorkflowStatus';\r\nimport { EditprojectworkflowstatusComponent } from '../dialogs/project-workflow-status-dialog/project-workflow-status-dialog.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport * as moment from 'moment';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-projectworkflowstatus',\r\n templateUrl: './projectworkflowstatus.component.html',\r\n styleUrls: ['./projectworkflowstatus.component.css']\r\n})\r\nexport class projectworkflowstatusComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n memberId !:number;\r\n groupId !:number;\r\n projectId!:number;\r\n businessGroupForm!: FormGroup;\r\n businessGroups: BusinessGroupModel[] = [];\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Members list against the business group */\r\n public ProjectWorkflowStatusList: ProjectWorkflowStatusOutputModel[] = [];\r\n constructor(private _dialog: MatDialog, private _orgService: OrganizationService, public _formBuilder: FormBuilder,\r\n private _ProjectWorkStatusService: ProjectWorkflowStatusService, private _notificationService: NotificationService,private _commonService :CommonService) {\r\n\r\n }\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getOrganizationList();\r\n this.createBusinessGroupForm();\r\n this.getWorkflowStatusList();\r\n \r\n }\r\n\r\n createBusinessGroupForm() {\r\n this.businessGroupForm = this._formBuilder.group({\r\n businessGroup: new FormControl('', [Validators.required])\r\n })\r\n }\r\n DefalultbusinessGroup()\r\n {\r\n let selectedGroup: BusinessGroupModel = this.businessGroups.filter(x => x.group_Id == this.groupId)[0];\r\n this.businessGroupForm.get('businessGroup')?.setValue(selectedGroup);\r\n }\r\n selectedOrganization(organization: BusinessGroupModel) {\r\n if (typeof organization === \"object\")\r\n {\r\n this.groupId = organization.group_Id;\r\n this.getWorkflowStatusList();\r\n }\r\n }\r\n\r\n /**\r\n * Get organization list\r\n */\r\n getOrganizationList() {\r\n this._commonService.getProjectBusinessGroups(this.projectId).subscribe((data: BusinessGroupModel[]) => {\r\n this.businessGroups = data;\r\n this.DefalultbusinessGroup();\r\n });\r\n }\r\n\r\n /**\r\n* Get workflow status list\r\n*/\r\n getWorkflowStatusList() {\r\n this._ProjectWorkStatusService.getProjectWorkflowStatus(this.projectId, this.groupId).subscribe((data: ProjectWorkflowStatusOutputModel[]) => {\r\n this.ProjectWorkflowStatusList = data;\r\n });\r\n }\r\n // addEdit(member?: ProjectWorkflowStatusOutputModel) {\r\n // }\r\n addEdit(data?:any| ProjectWorkflowStatusOutputModel) {\r\n if (data === undefined)\r\n data = null;\r\n const dialogRef = this._dialog.open(EditprojectworkflowstatusComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n width: '95%',\r\n height: '50%',\r\n data: { ProjectWorkflowobj :data, member: this.memberId,group_Id: this.groupId,project_Id: this.projectId,businessGroups: this.businessGroups, selectedGroup: this.businessGroupForm.get('businessGroup')?.value }\r\n });\r\n dialogRef.afterClosed().subscribe((response: StandardOutputModel) => {\r\n if (response.successCode==200) {\r\n this._notificationService.showPopup(response.successMessage, \"Success\");\r\n this.getWorkflowStatusList();\r\n }\r\n else if (response.successCode==500) {\r\n this._notificationService.showPopup(response.successMessage, \"Warning\");\r\n }\r\n\r\n }, err => { });\r\n }\r\n\r\n \r\n\r\n /**\r\n* Toggle filter\r\n*/\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n \r\n unlock(lock_status: any) {\r\n return lock_status.lock_status\r\n }\r\n}","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group:\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { Alert } from 'selenium-webdriver';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { ReplectRoleMemberModel } from 'src/app/ViewModel/RoleMemberMappedModel';\r\n\r\n@Component({\r\n selector: 'app-replace-member',\r\n templateUrl: './replace-member.component.html',\r\n styleUrls: ['./replace-member.component.css']\r\n})\r\nexport class ReplaceMemberComponent implements OnInit {\r\n public Unsubscribes: Subscription[] = [];\r\n ReplacementRequiredMembers: ReplectRoleMemberModel[];\r\n RoleMembersUpdated: any[];\r\n IsMemberRemoved: boolean = false;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public _data: any, public dialogRef: MatDialogRef, public commonService: CommonService, private _projInfoService: ProjectInfoService) { }\r\n\r\n ngOnInit(): void {\r\n this.ReplacementRequiredMembers = this._data['ReplacementRequiredMembers'];\r\n this.RoleMembersUpdated = this._data['RoleMembersUpdated'];\r\n this.IsMemberRemoved = this._data['IsMemberRemoved'];\r\n\r\n this.ReplacementRequiredMembers.forEach(async data => {\r\n data.ReplacementMembers = [];\r\n this.Unsubscribes.push(this._projInfoService.getProjectMembersByRole({\r\n projectId: data.projectId,\r\n groupId: data.groupId,\r\n roleId: data.role_Id\r\n }).subscribe(res => {\r\n if (this.IsMemberRemoved) {\r\n data.ReplacementMembers = res.filter(({\r\n memberId: ActualMemberId\r\n }) => this.RoleMembersUpdated.every(({\r\n memberId: ReplaceMemberId\r\n }) => {\r\n return (ActualMemberId != ReplaceMemberId)\r\n }));\r\n } else {\r\n data.ReplacementMembers = res.filter(({\r\n memberId: ActualMemberId\r\n }) => this.RoleMembersUpdated.filter(x => !x.isCheck && x.roleId == data.role_Id).every(({\r\n memberId: ReplaceMemberId\r\n }) => {\r\n return (ActualMemberId != ReplaceMemberId)\r\n }));\r\n }\r\n }));\r\n })\r\n }\r\n\r\n isValid(): boolean {\r\n return this.ReplacementRequiredMembers.some(o => o.replaceMemberId == 0 || o.replaceMemberId == -2)\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n DelegateMember() {\r\n this.dialogRef.close(this._data['RoleMembersUpdated']);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.Unsubscribes.forEach(x => x.unsubscribe());\r\n }\r\n\r\n UpdateValueChange(event: any, container: any) {\r\n container.replaceMemberId = event.value;\r\n this.RoleMembersUpdated.filter(x => x.memberId == container.member_Id && x.roleId == container.role_Id).map(y => y.delegateMemberId = (event.value == '0' || event.value == '-2') ? 0 : event.value);\r\n }\r\n}\r\n","
\r\n
\r\n Delegate Members\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Note :- There are ongoing documents for which the following members are assigned to roles that are now inactived.Therefore kindly provide a delegate member. \r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.member_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.roleDesc}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n   Cancel\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { ElementLinkModel } from 'src/app/ViewModel/ElementLinkModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AddStaticElementLinkDialogComponent } from '../dialogs/add-static-element-link-dialog/add-static-element-link-dialog.component';\r\n\r\n@Component({\r\n\tselector: 'app-static-element-link',\r\n\ttemplateUrl: './static-element-link.component.html',\r\n\tstyleUrls: ['./static-element-link.component.css']\r\n})\r\nexport class StaticElementLinkComponent implements OnInit {\r\n\r\n\r\n\tstaticElementsList!: ReadonlyArray;\r\n\tenableFilter = false;\r\n\tenableFullscreen = false;\r\n\r\n\tconstructor(public elementLinkService: ElementLinkService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tprivate dialog: MatDialog,\r\n\t\tprivate notificationService: NotificationService,) {\r\n\t}\r\n\r\n\tngOnInit() { }\r\n\r\n\r\n\tchangeBusinessGroup(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.elementLinkService.selectedBusinessGrpId = Number(event.value);\r\n\t\t\tthis.getDocumentElements();\r\n\t\t} else {\r\n\t\t\tthis.clearData();\r\n\t\t}\r\n\t}\r\n\r\n\tgetDocumentElements() {\r\n\t\tthis.elementLinkService.getDocumentElements(this.commonService.getProjectId(), true).subscribe((data: ElementLinkModel[]) => {\r\n\t\t\tthis.staticElementsList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tclearData() {\r\n\t\tthis.staticElementsList = [];\r\n\t\tthis.elementLinkService.selectedBusinessGrpId = null;\r\n\t\tthis.elementLinkService.clearBusinessGroup = 'Y';\r\n\t}\r\n\r\n\taddEditStaticElements(dataItem: ElementLinkModel, isCreate: boolean,) {\r\n\t\tif (this.elementLinkService.selectedBusinessGrpId) {\r\n\t\t\tlet dialogRef = this.dialog.open(AddStaticElementLinkDialogComponent, {\r\n\t\t\t\tdisableClose: true,\r\n\t\t\t\tpanelClass: 'mat-dialog-secondary',\r\n\t\t\t\twidth: '95%',\r\n\t\t\t\tminWidth: '95vw',\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tdataItem,\r\n\t\t\t\t\tisCreate,\r\n\t\t\t\t\tbusinessGroupId: this.elementLinkService.selectedBusinessGrpId,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.afterClosed().subscribe(data => {\r\n\t\t\t\tif (data['isChangesDone']) {\r\n\t\t\t\t\tthis.getDocumentElements();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.notificationService.showToast('Select Business Group', 'Warning');\r\n\t\t}\r\n\t}\r\n\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Business Group :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.moduleDescription}}\r\n \r\n \r\n \r\n \r\n {{dataItem.elementDescription}}\r\n \r\n \r\n \r\n \r\n {{dataItem.defaultValue}}\r\n \r\n \r\n \r\n \r\n {{dataItem.projectElementDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { TenderQuantityService } from 'src/app/Service/tender-quantity/tender-quantity.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-edit-configur',\r\n templateUrl: './edit-configur.component.html',\r\n styleUrls: ['./edit-configur.component.css']\r\n})\r\n\r\nexport class EditConfigurComponent implements OnInit {\r\n public projectList: any[] = [];\r\n public tenderQuantityConfig: FieldConfig[] = [];\r\n public projectId!: number;\r\n public elementId!: number | undefined;\r\n public itemId!: number | undefined;\r\n public element!: string;\r\n public item!: string;\r\n public showLabel: boolean = false;\r\n public ElementForm!: FormGroup;\r\n public showItem: boolean = false;\r\n public currentActionpage!: string;\r\n public elementList: any[] = [];\r\n public itemList: any[] = [];\r\n public discipline!: number;\r\n public CommonelementData: any[] = [];\r\n public show: boolean = false;\r\n public setDisable: boolean = false;\r\n public setDiscipline!: string;\r\n public activeStatus: boolean = true;\r\n\r\n @ViewChild('dynamicFormComponent',{static:true}) dynamicFormComponent!: DynamicFormComponent;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n private projectInfoService: ProjectInfoService,\r\n public dialogRef: MatDialogRef,\r\n private commonService: CommonService,\r\n private tenderQuantityService: TenderQuantityService,\r\n private _notificationService: NotificationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getDynamicform();\r\n this.pageConfigure();\r\n this.dynamicFormComponent?.form.get('Discipline')?.valueChanges.subscribe(data => {\r\n if (!!data) {\r\n this.discipline = data.dedId;\r\n this.elementId = undefined;\r\n this.itemId = undefined;\r\n this.itemList = [];\r\n this.elementList = [];\r\n this.getDATA();\r\n } else {\r\n this.itemList = [];\r\n this.elementList = [];\r\n this.elementId = undefined;\r\n this.itemId = undefined;\r\n }\r\n\r\n });\r\n }\r\n\r\n pageConfigure() {\r\n if (!!this.data.value) {\r\n this.setDisable = true;\r\n }\r\n switch (this.data.currentpage) {\r\n case \"Elements-Configure\": {\r\n this.currentActionpage = this.data.currentpage;\r\n if (!!this.data.value) {\r\n this.show = true;\r\n this.discipline = this.data.value.disc_DED_Id;\r\n this.setDiscipline = this.data.value.deD_Description;\r\n this.elementId = this.data.value.tE_Id;\r\n this.element = this.data.value.tE_Description;\r\n this.activeStatus = (this.data.value.active_Tag == \"Yes\") ? true : false;\r\n }\r\n break;\r\n }\r\n case \"Item-Configure\": {\r\n this.showItem = true;\r\n this.currentActionpage = this.data.currentpage;\r\n if (!!this.data.value) {\r\n this.show = true;\r\n this.showItem = false;\r\n this.showLabel = true;\r\n this.activeStatus = (this.data.value.active_Tag == \"Yes\") ? true : false;\r\n this.discipline = this.data.value.disc_DED_Id;\r\n this.setDiscipline = this.data.value.deD_Description;\r\n this.elementId = this.data.value.tE_Id;\r\n this.element = this.data.value.tE_Description;\r\n this.item = this.data.value.tI_Description;\r\n this.itemId = this.data.value.tI_Id;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n masterConfigure(data?: any, action?: any, val?: any) {\r\n let active_status = \"Y\";\r\n if (!!val) {\r\n active_status = \"Yes\";\r\n }\r\n this.CommonelementData = data.filter((element: { disc_DED_Id: number; active_Tag: string; }) => element.disc_DED_Id == this.discipline && element.active_Tag == active_status);\r\n if (!!action) {\r\n this.CommonelementData = this.CommonelementData.filter(element => element.tE_Id == this.elementId && element.active_Tag == active_status);\r\n }\r\n let newArray = [];\r\n let uniqueObject:any = {};\r\n let objID;\r\n for (let i in this.CommonelementData) {\r\n if (!action) {\r\n objID = this.CommonelementData[i]['tE_Id'];\r\n }\r\n else {\r\n objID = this.CommonelementData[i]['tI_Id'];\r\n }\r\n uniqueObject[objID] = this.CommonelementData[i];\r\n }\r\n for (let i in uniqueObject) {\r\n newArray.push(uniqueObject[i]);\r\n }\r\n if (!action) {\r\n this.elementList = newArray;\r\n } else {\r\n this.itemList = newArray;\r\n }\r\n }\r\n\r\n commonGetDiscElementItemData(action?: any) {\r\n this.tenderQuantityService.getDiscElementItemData().subscribe(data => {\r\n this.masterConfigure(data, action);\r\n });\r\n }\r\n\r\n getDATA(onselect?: any) {\r\n switch (this.data.currentpage) {\r\n case \"Elements-Configure\": {\r\n this.commonGetDiscElementItemData();\r\n break;\r\n }\r\n case \"Item-Configure\": {\r\n this.tenderQuantityService.getElementProjectConfigure(this.discipline).subscribe(data => {\r\n this.masterConfigure(data, undefined, \"Item-Configure\");\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getItem(onselect?: any) {\r\n if (!!this.discipline && !!onselect) {\r\n this.elementId = onselect;\r\n this.commonGetDiscElementItemData(\"getItem\");\r\n }\r\n }\r\n\r\n\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTqSetConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'select',\r\n name: 'Discipline',\r\n label: 'Discipline',\r\n deDescription: 'discipline',\r\n module_id: Module.ScheduleDocument,\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Please select discipline\"\r\n }\r\n ],\r\n value: new BehaviorSubject(null)\r\n }\r\n ]\r\n };\r\n\r\n getDynamicform() {\r\n this.tenderQuantityConfig = this.getTqSetConfig();\r\n this.dynamicFormComponent.fields = this.tenderQuantityConfig;\r\n this.dynamicFormComponent.createControl();\r\n };\r\n\r\n Save() {\r\n switch (this.data.currentpage) {\r\n case \"Elements-Configure\": {\r\n if (!this.elementId) {\r\n this._notificationService.showPopup(\"Please Select Element\", \"Warning\");\r\n return;\r\n }\r\n let obj = {\r\n \"project_Id\": this.commonService.getProjectId(), \"disc_DED_Id\": this.discipline, \"tE_Id\": this.elementId,\r\n \"sort_By\": 0, \"active_Tag\": (this.activeStatus) ? \"Y\" : \"N\", \"member_Id\": this.commonService.getLoggedInUserId()\r\n }\r\n this.tenderQuantityService.InsetConfigureProjectElement(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this._notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog();\r\n return;\r\n }\r\n });\r\n break;\r\n }\r\n case \"Item-Configure\": {\r\n if (!this.elementId) {\r\n this._notificationService.showPopup(\"Please Select Element\", \"Warning\");\r\n return;\r\n }\r\n if (!this.itemId) {\r\n this._notificationService.showPopup(\"Please Select Item\", \"Warning\");\r\n return;\r\n }\r\n let obj = {\r\n \"project_Id\": this.commonService.getProjectId(), \"disc_DED_Id\": this.discipline, \"tE_Id\": this.elementId,\r\n \"sort_By\": 0, \"active_Tag\": (this.activeStatus) ? \"Y\" : \"N\", \"tI_Id\": this.itemId,\r\n \"member_Id\": this.commonService.getLoggedInUserId()\r\n }\r\n this.tenderQuantityService.InsertConfigureProjectItem(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this._notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog();\r\n return;\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

{{currentActionpage}}

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Selected Discipline\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ data.tE_Description }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Selected Element Description \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ data.tI_Description }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Selected Item Description\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Active Status:\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { NgModule } from \"@angular/core\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { HomeComponent } from \"./home/Home.component\";\r\n\r\nexport const dashboardRoutes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'home',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'home',\r\n component: HomeComponent\r\n } \r\n];\r\n@NgModule(\r\n {\r\n imports: [RouterModule.forChild(dashboardRoutes)],\r\n exports: [RouterModule]\r\n }\r\n)\r\nexport class DashboardRoutingModule {\r\n\r\n}","import { AfterViewInit, Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { IProjectDashboardOutputModel, IProjectDocDashboardOutputModel, IHomeDashboardInputModel } from 'src/app/ViewModel/DashboardModel';\r\nimport { DashboardService } from 'src/app/Service/dashboard/dashboard.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { forkJoin, Observable, Subscription } from 'rxjs';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { SeriesLabelsVisualArgs } from '@progress/kendo-angular-charts';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { C, } from '@angular/cdk/keycodes';\r\nimport { CircleProgressComponent, CircleProgressOptions } from 'ng-circle-progress';\r\nimport * as L from 'leaflet';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ScheduleDocumentViewPopupComponent } from '../schedule-document-view-popup/schedule-document-view-popup.component';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nconst iconRetinaUrl = 'assets/marker-icon-2x.png';\r\nconst iconUrl = 'assets/marker-icon.png';\r\nconst shadowUrl = 'assets/marker-shadow.png';\r\nconst iconDefault = L.icon({\r\n iconRetinaUrl,\r\n iconUrl,\r\n shadowUrl,\r\n iconSize: [25, 41],\r\n iconAnchor: [12, 41],\r\n popupAnchor: [1, -34],\r\n tooltipAnchor: [16, -28],\r\n shadowSize: [41, 41]\r\n});\r\nL.Marker.prototype.options.icon = iconDefault;\r\n\r\n@Component({\r\n selector: 'app-dashboard-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\n\r\nexport class HomeComponent implements OnInit, OnDestroy, AfterViewInit {\r\n //dashboardDetails: IProjectDashboardOutputModel;\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n isDataLoaded: number = 0;\r\n isMapLoaded: number = 0;\r\n subscriptions: Subscription[] = []\r\n Active_Projects: number = 0;\r\n oldDashboardActive: boolean = false;\r\n Repository_Documents: number = 0;\r\n Total_Repository_Documents: number = 0;\r\n Shared_Documents: number = 0;\r\n Scheduled_Documents: number = 0;\r\n Total_Scheduled_Documents: number = 0;\r\n WF_Pending_Documents: number = 0;\r\n WF_Assigned_Documents: number = 0;\r\n WF_Yet_To_Start: number = 0;\r\n Inbox_Count: number = 0;\r\n Sent_Count: number = 0;\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n projectDocDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectDocStatusDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectCommunicationDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectCommunicationStatusDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectCommunicationSentStatusDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectCommunicationInboxStatusDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectScheduleDetails: IProjectDocDashboardOutputModel[] = [];\r\n projectDocScheduleDetails: IProjectDocDashboardOutputModel[] = [];\r\n scheduleCount: number = 0;\r\n scheduleStatusCount: number = 0;\r\n documentCount: number = 0;\r\n documentStatusCount: number = 0;\r\n communicationCount: number = 0;\r\n communicationInboxCount: number = 0;\r\n communicationSentCount: number = 0;\r\n ViewScheduleDocumentDetails: boolean = false;\r\n ViewRepositoryDocumentDetails: boolean = false;\r\n MapDashboardView: boolean=false;\r\n\r\n formDashboard: FormGroup;\r\n colorCodes: any[] = ['#F6BE00', '#0202FA', '#FF5F15', '#FA0202', '#AA7C7A', '#008000'];\r\n stageColors: Map = new Map();\r\n MasterDetails: any[] = [];\r\n RepositoryDocumentDetails: any[] | null = [];\r\n ScheduleDocumentDetails: any[] | null = [];\r\n GridAPageSize = 15;\r\n GridASkip = 0;\r\n GridAEnableFilter = false;\r\n GridBPageSize = 15;\r\n GridBSkip = 0;\r\n GridBEnableFilter = false;\r\n SelectedProject!: number;\r\n SelectedGroup!: number;\r\n ScheduleAdherenceDetails: any[] | null = [];\r\n MonthWiseDocStatusReport: any[] | null = [];\r\n category: string[] = [];\r\n ScheduleDocumentStatusSummary: any[] | null = [];\r\n DocumentRevisionForGFC: any[] | null = [];\r\n DocStatusCount: any[] | null = [];\r\n AvarageTATPerDrawingDetails: any[] | null = [];\r\n AvarageTATPerDrawing: string = '';\r\n AvarageTATPerDrawingToottip: string = 'TAT';\r\n RepositoryDocumentStatusSummary: any[] | null = [];\r\n MonthWiseRepositoryDocStatusReport: any[] | null = [];\r\n RepositoryDocumentsCount: number = 0;\r\n ScheduleDocumentsCount: number = 0;\r\n\r\n GFCchartHeight: number = 430;\r\n ApprovalStatusCountchartHeight: number = 430;\r\n\r\n panelOpenState: boolean = true;\r\n IsCorporateHead: boolean = false;\r\n IsICHead: boolean = false;\r\n IsISDorEDMScoordinator: boolean = false;\r\n canShowProjectDashboard: boolean = false;\r\n\r\n PlannedManHrs: string = \"Planned Man hours
0 hrs\";\r\n ActualManHrs: string = \"Actual Man hours
0 hrs\";\r\n PlannedManHrsPercent: number = 0;\r\n UserEIPICDetails!: string;\r\n\r\n enableFullscreenForDeviationInManhours = false;\r\n enableFullscreenForDCIStatus = false;\r\n enableFullscreenForScheduleAdherance = false;\r\n enableFullscreenForMonthWiseDOCStatus = false;\r\n enableFullscreenForDocumentRevisionforGFC = false;\r\n enableFullscreenForApprovalStatusCount = false;\r\n enableFullscreenForRepositoryDocStatus = false;\r\n enableFullscreenForRepositoryMonthWiseDocument = false;\r\n enableFullscreenForRepositoryDocumentDetails = false;\r\n enableFullscreenForScheduleDocumentDetails = false;\r\n enableFullscreenForMap = false;\r\n private map: any;\r\n\r\n @ViewChild('circleProgress')\r\n circleProgress!: CircleProgressComponent;\r\n options = new CircleProgressOptions();\r\n optionsE = {\r\n radius: 113,\r\n outerStrokeWidth: 30,\r\n innerStrokeWidth: 30,\r\n space: -30,\r\n outerStrokeColor: \"#B4BDED\",\r\n innerStrokeColor: \"#DDDDDD\",\r\n showBackground: false,\r\n titleColor: '#03198b',\r\n titleFontWeight: 500,\r\n titleFontSize: 40,\r\n showSubtitle: false,\r\n animateTitle: false,\r\n showUnits: false,\r\n clockwise: true,\r\n animation: true,\r\n animationDuration: 1000,\r\n startFromZero: true,\r\n outerStrokeGradient: true,\r\n outerStrokeGradientStopColor: '#6D78B3',\r\n lazy: true,\r\n }\r\n\r\n SelectedICs: number[] = [];\r\n SelectedProjects: any[] = [];\r\n SelectedGroups: any[] = [];\r\n SelectedDisciplines: any[] = [];\r\n\r\n ICDetails: any[] = [];\r\n ProjectDetails: any[] = [];\r\n BGDetails: any[] = [];\r\n DisciplineDetails: any[] = [];\r\n\r\n selectedOption: string = 'schedule';\r\n public value = 75;\r\n public chunks = 5;\r\n public clearValue: string = \"N\";\r\n public center: string = \"center\";\r\n public dynamicHeight = true;\r\n constructor(private _dashboardService: DashboardService, private _commonService: CommonService, private loaderService: LoaderService, private _formBuilder: FormBuilder, private _notificationService: NotificationService, private http: HttpClient,private dialog: MatDialog) {\r\n this.formDashboard = this._formBuilder.group({\r\n ic: new FormControl(''),\r\n formIC: new FormControl(''),\r\n project: new FormControl(''),\r\n formProject: new FormControl(''),\r\n bg: new FormControl(''),\r\n formBG: new FormControl(''),\r\n discipline: new FormControl(''),\r\n formDiscipline: new FormControl(''),\r\n });\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n async ngOnInit() {\r\n this.stageColors.set('For Action', this.colorCodes[0]).set('Approved', this.colorCodes[1]).set('Rejected', this.colorCodes[2]).set('In Progress', this.colorCodes[3]).set('On Hold', this.colorCodes[4]).set('Completed', this.colorCodes[5]);\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n\r\n this.subscriptions.push(await this._commonService.selectedProjectId.subscribe(async data => {\r\n if (data) {\r\n this.projectId = data;\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.SelectedProject = data == 9999999 ? -1 : data;\r\n this.SelectedGroup = data == 9999999 ? -1 : this._commonService.getLoggedInUserGroupId();\r\n\r\n if (this.SelectedProject == -1) {\r\n this.subscriptions.push(await this._commonService.getProjectMemberFeatures(null, this.memberId, null, null).subscribe((res: any[]) => {\r\n\r\n this.canShowProjectDashboard = res.some(data => data.feature_Desc.trim().toUpperCase() == 'Project Dashboard'.trim().toUpperCase());\r\n this.panelOpenState = !this.canShowProjectDashboard\r\n }));\r\n\r\n this.subscriptions.push(await this._commonService.getProjectMemberRoles(null, null, this.memberId, null).subscribe(async (res: any[]) => {\r\n\r\n if (res.some(data => data.role_Desc.trim().toUpperCase() == 'Corporate Head'.trim().toUpperCase()))\r\n this.IsCorporateHead = res.some(data => data.role_Desc.trim().toUpperCase() == 'Corporate Head'.trim().toUpperCase());\r\n else if (res.some(data => data.role_Desc.trim().toUpperCase() == 'IC Head'.trim().toUpperCase()))\r\n this.IsICHead = res.some(data => data.role_Desc.trim().toUpperCase() == 'IC Head'.trim().toUpperCase());\r\n\r\n if (this.IsICHead)\r\n this.subscriptions.push(await this._commonService.getMemberICs(this.memberId).subscribe((res: any[]) => {\r\n if (res) {\r\n this.UserEIPICDetails = res.map(x => x.iC_Id).join(\",\");\r\n this.LoadEDMSHomeDashboardDetails();\r\n }\r\n else\r\n this.LoadEDMSHomeDashboardDetails();\r\n }));\r\n else\r\n this.LoadEDMSHomeDashboardDetails();\r\n }));\r\n }\r\n else {\r\n this.subscriptions.push(await this._commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n\r\n this.canShowProjectDashboard = res.some(data => data.feature_Desc.trim().toUpperCase() == 'Project Dashboard'.trim().toUpperCase());\r\n this.panelOpenState = !this.canShowProjectDashboard\r\n }));\r\n\r\n this.subscriptions.push(await this._commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe(async (res: any[]) => {\r\n\r\n if (res.some(data => data.role_Desc.trim().toUpperCase() == 'Corporate Head'.trim().toUpperCase()))\r\n this.IsCorporateHead = res.some(data => data.role_Desc.trim().toUpperCase() == 'Corporate Head'.trim().toUpperCase());\r\n else if (res.some(data => data.role_Desc.trim().toUpperCase() == 'IC Head'.trim().toUpperCase()))\r\n this.IsICHead = res.some(data => data.role_Desc.trim().toUpperCase() == 'IC Head'.trim().toUpperCase());\r\n else if (res.some(data => data.role_Desc.trim().toUpperCase() == 'ISD'.trim().toUpperCase()) || res.some(data => data.role_Desc.trim().toUpperCase() == 'EDMS Coordinator'.trim().toUpperCase()))\r\n this.IsISDorEDMScoordinator = (res.some(data => data.role_Desc.trim().toUpperCase() == 'ISD'.trim().toUpperCase()) || res.some(data => data.role_Desc.trim().toUpperCase() == 'EDMS Coordinator'.trim().toUpperCase()));\r\n\r\n if (this.IsICHead)\r\n this.subscriptions.push(await this._commonService.getMemberICs(this.memberId).subscribe((res: any[]) => {\r\n if (res) {\r\n this.UserEIPICDetails = res.map(x => x.iC_Id).join(\",\");\r\n this.LoadEDMSHomeDashboardDetails();\r\n }\r\n else\r\n this.LoadEDMSHomeDashboardDetails();\r\n }));\r\n else\r\n this.LoadEDMSHomeDashboardDetails();\r\n }));\r\n }\r\n }\r\n }));\r\n }\r\n\r\n copyOptions = (event: any, options: any) => {\r\n this.options = Object.assign({}, this.circleProgress.defaultOptions, options);\r\n }\r\n\r\n get isRepository(): boolean {\r\n return this.selectedOption === 'repository';\r\n };\r\n\r\n changeButtonToggle(event: { value: string; }) {\r\n this.selectedOption = event.value;\r\n }\r\n\r\n public labelContent(e: any): string {\r\n return e.category;\r\n }\r\n\r\n public labelContentStyleA(e: any): string {\r\n return e.category + ' : ' + e.value;\r\n }\r\n\r\n toggleFilter(event: any) {\r\n switch (event.target.id) {\r\n case 'GridAFilter':\r\n this.GridAEnableFilter = !this.GridAEnableFilter;\r\n break;\r\n case 'GridBFilter':\r\n this.GridBEnableFilter = !this.GridBEnableFilter;\r\n break;\r\n }\r\n }\r\n\r\n getStageColor(currentStage: string) {\r\n if (!!currentStage && this.stageColors.has(currentStage)) {\r\n return this.stageColors.get(currentStage);\r\n }\r\n return null;\r\n }\r\n\r\n public labelVisual(args: SeriesLabelsVisualArgs): Element {\r\n const label: any = args.createVisual();\r\n label.options.set('cursor', 'pointer');\r\n return label;\r\n }\r\n\r\n collapseAllClick() {\r\n this.panelOpenState = !this.panelOpenState;\r\n }\r\n\r\n private GetAutoCompleteValues(text: string, value: string, source: any[]): any {\r\n const result = [];\r\n const map = new Map();\r\n for (const item of source) {\r\n if (!map.has(item[value]) && item[value]) {\r\n map.set(item[value], true); // set any value to Map\r\n result.push({\r\n key: item[value],\r\n value: item[text]\r\n });\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n onSelectedValueChange(event: any, formGroupName: string, formControlName: string) {\r\n let O: any[] = event.emittingList.map((x: { value: any; }) => ({ value: x.value }));\r\n\r\n switch (formControlName) {\r\n case 'ic':\r\n this.SelectedICs = event.emittingList.map((x: { value: string | number; }) => +x.value);\r\n\r\n this.ProjectDetails = [];\r\n this.SelectedProjects = [];\r\n\r\n if (O.length > 0)\r\n this.ProjectDetails = this.GetAutoCompleteValues('project_Id', 'project', this.MasterDetails.filter(({ iC_Id: iCId }) => O.some(({ value: val }) => iCId == val)));\r\n else\r\n this.ProjectDetails = this.GetAutoCompleteValues('project_Id', 'project', this.MasterDetails);\r\n\r\n if (this.SelectedProject != -1)\r\n this.SelectedProjects = this.ProjectDetails.map(x => +x.value);\r\n\r\n this.BGDetails = [];\r\n this.SelectedGroups = [];\r\n\r\n if (O.length > 0)\r\n this.BGDetails = this.GetAutoCompleteValues('group_Id', 'group', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)));\r\n else if (O.length == 0 && this.SelectedICs.length == 0)\r\n this.BGDetails = this.GetAutoCompleteValues('group_Id', 'group', this.MasterDetails);\r\n\r\n if (this.SelectedProject != -1)\r\n this.SelectedGroups = this.BGDetails.map(x => +x.value);\r\n\r\n this.DisciplineDetails = [];\r\n this.SelectedDisciplines = [];\r\n\r\n if (O.length > 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)));\r\n else if (O.length == 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails);\r\n\r\n if (this.SelectedProject != -1)\r\n this.SelectedDisciplines = this.DisciplineDetails.map(x => +x.value);\r\n\r\n break;\r\n case 'project':\r\n this.SelectedProjects = event.emittingList.map((x: { value: string | number; }) => +x.value);\r\n let src = this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)).filter(({ project_Id: projectId }) => this.SelectedProjects.map((str, index) => ({ value: str })).some(({ value: val }) => projectId == val));\r\n\r\n this.BGDetails = [];\r\n this.SelectedGroups = [];\r\n\r\n if (O.length > 0)\r\n this.BGDetails = this.GetAutoCompleteValues('group_Id', 'group', src);\r\n else if (O.length == 0 && this.SelectedICs.length > 0)\r\n this.BGDetails = this.GetAutoCompleteValues('group_Id', 'group', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)));\r\n else if (O.length == 0 && this.SelectedICs.length == 0)\r\n this.BGDetails = this.GetAutoCompleteValues('group_Id', 'group', this.MasterDetails);\r\n\r\n if (this.SelectedProject != -1)\r\n this.SelectedGroups = this.BGDetails.map(x => +x.value);\r\n\r\n this.DisciplineDetails = [];\r\n this.SelectedDisciplines = [];\r\n\r\n if (O.length > 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)).filter(({ project_Id: projectId }) => this.SelectedProjects.map((str, index) => ({ value: str })).some(({ value: val }) => projectId == val)));\r\n else if (O.length == 0 && this.SelectedICs.length > 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)));\r\n else if (O.length == 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails);\r\n\r\n if (this.SelectedProject != -1)\r\n this.SelectedDisciplines = this.DisciplineDetails.map(x => +x.value);\r\n break;\r\n case 'bg':\r\n this.SelectedGroups = event.emittingList.map((x: { value: string | number; }) => +x.value);\r\n let bgsrc = this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)).filter(({ project_Id: projectId }) => this.SelectedProjects.map((str, index) => ({ value: str })).some(({ value: val }) => projectId == val)).filter(({ group_Id: groupId }) => this.SelectedGroups.map((str, index) => ({ value: str })).some(({ value: val }) => groupId == val));\r\n\r\n this.DisciplineDetails = [];\r\n this.SelectedDisciplines = [];\r\n\r\n if (O.length > 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', bgsrc);\r\n else if (O.length == 0 && this.SelectedICs.length > 0 && this.SelectedProjects.length > 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)).filter(({ project_Id: projectId }) => this.SelectedProjects.map((str, index) => ({ value: str })).some(({ value: val }) => projectId == val)));\r\n else if (O.length == 0 && this.SelectedICs.length > 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails.filter(({ iC_Id: iCId }) => this.SelectedICs.map((str, index) => ({ value: str })).some(({ value: val }) => iCId == val)));\r\n else if (O.length == 0)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails);\r\n\r\n if (this.SelectedProject != -1)\r\n this.SelectedDisciplines = this.DisciplineDetails.map(x => +x.value);\r\n break;\r\n case 'discipline':\r\n this.SelectedDisciplines = event.emittingList.map((x: { value: string | number; }) => +x.value);\r\n break;\r\n }\r\n }\r\n\r\n setFormValue(form: FormGroup, formControlName: string, value: any) {\r\n form.get(formControlName)?.setValue(value);\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n async LoadEDMSHomeDashboardDetails() {\r\n let x: IHomeDashboardInputModel = {\r\n tran_Type: 'MasterDetails',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: this.SelectedProject == -1 && this.IsICHead && this.UserEIPICDetails ? this.UserEIPICDetails : null,\r\n projectId: this.SelectedProject == -1 ? null : this.SelectedProject.toString(),\r\n groupId: this.SelectedGroup == -1 || this.IsCorporateHead || this.IsICHead || this.IsISDorEDMScoordinator ? null : this.SelectedGroup.toString(),\r\n isSuperUser: this.SelectedProject == -1 ? this.IsCorporateHead || (this.IsICHead && this.UserEIPICDetails.length > 0) : this.IsCorporateHead || this.IsICHead || this.IsISDorEDMScoordinator\r\n }\r\n\r\n this.subscriptions.push(await this._dashboardService.GetEDMSHomeDashboardDetails(x).subscribe(async t => {\r\n this.MasterDetails = t;\r\n\r\n this.ICDetails = this.GetAutoCompleteValues('iC_Id', 'ic', this.MasterDetails)\r\n this.ProjectDetails = this.GetAutoCompleteValues('project_Id', 'project', this.MasterDetails)\r\n this.BGDetails = this.GetAutoCompleteValues('group_Id', 'group', this.MasterDetails)\r\n this.DisciplineDetails = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails)\r\n\r\n if (this.SelectedProject == -1) {\r\n this.SelectedICs = [];\r\n this.SelectedProjects = [];\r\n this.SelectedGroups = [];\r\n this.SelectedDisciplines = [];\r\n\r\n this.RepositoryDocumentDetails = null;\r\n this.ScheduleDocumentDetails = null;\r\n this.ScheduleAdherenceDetails = null;\r\n this.MonthWiseDocStatusReport = null;\r\n this.ScheduleDocumentStatusSummary = null;\r\n this.DocumentRevisionForGFC = null;\r\n this.DocStatusCount = null;\r\n this.AvarageTATPerDrawingDetails = null;\r\n this.AvarageTATPerDrawing = \"0\";\r\n this.AvarageTATPerDrawingToottip = '';\r\n this.PlannedManHrs = \"Planned Man hours
0 hrs\";\r\n this.ActualManHrs = \"Actual Man hours
0 hrs\";\r\n this.PlannedManHrsPercent = 0;\r\n this.RepositoryDocumentStatusSummary = null;\r\n this.MonthWiseRepositoryDocStatusReport = null;\r\n this.RepositoryDocumentsCount = 0;\r\n this.ScheduleDocumentsCount = 0;\r\n this.RepositoryDocumentStatusSummary = null;\r\n this.MonthWiseRepositoryDocStatusReport = null;\r\n this.RepositoryDocumentsCount = 0;\r\n this.ScheduleDocumentsCount = 0;\r\n\r\n const message = {\r\n messageSeverity: '3',\r\n messageText: 'Select Values to Load Dashboard !!!',\r\n };\r\n this._notificationService.showPopupMessageBox(message);\r\n } else {\r\n this.SelectedICs = this.GetAutoCompleteValues('iC_Id', 'ic', this.MasterDetails).map((x: { value: any; }) => x.value);\r\n this.SelectedProjects = this.GetAutoCompleteValues('project_Id', 'project', this.MasterDetails).map((x: { value: any; }) => x.value);\r\n this.SelectedGroups = this.GetAutoCompleteValues('group_Id', 'group', this.MasterDetails).map((x: { value: any; }) => x.value);\r\n this.SelectedDisciplines = this.GetAutoCompleteValues('discipline_Id', 'discipline', this.MasterDetails).map((x: { value: any; }) => x.value);\r\n\r\n await this.ReloadDashBoard('');\r\n }\r\n }))\r\n }\r\n\r\n LoadScheduleDocuments() {\r\n this.ViewScheduleDocumentDetails = !this.ViewScheduleDocumentDetails;\r\n\r\n if (!(this.ScheduleDocumentDetails && this.ScheduleDocumentDetails.length > 0)) {\r\n let ICIds: string | null = this.SelectedICs && this.SelectedICs.length > 0 ? this.SelectedICs.map(x => x).join(\",\") : null;\r\n let ProjectIds: string | null = this.SelectedProjects && this.SelectedProjects.length > 0 ? this.SelectedProjects.map(x => x).join(\",\") : null;\r\n let GroupIds: string | null = this.SelectedGroups && this.SelectedGroups.length > 0 ? this.SelectedGroups.map(x => x).join(\",\") : null;\r\n let DisciplineIds: string | null = this.SelectedDisciplines && this.SelectedDisciplines.length > 0 ? this.SelectedDisciplines.map(x => x).join(\",\") : null;\r\n let objSuperUser: boolean = this.SelectedProject == -1 ? this.IsCorporateHead || (this.IsICHead && this.UserEIPICDetails.length > 0) : this.IsCorporateHead || this.IsICHead || this.IsISDorEDMScoordinator;\r\n\r\n\r\n this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'ScheduleDocumentDetails',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n }).subscribe(async res => {\r\n if (res && res.length > 0) {\r\n this.ScheduleDocumentDetails = res;\r\n }\r\n });\r\n }\r\n }\r\n\r\n LoadRepositoryDocuments() {\r\n this.ViewRepositoryDocumentDetails = !this.ViewRepositoryDocumentDetails;\r\n\r\n if (!(this.RepositoryDocumentDetails && this.RepositoryDocumentDetails.length > 0)) {\r\n let ICIds: string | null = this.SelectedICs && this.SelectedICs.length > 0 ? this.SelectedICs.map(x => x).join(\",\") : null;\r\n let ProjectIds: string | null = this.SelectedProjects && this.SelectedProjects.length > 0 ? this.SelectedProjects.map(x => x).join(\",\") : null;\r\n let GroupIds: string | null = this.SelectedGroups && this.SelectedGroups.length > 0 ? this.SelectedGroups.map(x => x).join(\",\") : null;\r\n let DisciplineIds: string | null = this.SelectedDisciplines && this.SelectedDisciplines.length > 0 ? this.SelectedDisciplines.map(x => x).join(\",\") : null;\r\n let objSuperUser: boolean = this.SelectedProject == -1 ? this.IsCorporateHead || (this.IsICHead && this.UserEIPICDetails.length > 0) : this.IsCorporateHead || this.IsICHead || this.IsISDorEDMScoordinator;\r\n\r\n this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'RepositoryDocumentDetails',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n }).subscribe(async res => {\r\n if (res && res.length > 0) {\r\n this.RepositoryDocumentDetails = res;\r\n }\r\n });\r\n }\r\n }\r\n\r\n async ReloadDashBoard(event: any) {\r\n this.isDataLoaded = 0;\r\n this.ViewScheduleDocumentDetails = false;\r\n this.ViewRepositoryDocumentDetails = false;\r\n\r\n this.RepositoryDocumentDetails = null;\r\n this.ScheduleDocumentDetails = null;\r\n this.ScheduleAdherenceDetails = null;\r\n this.MonthWiseDocStatusReport = null;\r\n this.ScheduleDocumentStatusSummary = null;\r\n this.DocumentRevisionForGFC = null;\r\n this.DocStatusCount = null;\r\n this.AvarageTATPerDrawingDetails = null;\r\n this.AvarageTATPerDrawing = \"0\";\r\n this.AvarageTATPerDrawingToottip = '';\r\n this.PlannedManHrs = \"Planned Man hours
0 hrs\";\r\n this.ActualManHrs = \"Actual Man hours
0 hrs\";\r\n this.PlannedManHrsPercent = 0;\r\n this.RepositoryDocumentStatusSummary = null;\r\n this.MonthWiseRepositoryDocStatusReport = null;\r\n this.RepositoryDocumentsCount = 0;\r\n this.ScheduleDocumentsCount = 0;\r\n this.RepositoryDocumentStatusSummary = null;\r\n this.MonthWiseRepositoryDocStatusReport = null;\r\n this.RepositoryDocumentsCount = 0;\r\n this.ScheduleDocumentsCount = 0;\r\n\r\n let ICIds: string | null = this.SelectedICs && this.SelectedICs.length > 0 ? this.SelectedICs.map(x => x).join(\",\") : null;\r\n let ProjectIds: string | null = this.SelectedProjects && this.SelectedProjects.length > 0 ? this.SelectedProjects.map(x => x).join(\",\") : null;\r\n let GroupIds: string | null = this.SelectedGroups && this.SelectedGroups.length > 0 ? this.SelectedGroups.map(x => x).join(\",\") : null;\r\n let DisciplineIds: string | null = this.SelectedDisciplines && this.SelectedDisciplines.length > 0 ? this.SelectedDisciplines.map(x => x).join(\",\") : null;\r\n let objSuperUser: boolean = this.SelectedProject == -1 ? this.IsCorporateHead || (this.IsICHead && this.UserEIPICDetails.length > 0) : this.IsCorporateHead || this.IsICHead || this.IsISDorEDMScoordinator;\r\n\r\n if (!!this.SelectedProject && this.SelectedProject != 9999999 && ProjectIds == null) {\r\n const message = {\r\n messageSeverity: '3',\r\n messageText: 'Select Values to Load Dashboard !!!',\r\n };\r\n this._notificationService.showPopupMessageBox(message);\r\n return;\r\n }\r\n\r\n this.subscriptions.push(this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'UserDashboardDetails',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n }).subscribe(async res => {\r\n if (res) {\r\n this.oldDashboardActive = true;\r\n this.Active_Projects = res.activeProjects;\r\n this.Repository_Documents = res.myRepositoryDocuments;\r\n this.Total_Repository_Documents = res.totalRepositoryDocuments;\r\n this.Shared_Documents = res.sharedRepositoryDocuments;\r\n this.Scheduled_Documents = res.myScheduleDocuments;\r\n this.Total_Scheduled_Documents = res.totalScheduleDocuments;\r\n this.WF_Pending_Documents = res.wfActionPendingDocuments;\r\n this.WF_Yet_To_Start = res.wfYetToStartDocuments;\r\n this.Inbox_Count = res.communicationInbox;\r\n this.Sent_Count = res.communicationSent;\r\n this.WF_Assigned_Documents = res.wfActionTakenDocuments;\r\n }\r\n }));\r\n\r\n if (this.canShowProjectDashboard) {\r\n let objAvarageTATPerDrawing: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'AvarageTATPerDrawing',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objDeviationManhours: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'DeviationManhours',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objScheduleDocumentStatusSummary: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'ScheduleDocumentStatusSummary',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objScheduleAdherence: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'ScheduleAdherence',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objMonthWiseDocStatusReport: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'MonthWiseDocStatusReport',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objDocumentRevisionForGFC: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'DocumentRevisionForGFC',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objDocStatusCount: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'DocStatusCount',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objRepositoryDocumentStatusSummary: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'RepositoryDocumentStatusSummary',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objMonthWiseRepositoryDocStatusReport: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'MonthWiseRepositoryDocStatusReport',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objRepositoryDocumentsCount: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'RepositoryDocumentsCount',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objScheduleDocumentsCount: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'ScheduleDocumentsCount',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n let objMapDashboardDetails: Observable = this._dashboardService.GetEDMSHomeDashboardDetails({\r\n tran_Type: 'MapDashboardDetails',\r\n userId: this.memberId,\r\n isLatestRevision: true,\r\n iCId: ICIds,\r\n projectId: ProjectIds,\r\n groupId: GroupIds,\r\n disciplineId: DisciplineIds,\r\n isSuperUser: objSuperUser\r\n });\r\n\r\n this.subscriptions.push(forkJoin(objAvarageTATPerDrawing, objDeviationManhours, objScheduleDocumentStatusSummary, objScheduleAdherence, objMonthWiseDocStatusReport, objDocumentRevisionForGFC, objDocStatusCount, objRepositoryDocumentStatusSummary, objMonthWiseRepositoryDocStatusReport, objRepositoryDocumentsCount, objScheduleDocumentsCount, objMapDashboardDetails).subscribe((res: any[]) => {\r\n this.isDataLoaded = 1;\r\n if (res[0].length > 0) {\r\n this.AvarageTATPerDrawingDetails = res[0];\r\n this.AvarageTATPerDrawing = this.AvarageTATPerDrawingDetails[0].tat;\r\n this.AvarageTATPerDrawingToottip = this.AvarageTATPerDrawingDetails[0].tooltip;\r\n }\r\n\r\n if (res[1].length > 0) {\r\n this.ActualManHrs = \"Actual Man hours
\" + res[1][0].actual + \" hrs\";\r\n this.PlannedManHrs = \"Planned Man hours
\" + res[1][0].planned + \" hrs\";\r\n this.PlannedManHrsPercent = res[1][0].deviationPercentage;\r\n }\r\n\r\n if (res[2].length > 0)\r\n this.ScheduleDocumentStatusSummary = res[2];\r\n\r\n if (res[3].length > 0)\r\n this.ScheduleAdherenceDetails = res[3];\r\n\r\n if (res[4].length > 0)\r\n this.MonthWiseDocStatusReport = res[4];\r\n\r\n if (res[5].length > 0) {\r\n this.GFCchartHeight = res[5].length * 30 < 430 ? 430 : res[5].length * 30;\r\n this.DocumentRevisionForGFC = res[5];\r\n }\r\n\r\n if (res[6].length > 0) {\r\n this.ApprovalStatusCountchartHeight = res[6].length * 30 < 430 ? 430 : res[6].length * 30;\r\n this.DocStatusCount = res[6];\r\n }\r\n\r\n if (res[7].length > 0)\r\n this.RepositoryDocumentStatusSummary = res[7];\r\n\r\n if (res[8].length > 0)\r\n this.MonthWiseRepositoryDocStatusReport = res[8];\r\n\r\n if (res[9])\r\n this.RepositoryDocumentsCount = res[9].docCount;\r\n\r\n if (res[10])\r\n this.ScheduleDocumentsCount = res[10].docCount;\r\n\r\n if (res[11].length > 1) {\r\n this.MapDashboardView=true;\r\n this.initMap();\r\n this.makeCapitalMarkers(this.map, res[11]);\r\n \r\n\r\n } else if (res[11].length == 1) {\r\n this.MapDashboardView=true;\r\n this.latitude = res[11][0].latitude;\r\n this.longitude = res[11][0].longitude;\r\n this.initMap();\r\n this.makeCapitalMarkers(this.map, res[11]);\r\n this.zoomToState(this.latitude, this.longitude);\r\n \r\n }\r\n }\r\n ));\r\n\r\n\r\n\r\n }\r\n }\r\n private initMap(): void {\r\n this.map = L.map('map', {\r\n center: [26.9124336, 75.7872709],\r\n zoom: 4\r\n });\r\n\r\n const tiles = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n minZoom: 3,\r\n\r\n });\r\n\r\n tiles.addTo(this.map);\r\n }\r\n zoomToState(lat: number, long: number) {\r\n this.map.setView([lat, long], 7);\r\n\r\n }\r\n\r\n makeCapitalMarkers(map: L.Map, res: any[]): void {\r\n for (const c of res) {\r\n const lat = c.latitude;\r\n const lon = c.longitude;\r\n const marker = L.marker([lat, lon]);\r\n marker.addTo(map);\r\n let url: any = `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lon}`;\r\n this.http.get(url).subscribe((x: any) => {\r\n marker.bindPopup(this.makeCapitalPopup(x, c.tooltip));\r\n })\r\n marker.on('mouseover', () => {\r\n marker.openPopup();\r\n });\r\n marker.on('mouseout', () => {\r\n marker.closePopup();\r\n });\r\n \r\n\r\n }\r\n \r\n \r\n }\r\n makeCapitalPopup(data: any, tooltip: any): string {\r\n let address = '';\r\n if (data.address.city) {\r\n address = data.address.city;\r\n } else if (data.address.state_district) {\r\n address = data.address.state_district;\r\n } else if (data.address.town) {\r\n address = data.address.town;\r\n }\r\n return `` +\r\n `
${address} - ${data.address.postcode}
` +\r\n `
${tooltip}
`\r\n\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen(chart: string) {\r\n if (chart == 'DeviationInManhours')\r\n this.enableFullscreenForDeviationInManhours = !this.enableFullscreenForDeviationInManhours;\r\n else if (chart == 'DCIStatus')\r\n this.enableFullscreenForDCIStatus = !this.enableFullscreenForDCIStatus;\r\n else if (chart == 'ScheduleAdherance')\r\n this.enableFullscreenForScheduleAdherance = !this.enableFullscreenForScheduleAdherance;\r\n else if (chart == 'MonthWiseDOCStatus')\r\n this.enableFullscreenForMonthWiseDOCStatus = !this.enableFullscreenForMonthWiseDOCStatus;\r\n else if (chart == 'DocumentRevisionforGFC')\r\n this.enableFullscreenForDocumentRevisionforGFC = !this.enableFullscreenForDocumentRevisionforGFC;\r\n else if (chart == 'ApprovalStatusCount')\r\n this.enableFullscreenForApprovalStatusCount = !this.enableFullscreenForApprovalStatusCount;\r\n else if (chart == 'RepositoryDocStatus')\r\n this.enableFullscreenForRepositoryDocStatus = !this.enableFullscreenForRepositoryDocStatus;\r\n else if (chart == 'RepositoryMonthWiseDocument')\r\n this.enableFullscreenForRepositoryMonthWiseDocument = !this.enableFullscreenForRepositoryMonthWiseDocument;\r\n else if (chart == 'RepositoryDocumentDetails')\r\n this.enableFullscreenForRepositoryDocumentDetails = !this.enableFullscreenForRepositoryDocumentDetails;\r\n else if (chart == 'ScheduleDocumentDetails')\r\n this.enableFullscreenForScheduleDocumentDetails = !this.enableFullscreenForScheduleDocumentDetails;\r\n else if (chart == 'MapDashboard')\r\n this.enableFullscreenForMap = !this.enableFullscreenForMap;\r\n\r\n\r\n }\r\n\r\n viewDocumentClick(dataItem)\r\n {\r\n console.log(dataItem);\r\n const dialogRef = this.dialog.open(ScheduleDocumentViewPopupComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n width: '90%',\r\n maxWidth: '90vw',\r\n data: { doc_id:dataItem.doc_Id,revision_No:dataItem.latest_Rev_Number,approval_date: dataItem.doc_Status == 'Rejected' ? null : dataItem.created_on}\r\n });\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Active Projects
\r\n

{{Active_Projects}}

\r\n

 

\r\n

 

\r\n

 

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Repository Documents
\r\n

{{Repository_Documents}}/{{Total_Repository_Documents}}\r\n

\r\n

Created Documents{{Repository_Documents}}\r\n

\r\n

Shared Documents{{Shared_Documents}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Scheduled Documents
\r\n

{{Scheduled_Documents}}/{{Total_Scheduled_Documents}}\r\n

\r\n

Pending For WF Action{{WF_Pending_Documents}}

\r\n

Completed WF Action{{WF_Assigned_Documents}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Communication
\r\n

{{Inbox_Count +\r\n Sent_Count}}

\r\n

Inbox{{Inbox_Count}}

\r\n

Sent{{Sent_Count}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
IC
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Project
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Business\r\n Group
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Discipline\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Repository Documents\r\n Schedule Documents\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Repository Doc\r\n Status
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Month Wise\r\n Document
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.documentDate}}\r\n \r\n \r\n \r\n \r\n {{dataItem.latest_Rev_Number}}\r\n \r\n \r\n \r\n \r\n {{dataItem.createdOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Status}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Total DCIs\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{ScheduleDocumentsCount | number}} Docs

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Average TAT per Drawing\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{AvarageTATPerDrawing}}\r\n Days

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Deviation (In Man\r\n hours)
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
DCI Status
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Schedule\r\n Adherance
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Month Wise DOC\r\n Status
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Document Revision\r\n for GFC
\r\n
\r\n

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

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

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Approval Status\r\n Count (NO.s)
\r\n
\r\n

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

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

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
MAP\r\n DASHBOARD
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n {{dataItem.structure_Pkg}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Set}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.latest_Rev_Number}}\r\n \r\n \r\n \r\n \r\n {{dataItem.createdOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n \r\n \r\n {{dataItem.scheduledOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisedScheduledOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.submittedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedBy}}\r\n \r\n \r\n \r\n \r\n {{dataItem.designEngg}}\r\n \r\n \r\n \r\n \r\n {{dataItem.draftingEngg}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.wfStage + \" - \"}}\r\n {{dataItem.doc_Status}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IScheduleDocInfo } from 'src/app/ViewModel/ScheduleDocumentModel';\r\n\r\n@Component({\r\n selector: 'app-schedule-document-view-popup',\r\n templateUrl: './schedule-document-view-popup.component.html',\r\n styleUrls: ['./schedule-document-view-popup.component.css']\r\n})\r\nexport class ScheduleDocumentViewPopupComponent implements OnInit {\r\n\r\n viewSchDoc: IScheduleDocInfo | null = {\r\n doc_Id: 0,\r\n revision_No: '',\r\n doc_No: '',\r\n doc_Title: '',\r\n doc_Set_Name: '',\r\n doc_Status: '',\r\n doc_Status_Id: 0,\r\n print_Size: '',\r\n print_Size_Id: 0,\r\n revision_Category: 0,\r\n authorized_By: '',\r\n created_By: '',\r\n created_On: undefined,\r\n reference: '',\r\n comments: '',\r\n stages: '',\r\n is_Latest: false,\r\n is_WF_Started: false,\r\n can_Restart_WF: false,\r\n dciScheduleStageDetails: [],\r\n dciScheduleElementDetails: [],\r\n isSelected: false,\r\n approved_Tag: false,\r\n approved_On: undefined,\r\n isShowSupersedeIcon: false\r\n };\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n\r\n ngOnInit(): void {\r\n if(this.data)\r\n {\r\n console.log(this.viewSchDoc)\r\n this.viewSchDoc.doc_Id = this.data.doc_id\r\n this.viewSchDoc.revision_No = this.data.revision_No\r\n this.viewSchDoc.approval_Date = this.data.approval_date\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Schedule Document View

\r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\n\r\n@Pipe({\r\n name: 'loadWorkflowDetailsPipe'\r\n})\r\nexport class loadWorkflowDetailsPipe implements PipeTransform {\r\n\r\n transform(dataItem: any, workflowList: any[]): WorkflowTemplateModel[] {\r\n return workflowList.filter(g => g.scheduleType == dataItem.schedule_Type)\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'showEditIconPipe'\r\n})\r\nexport class ShowEditIconPipePipe implements PipeTransform {\r\n\r\n transform(value: any,isShowSuperEdit?:any,isShowEdit?:any): boolean {\r\n if (isShowSuperEdit)\r\n return true;\r\n else\r\n return !value.approved_Tag && !value.isShowSupersedeIcon && !value.is_WF_Started && isShowEdit\r\n \r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'showWorkflowIconPipe'\r\n})\r\nexport class ShowWorkflowIconPipePipe implements PipeTransform {\r\n\r\n transform(value: any, isShowWFIcon?: boolean,enableRowWiseWFIcon?: boolean,isShowStartWF?: boolean): any {\r\n if (value.approved_Tag == false && value.approved_On == null)\r\n return false;\r\n else\r\n return isShowWFIcon && enableRowWiseWFIcon && isShowStartWF && value.is_Latest && (!value.is_WF_Started || (value.is_WF_Started && value.can_Restart_WF))\r\n\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators, FormArray, FormBuilder } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { IDCIPostBulkSupersedeModel, ILatestStageDetails, IRevisionCategory, IScheduleDocInfo } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { ElementdetailsService } from 'src/app/Service/elementdetails/elementdetails.service';\r\nimport { IElementDetailsViewModel } from 'src/app/ViewModel/ElementDetailsModel';\r\nimport { Subscription } from 'rxjs';\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { CcnService } from 'src/app/Service/ccn/ccn.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BulkDCISupersedeResultComponent } from '../bulk-dcisupersede-result/bulk-dcisupersede-result.component';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nconst CreateSupersedeDetailsForm = (dataItem: IDCIPostBulkSupersedeModel) => new FormGroup({\r\n 'doc_Id': new FormControl(dataItem.doc_Id, [Validators.required]),\r\n 'doc_No': new FormControl(dataItem.doc_No, [Validators.required]),\r\n 'doc_Title': new FormControl(dataItem.doc_Title, [Validators.required]),\r\n 'current_Stage': new FormControl(dataItem.current_Stage, [Validators.required]),\r\n 'revision_No': new FormControl(dataItem.revision_No, [Validators.required]),\r\n\r\n 'supersede_Revision_No': new FormControl(dataItem.supersede_Revision_No, [Validators.required, Validators.pattern(/^[a-zA-Z0-9]+$/)]),\r\n 'revision_Category': new FormControl(dataItem.revision_Category),\r\n 'released_For': new FormControl(dataItem.released_For, [Validators.required]),\r\n 'print_Size': new FormControl(dataItem.print_Size, [Validators.required]),\r\n 'schedule_Type': new FormControl(dataItem.schedule_Type, [Validators.required]),\r\n 'workflow': new FormControl(dataItem.workflow, [Validators.required]),\r\n 'noOfSheets': new FormControl(dataItem.noOfSheets),\r\n 'dciScheduleStageDetails': new FormControl(dataItem.dciScheduleStageDetails, [Validators.required]),\r\n 'comments': new FormControl(dataItem.comments),\r\n 'ccnTypeDetails': new FormControl(dataItem.ccnTypeDetails),\r\n 'ccnType': new FormControl(dataItem.ccnType),\r\n 'tagCCN': new FormControl(dataItem.tagCCN),\r\n 'category': new FormControl(dataItem.category),\r\n 'draftingManHours': new FormControl(dataItem.draftingManHours),\r\n 'designManHours': new FormControl(dataItem.designManHours),\r\n 'latestStageDetails': new FormControl(dataItem.latestStageDetails),\r\n 'is_WF_Started': new FormControl(dataItem.is_WF_Started),\r\n 'isCCNActive': new FormControl(dataItem.isCCNActive)\r\n});\r\n\r\n@Component({\r\n selector: 'app-bulk-dci-supersede',\r\n templateUrl: './bulk-dci-supersede.component.html',\r\n styleUrls: ['./bulk-dci-supersede.component.css']\r\n})\r\nexport class BulkDCISupersedeComponent implements OnInit, OnDestroy {\r\n subscriptions: Subscription[] = []\r\n projectId: number;\r\n groupId: number;\r\n memberId: number;\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n IsDisabled: boolean = true;\r\n isDocSetRequired: IProjectElementsOutput;\r\n SupercedeDCIDetails: IDCIPostBulkSupersedeModel[];\r\n enableFilter = false;\r\n pageSize = 10;\r\n skip = 0;\r\n enableFullscreen = false;\r\n copyForm: FormGroup = new FormGroup({\r\n txtCopyFrom: new FormControl(1),\r\n txtPasteFrom: new FormControl(),\r\n txtPasteTo: new FormControl()\r\n });\r\n printSizeList: IProjectElementDetailsOutput[];\r\n dciStatusList: IProjectElementDetailsOutput[];\r\n\r\n revCategoryList: IRevisionCategory[] = [{\r\n revCategoryId: 1,\r\n revCategory: 'Minor'\r\n }, {\r\n revCategoryId: 2,\r\n revCategory: 'Major'\r\n }, {\r\n revCategoryId: 3,\r\n revCategory: 'First Release'\r\n }];\r\n categoryList = [{\r\n revCategoryId: 1,\r\n revCategory: 'For Approval(A)'\r\n }, {\r\n revCategoryId: 2,\r\n revCategory: 'Good For Construction(GFC)'\r\n }];\r\n\r\n ccnTypeList: IElementDetailsViewModel[];\r\n ccnTypeDetails: any[];\r\n workflowList: WorkflowTemplateModel[];\r\n DCISupersedeDetailsForm: FormGroup;\r\n DCISupersedeDetailsForms: FormArray = new FormArray([]);\r\n DateColumnWidth: number = 200;\r\n\r\n constructor(private _commonService: CommonService, public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public _data: IScheduleDocInfo[], private _projService: ProjectInfoService, private elementdetailsService: ElementdetailsService, private _scheduleDocService: ScheduleDocumentService, public workflowTemplateService: WorkflowTemplateService, private ccnService: CcnService, private _notificationService: NotificationService, private fb: FormBuilder, private dialog: MatDialog, private loaderService: LoaderService, public _datepipe: DatePipe) {\r\n }\r\n\r\n async ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getProjectStaticElements();\r\n this.getElementDetails(\"Print Size\");\r\n this.getElementDetails(\"Status\");\r\n this.getElementDetailsbyDesc(\"CCN Type\");\r\n this.getCCNTypeDetails();\r\n \r\n\r\n await this.getWorkflowDetails().toPromise().then((res: WorkflowTemplateModel[]) => {\r\n this.workflowList = res.filter(y => y.isForsupersede);\r\n this.BindDocumentDetails();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let isDocSetRequired: IProjectElementsOutput = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequired)\r\n if (isDocSetRequired.isVisible)\r\n this.isDocSetRequired = isDocSetRequired;\r\n if (!this.isDocSetRequired) {\r\n this.IsDisabled = false;\r\n }\r\n }\r\n }, err => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n }\r\n\r\n async BindDocumentDetails() {\r\n this.DCISupersedeDetailsForm = new FormGroup({\r\n DCISupersedeDetailsForms: new FormArray([])\r\n });\r\n\r\n this.SupercedeDCIDetails = await Promise.all(this._data.map(async function (doc, index) {\r\n return {\r\n index: index,\r\n doc_Id: doc.doc_Id,\r\n doc_No: doc.doc_No,\r\n doc_Title: doc.doc_Title,\r\n current_Stage: doc.current_Stage,\r\n current_StageId: doc.current_StageId,\r\n revision_No: doc.revision_No,\r\n supersede_Revision_No: !isNaN(Number(doc.revision_No))?String(Number(doc.revision_No)+ 1): doc.revision_No.substring(0, doc.revision_No.length - 1) + String.fromCharCode(doc.revision_No.charCodeAt(doc.revision_No.length - 1) + 1),\r\n revision_Category: doc.revision_Category,\r\n released_For: doc.doc_Status_Id,\r\n print_Size: doc.print_Size_Id,\r\n schedule_Type: doc.schedule_Type,\r\n parentWorkflow: doc.workflow_Id,\r\n workflow: null,\r\n noOfSheets: doc.noOfSheets ? doc.noOfSheets : 0,\r\n dciScheduleStageDetails: doc.dciScheduleStageDetails,\r\n comments: doc.comments,\r\n ccnTypeDetails: [],\r\n ccnType: null,\r\n tagCCN: null,\r\n category: null,\r\n draftingManHours: 0,\r\n designManHours: 0,\r\n latestStageDetails: [],\r\n is_WF_Started: doc.is_WF_Started,\r\n isCCNActive: false\r\n }\r\n })).then((op) => {\r\n op.map(async doc => {\r\n this.subscriptions.push(await this.workflowTemplateService.GetWorkflowLatestStageDetail({\r\n \"Doc_Id\": doc.doc_Id,\r\n \"Stage_Ids\": (doc.current_Stage != null && doc.current_Stage != '' && doc.is_WF_Started) ? doc.dciScheduleStageDetails.filter((x, y) => x.stage_Short_Desc == doc.current_Stage).map(k => k.stage_Id).join(',') : doc.dciScheduleStageDetails.map(k => k.stage_Id).join(',')\r\n }).subscribe(data => {\r\n if (!!data) {\r\n doc.latestStageDetails = data.map(x => {\r\n x.scheduled_On = new Date(x.scheduled_On), x.revisedScheduled_On = (x.revisedScheduled_On ? new Date(x.revisedScheduled_On) : null), x.minScheduled_On = (x.minScheduled_On ? new Date(x.minScheduled_On) : null), x.maxScheduled_On = (x.maxScheduled_On ? new Date(x.maxScheduled_On) : null);\r\n return x;\r\n });\r\n }\r\n }));\r\n return doc;\r\n });\r\n\r\n return op;\r\n }).then((op1) => {\r\n op1.map(async doc => {\r\n doc.workflow = this.workflowList.filter(y => y.isForsupersede && y.scheduleType == doc.schedule_Type).map(h => {\r\n return h.workflowId\r\n }).includes(doc.parentWorkflow) ? doc.parentWorkflow : null;\r\n doc.isCCNActive = this.workflowList.filter(y => y.isForsupersede && y.scheduleType == doc.schedule_Type && y.workflowId == doc.parentWorkflow).map(h => {\r\n return h.cnN_Required\r\n })[0];\r\n });\r\n\r\n return op1;\r\n }).then((op2) => {\r\n op2.forEach(async (dataItem) => {\r\n this.DCISupersedeDetailsForms = this.DCISupersedeDetailsForm.get('DCISupersedeDetailsForms') as FormArray;\r\n this.DCISupersedeDetailsForms.push(CreateSupersedeDetailsForm(dataItem));\r\n });\r\n return op2;\r\n });\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Get Element Details (Print Size,Doc Status)\r\n */\r\n public getElementDetails(elementName: string) {\r\n this.subscriptions.push(this._projService.getProjectElementDetails({\r\n projectId: this._commonService.getProjectId(),\r\n groupId: this._commonService.getLoggedInUserGroupId(),\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: elementName\r\n })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Print Size\":\r\n this.printSizeList = res;\r\n break;\r\n case \"Status\":\r\n this.dciStatusList = res;\r\n break;\r\n }\r\n }, err => {\r\n this._notificationService.showPopup(err, \"Warning\");\r\n }));\r\n }\r\n\r\n /**\r\n * Get Element Deatils by Description\r\n * @param elementName \r\n */\r\n public getElementDetailsbyDesc(elementName: string) {\r\n this.subscriptions.push(this.elementdetailsService.GetElementDetailsByDescList(elementName).subscribe((res: IElementDetailsViewModel[]) => {\r\n switch (elementName) {\r\n case \"CCN Type\":\r\n this.ccnTypeList = res;\r\n break;\r\n }\r\n }, err => {\r\n this._notificationService.showPopup(err, \"Warning\");\r\n }));\r\n }\r\n\r\n getWorkflowLatestStageDetail(doc: IScheduleDocInfo): ILatestStageDetails[] {\r\n let op: ILatestStageDetails[] = []\r\n this.subscriptions.push(this.workflowTemplateService.GetWorkflowLatestStageDetail({\r\n \"Doc_Id\": doc.doc_Id,\r\n \"Stage_Ids\": (doc.current_Stage != null && doc.current_Stage != '' && doc.is_WF_Started) ? doc.dciScheduleStageDetails.filter((x, y) => x.stage_Short_Desc == doc.current_Stage).map(k => k.stage_Id).join(',') : doc.dciScheduleStageDetails.map(k => k.stage_Id).join(',')\r\n }).subscribe(data => {\r\n if (!!data) {\r\n op = data.map(x => {\r\n x.scheduled_On = new Date(x.scheduled_On), x.revisedScheduled_On = (x.revisedScheduled_On ? new Date(x.revisedScheduled_On) : null), x.minScheduled_On = (x.minScheduled_On ? new Date(x.minScheduled_On) : null), x.maxScheduled_On = (x.maxScheduled_On ? new Date(x.maxScheduled_On) : null);\r\n return x;\r\n });\r\n }\r\n }));\r\n return op;\r\n }\r\n\r\n getWorkflowDetails() {\r\n return this._scheduleDocService.GetWorkflowList();\r\n }\r\n\r\n getCCNTypeDetails() {\r\n this.ccnService.GetCCNList({\r\n projectId: this.projectId,\r\n cCType: null,\r\n createdFromDays: 0\r\n }).toPromise().then(x => {\r\n this.ccnTypeDetails = x.filter(j => j.publishDate != null);\r\n }, err => {\r\n this._notificationService.showPopup(err, \"Warning\");\r\n });\r\n }\r\n\r\n async ccnTypeChange(event: any, container: any, rowIndex: number) {\r\n container.ccnType = event;\r\n container.ccnTypeDetails = this.ccnTypeDetails.filter(x => x.ccType == event);\r\n container.tagCCN = null;\r\n\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnTypeDetails').setValue(this.ccnTypeDetails.filter(x => x.ccType == event));\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnTypeDetails').updateValueAndValidity();\r\n\r\n if (event != \"-2\") {\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').setValue(event);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').updateValueAndValidity();\r\n } else {\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').updateValueAndValidity();\r\n }\r\n\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').updateValueAndValidity();\r\n\r\n return container;\r\n }\r\n\r\n UpdateValueChange(event: any, container: any, valuefor: string, rowIndex: number) {\r\n\r\n switch (valuefor) {\r\n case \"Supersede_Revision_No\":\r\n container.supersede_Revision_No = event.target.value;\r\n\r\n if (!!event.target.value)\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('supersede_Revision_No').setValue(event.target.value);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('supersede_Revision_No').setValue(null);\r\n break\r\n case \"RevCategory\":\r\n container.revision_Category = event;\r\n\r\n if (event != \"-2\")\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('revision_Category').setValue(event);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('revision_Category').setValue(null);\r\n break\r\n case \"ReleasedFor\":\r\n container.released_For = event;\r\n\r\n if (event != \"-2\")\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('released_For').setValue(event);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('released_For').setValue(null);\r\n break\r\n case \"PrintSize\":\r\n container.print_Size = event;\r\n\r\n if (event != \"-2\")\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('print_Size').setValue(event);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('print_Size').setValue(null);\r\n break\r\n case \"NoOfSheets\":\r\n container.noOfSheets = event.target.value;\r\n\r\n if (!!event.target.value)\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('noOfSheets').setValue(event.target.value);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('noOfSheets').setValue(null);\r\n break\r\n case \"WorkFlow\":\r\n container.workflow = event.value;\r\n\r\n if (event.value != \"-2\")\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('workflow').setValue(event);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('workflow').setValue(null);\r\n\r\n container.isCCNActive = event.additionalValues.additionalValues.cnN_Required\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('isCCNActive').setValue(event.additionalValues.additionalValues.cnN_Required);\r\n\r\n if (event && event.additionalValues.additionalValues.cnN_Required) {\r\n\r\n container.ccnTypeDetails = [];\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnTypeDetails').setValue([]);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnTypeDetails').updateValueAndValidity();\r\n\r\n container.ccnType = null;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').setValidators([Validators.required]);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').updateValueAndValidity();\r\n\r\n container.tagCCN = null;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').setValidators(Validators.required);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').updateValueAndValidity();\r\n\r\n container.category = null;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').setValidators(Validators.required);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').updateValueAndValidity();\r\n\r\n container.draftingManHours = 0;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').setValidators([Validators.required, Validators.pattern('^[0-9]*$')]);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').setValue(0);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').updateValueAndValidity();\r\n\r\n container.designManHours = 0;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').setValidators([Validators.required, Validators.pattern('^[0-9]*$')]);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').setValue(0);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').updateValueAndValidity();\r\n } else {\r\n\r\n container.ccnTypeDetails = [];\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnTypeDetails').setValue([]);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnTypeDetails').updateValueAndValidity();\r\n\r\n container.ccnType = null;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('ccnType').updateValueAndValidity();\r\n\r\n container.tagCCN = null;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').updateValueAndValidity();\r\n\r\n container.category = null;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').setValue(null);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').updateValueAndValidity();\r\n\r\n container.draftingManHours = 0;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').setValue(0);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').updateValueAndValidity();\r\n\r\n container.designManHours = 0;\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').setValue(0);\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').updateValueAndValidity();\r\n }\r\n\r\n break\r\n case \"Comments\":\r\n container.comments = event.target.value;\r\n\r\n if (!!event.target.value)\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('comments').setValue(event.target.value);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('comments').setValue(null);\r\n break\r\n case \"TagCCN\":\r\n container.tagCCN = event;\r\n\r\n if (event != \"-2\")\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').setValue(event);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('tagCCN').setValue(null);\r\n break\r\n case \"Category\":\r\n container.category = event;\r\n\r\n if (event != \"-2\")\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').setValue(event);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('category').setValue(null);\r\n break\r\n case \"DraftingManHours\":\r\n container.draftingManHours = event.target.value;\r\n\r\n if (!!event.target.value)\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').setValue(event.target.value);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('draftingManHours').setValue(null);\r\n break;\r\n case \"DesignManHours\":\r\n container.designManHours = event.target.value;\r\n\r\n if (!!event.target.value)\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').setValue(event.target.value);\r\n else\r\n this.DCISupersedeDetailsForms.controls[rowIndex].get('designManHours').setValue(null);\r\n break;\r\n }\r\n }\r\n\r\n async copyValues() {\r\n if (!this.copyForm.valid) {\r\n Object.keys(this.copyForm.controls).forEach(key => {\r\n this.copyForm.get(key).markAsTouched();\r\n });\r\n } else {\r\n let copyFrom: number = this.copyForm.get('txtCopyFrom').value;\r\n let pasteFrom: number = this.copyForm.get('txtPasteFrom').value;\r\n let pasteTo: number = this.copyForm.get('txtPasteTo').value;\r\n if (pasteTo < pasteFrom) {\r\n this._notificationService.showToast(\"Paste From is greater than Paste To value\", \"Warning\");\r\n return;\r\n }\r\n\r\n this.loaderService.isLoading.next(true);\r\n\r\n let doc = this.SupercedeDCIDetails[copyFrom - 1];\r\n\r\n for (let i = pasteFrom - 1; i < pasteTo; i++) {\r\n this.SupercedeDCIDetails[i].revision_Category = (doc.revision_Category == -2 ? null : doc.revision_Category);\r\n this.DCISupersedeDetailsForms.controls[i].get('revision_Category').setValue((doc.revision_Category == -2 ? null : doc.revision_Category), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('revision_Category').updateValueAndValidity();\r\n\r\n this.SupercedeDCIDetails[i].released_For = (doc.released_For == -2 ? null : doc.released_For);\r\n this.DCISupersedeDetailsForms.controls[i].get('released_For').setValue((doc.released_For == -2 ? null : doc.released_For), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('released_For').updateValueAndValidity();\r\n\r\n this.SupercedeDCIDetails[i].print_Size = (doc.print_Size == -2 ? null : doc.print_Size);\r\n this.DCISupersedeDetailsForms.controls[i].get('print_Size').setValue((doc.print_Size == -2 ? null : doc.print_Size), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('print_Size').updateValueAndValidity();\r\n\r\n this.SupercedeDCIDetails[i].noOfSheets = doc.noOfSheets;\r\n this.DCISupersedeDetailsForms.controls[i].get('noOfSheets').setValue(doc.noOfSheets, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('noOfSheets').updateValueAndValidity();\r\n\r\n this.SupercedeDCIDetails[i].comments = doc.comments;\r\n this.DCISupersedeDetailsForms.controls[i].get('comments').setValue(doc.comments, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('comments').updateValueAndValidity();\r\n\r\n\r\n\r\n if (this.SupercedeDCIDetails[i].schedule_Type == doc.schedule_Type) {\r\n\r\n this.SupercedeDCIDetails[i].workflow = (doc.workflow == -2 ? null : doc.workflow);\r\n this.DCISupersedeDetailsForms.controls[i].get('workflow').setValue((doc.workflow == -2 ? null : doc.workflow), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('workflow').updateValueAndValidity();\r\n\r\n this.SupercedeDCIDetails[i].isCCNActive = doc.isCCNActive;\r\n this.DCISupersedeDetailsForms.controls[i].get('isCCNActive').setValue(doc.isCCNActive, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('isCCNActive').updateValueAndValidity();\r\n\r\n if (this.SupercedeDCIDetails[i].isCCNActive) {\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].ccnType = (doc.ccnType == -2 ? null : doc.ccnType);\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnType').setValidators([Validators.required]);\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnType').setValue((doc.ccnType == -2 ? null : doc.ccnType), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnType').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].ccnTypeDetails = doc.ccnTypeDetails;\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnTypeDetails').setValue(doc.ccnTypeDetails, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnTypeDetails').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].tagCCN = (doc.tagCCN == -2 ? null : doc.tagCCN);\r\n this.DCISupersedeDetailsForms.controls[i].get('tagCCN').setValidators(Validators.required);\r\n this.DCISupersedeDetailsForms.controls[i].get('tagCCN').setValue((doc.tagCCN == -2 ? null : doc.tagCCN), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('tagCCN').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].category = (doc.category == -2 ? null : doc.category);\r\n this.DCISupersedeDetailsForms.controls[i].get('category').setValidators(Validators.required);\r\n this.DCISupersedeDetailsForms.controls[i].get('category').setValue((doc.category == -2 ? null : doc.category), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('category').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].draftingManHours = doc.draftingManHours;\r\n this.DCISupersedeDetailsForms.controls[i].get('draftingManHours').setValidators([Validators.required, Validators.pattern('^[0-9]*$')]);\r\n this.DCISupersedeDetailsForms.controls[i].get('draftingManHours').setValue(doc.draftingManHours, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('draftingManHours').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].designManHours = doc.designManHours;\r\n this.DCISupersedeDetailsForms.controls[i].get('designManHours').setValidators([Validators.required, Validators.pattern('^[0-9]*$')]);\r\n this.DCISupersedeDetailsForms.controls[i].get('designManHours').setValue(doc.designManHours, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('designManHours').updateValueAndValidity();\r\n }, 1000);\r\n\r\n } else {\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].ccnType = (doc.ccnType == -2 ? null : doc.ccnType);\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnType').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnType').setValue((doc.ccnType == -2 ? null : doc.ccnType), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnType').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].ccnTypeDetails = doc.ccnTypeDetails;\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnTypeDetails').setValue(doc.ccnTypeDetails, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('ccnTypeDetails').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].tagCCN = (doc.tagCCN == -2 ? null : doc.tagCCN);\r\n this.DCISupersedeDetailsForms.controls[i].get('tagCCN').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[i].get('tagCCN').setValue((doc.tagCCN == -2 ? null : doc.tagCCN), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('tagCCN').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].category = (doc.category == -2 ? null : doc.category);\r\n this.DCISupersedeDetailsForms.controls[i].get('category').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[i].get('category').setValue((doc.category == -2 ? null : doc.category), { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('category').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].draftingManHours = doc.draftingManHours;\r\n this.DCISupersedeDetailsForms.controls[i].get('draftingManHours').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[i].get('draftingManHours').setValue(doc.draftingManHours, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('draftingManHours').updateValueAndValidity();\r\n }, 1000);\r\n\r\n setTimeout(() => {\r\n this.SupercedeDCIDetails[i].designManHours = doc.designManHours;\r\n this.DCISupersedeDetailsForms.controls[i].get('designManHours').clearValidators();\r\n this.DCISupersedeDetailsForms.controls[i].get('designManHours').setValue(doc.designManHours, { emitEvent: false });\r\n this.DCISupersedeDetailsForms.controls[i].get('designManHours').updateValueAndValidity();\r\n }, 1000);\r\n\r\n }\r\n }\r\n this.SupercedeDCIDetails[i].latestStageDetails.forEach(element => {\r\n let j = doc.latestStageDetails.filter(c => c.status_Id === element.status_Id);\r\n if (j && j.length > 0) {\r\n if ((!!element.minScheduled_On && j[0].scheduled_On >= element.minScheduled_On ? element.minScheduled_On : j[0].scheduled_On) && (!!element.maxScheduled_On && j[0].scheduled_On <= element.maxScheduled_On ? element.maxScheduled_On : j[0].scheduled_On))\r\n element.scheduled_On = new Date(j[0].scheduled_On);\r\n element.updatedScheduled_On = new Date(j[0].scheduled_On);\r\n }\r\n })\r\n\r\n if (i == (pasteTo - 1))\r\n this.loaderService.isLoading.next(false);\r\n }\r\n }\r\n }\r\n\r\n setStageDate(selectedStageDate: any, stage: any) {\r\n var parsedDate = Date.parse(selectedStageDate.value);\r\n if (isNaN(selectedStageDate.value) && !isNaN(parsedDate)) {\r\n stage.scheduled_On = new Date(selectedStageDate.value);\r\n stage.updatedScheduled_On = selectedStageDate.value;\r\n }\r\n else {\r\n stage.scheduled_On = null;\r\n stage.updatedScheduled_On = null;\r\n }\r\n }\r\n\r\n SaveSupersedeDetails() {\r\n if ((this.DCISupersedeDetailsForms.valid) && (!this.SupercedeDCIDetails.map(p => {\r\n return p.latestStageDetails.some(k => !(!!k.scheduled_On))\r\n }).some(f => f === true))) {\r\n this.loaderService.isLoading.next(true);\r\n\r\n this.SupercedeDCIDetails.map(x => x.latestStageDetails).map(k => {\r\n k.map(l => {\r\n l.scheduled_On = this._datepipe.transform(l.scheduled_On, 'dd-MMM-yyyy'),\r\n l.updatedScheduled_On = this._datepipe.transform(l.updatedScheduled_On, 'dd-MMM-yyyy')\r\n })\r\n })\r\n\r\n this.subscriptions.push(this._scheduleDocService.PostBulkDCISupersede(this.SupercedeDCIDetails).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n\r\n if (res.length > 0) {\r\n this.dialog.open(BulkDCISupersedeResultComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: res,\r\n });\r\n this.closeDialog();\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Failed to Supersede DCIs\", \"Warning\");\r\n }\r\n\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(err, \"Error\");\r\n }));\r\n }\r\n else\r\n this._notificationService.showToast(\"Kindly fill all Mandatory Fields!!!\", \"Warning\");\r\n }\r\n}\r\n\r\n\r\n\r\n","
\r\n
\r\n Bulk DCI Supersede\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Copy From \r\n \r\n *\r\n \r\n
\r\n \r\n \r\n Paste From \r\n \r\n *\r\n \r\n
\r\n \r\n \r\n Paste To \r\n \r\n *\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Note :- \r\n
\r\n ★ Copy feature is not applicable for Revision No column.\r\n

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n DCI Supersede Details :-\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\" eipTooltipPosition=\"auto\" style=\"display: block;word-wrap:break-word;white-space: normal;\">{{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\" eipTooltipPosition=\"auto\">{{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Revision No *\r\n \r\n \r\n Value Required !!!\r\n Invalid Format !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n No Of Sheets\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{item.stage_Short_Desc}} - {{item.stage_Desc}}\r\n
\r\n

\r\n \r\n

\r\n

Value Required !!!

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Comments\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Drafting Man Hrs *\r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Design Man Hrs *\r\n \r\n Value Required !!!\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n  \r\n   Cancel\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IDCIBulkSupersedeStatusModel } from 'src/app/ViewModel/ScheduleDocumentModel';\r\n\r\n@Component({\r\n selector: 'app-bulk-dcisupersede-result',\r\n templateUrl: './bulk-dcisupersede-result.component.html',\r\n styleUrls: ['./bulk-dcisupersede-result.component.css']\r\n})\r\nexport class BulkDCISupersedeResultComponent implements OnInit {\r\n statusList: IDCIBulkSupersedeStatusModel[] = [];\r\n total!: number;\r\n success!: number;\r\n failure!: number;\r\n enableFullscreen = false;\r\n enableFilter = false;\r\n constructor(public dialogRef: MatDialogRef, private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public _data: IDCIBulkSupersedeStatusModel[]) { }\r\n\r\n ngOnInit(): void {\r\n this.statusList = this._data;\r\n this.total = this.statusList.length;\r\n this.success = this.statusList.filter(x => x.status).length;\r\n this.failure = this.total - this.success;\r\n }\r\n\r\n getStatus(item: IDCIBulkSupersedeStatusModel): string {\r\n return item.status ? \"Success\" : \"Fail\";\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n}\r\n","
\r\n
\r\n

Bulk Supersede DCI Status

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Total Processed : {{total}}\r\n
\r\n
\r\n Success : {{success}}\r\n
\r\n
\r\n Failure : {{failure}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.docNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.docTitle}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit, QueryList, ViewChildren } from \"@angular/core\";\r\nimport { FormControl, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { IElementInputModel } from \"src/app/ViewModel/DocumentModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { ScheduleCreationComponent } from \"../schedule-creation/schedule-creation.component\";\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-bulk-schedule-upload',\r\n templateUrl: './bulk-schedule-upload.component.html',\r\n styleUrls: ['./bulk-schedule-upload.component.css']\r\n})\r\nexport class BulkScheduleUploadComponent implements OnInit {\r\n @ViewChildren(ScheduleCreationComponent) scheduleCreationComp!: QueryList;\r\n public noOfDocsArr: number[] = [];\r\n public noOfDocs: number;\r\n public isStdDCI: boolean;\r\n public numFormat = 'Auto';\r\n public readonly = true;\r\n public projectId: number = 0;\r\n public groupId: number = 0;\r\n public memberId: number = 0;\r\n public CurrentProjectDetails!: ProjectViewModel;\r\n public canManualNo: boolean = false;\r\n public rateControl = new FormControl(\"\", [Validators.max(5), Validators.min(1)])\r\n autoSerialNoMap: Map = new Map();\r\n sourceDciComponent: ScheduleCreationComponent | undefined;\r\n autoSerialSelectedValues: Map = new Map();\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef, private _notificationService: NotificationService, private commonService: CommonService, private dialog: MatDialog) {\r\n this.noOfDocs = this.data.num;\r\n this.isStdDCI = this.data.isStdDCI;\r\n }\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.CurrentProjectDetails = this.commonService.getCurrentProjectDetails();\r\n if (this.CurrentProjectDetails && this.CurrentProjectDetails.doc_Number_Format) {\r\n this.numFormat = this.CurrentProjectDetails.doc_Number_Format;\r\n }\r\n this.callMemberRoleandFeature();\r\n for (let i = 0; i < this.noOfDocs; i++) {\r\n this.noOfDocsArr.push(i);\r\n }\r\n if (this.isStdDCI) {\r\n this.numFormat = 'Auto';\r\n }\r\n }\r\n\r\n addDocument() {\r\n this.sourceDciComponent = this.scheduleCreationComp.find(x => x.docIndex == 1)\r\n let count = this.rateControl.value;\r\n let previousCount = this.noOfDocsArr.length;\r\n if (count > 5) {\r\n count = 5;\r\n }\r\n if (previousCount < count) {\r\n for (let i = previousCount; i < count; i++) {\r\n this.noOfDocsArr.push(i);\r\n }\r\n } else {\r\n let countdiff = previousCount - count;\r\n for (let i = 0; i < countdiff; i++) {\r\n this.noOfDocsArr.splice(previousCount - 1, countdiff);\r\n previousCount = previousCount - 1;\r\n }\r\n }\r\n }\r\n\r\n closeDialog(isSaveAndAddNew: boolean) {\r\n this.dialogRef.close(isSaveAndAddNew);\r\n }\r\n\r\n async saveScheduleDoc(isSaveAndAddNew: boolean) {\r\n let results: StandardOutputModel[] = [];\r\n let failureResult: string = \"\";\r\n // validation handling before back end responce\r\n for (let i = 0; i < this.scheduleCreationComp.length; i++) {\r\n let schCreationComp: ScheduleCreationComponent = this.scheduleCreationComp.toArray()[i];\r\n var count: any = schCreationComp.madatoryFieldsValidation();\r\n if (!!count)\r\n results.push(count);\r\n }\r\n if(count == undefined){\r\n for (let i = 0; i < this.scheduleCreationComp.length; i++) {\r\n let schCreationComp: ScheduleCreationComponent = this.scheduleCreationComp.toArray()[i];\r\n let x: StandardOutputModel = await schCreationComp.saveDocument();\r\n if (!!x)\r\n results.push(x);\r\n }\r\n }\r\n \r\n let successResult: string = \"\";\r\n results.forEach(res => {\r\n if (!!res) {\r\n if (res.successCode == 200)\r\n successResult += res.successMessage + \"
\";\r\n else {\r\n failureResult += res.successMessage + \"
\";\r\n }\r\n }\r\n });\r\n if (failureResult && failureResult.length > 0) {\r\n this._notificationService.showPopup(failureResult, \"Warning\");\r\n //Popup should be closed when saving more than one document \r\n // if (results.length > 1) {\r\n // this.closeDialog(isSaveAndAddNew);\r\n // }\r\n }\r\n if (successResult && successResult.length > 0) {\r\n this._notificationService.showPopup(successResult, \"Success\");\r\n this.closeDialog(isSaveAndAddNew);\r\n }\r\n }\r\n\r\n\r\n onValChange(value: string) {\r\n this.numFormat = value;\r\n }\r\n\r\n getDocumentSerialNo(value: any) {\r\n this.autoSerialSelectedValues.set(value.index, value.selectedDedIds);\r\n this.autoSerialNoMap.set(value.index, value.serialNo);\r\n if (this.autoSerialSelectedValues.size > 1) {\r\n this.autoSerialSelectedValues.forEach((x, y) => {\r\n if (y != value.index && JSON.stringify(x) == JSON.stringify(value.selectedDedIds)) {\r\n let val=this.autoSerialNoMap.get(y);\r\n if(val)\r\n this.autoSerialNoMap.set(value.index, val + 1)\r\n }\r\n })\r\n }\r\n }\r\n\r\n resetBulkSchedule() {\r\n this.scheduleCreationComp.forEach(x => x.resetScheduleForm());\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n\r\n });\r\n await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canManualNo = result1.some(data => data.feature_Desc == 'Manual No');\r\n if (!this.canManualNo && this.numFormat == 'Manual')\r\n this.numFormat = 'Auto';\r\n });\r\n }\r\n\r\n}","
\r\n
\r\n

Schedule Document

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

Standard Drawing

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Numbering Format : \r\n \r\n Semi\r\n Manual\r\n Auto\r\n \r\n
\r\n
\r\n Numbering Format : \r\n \r\n Semi\r\n Auto\r\n \r\n
\r\n
\r\n
\r\n
\r\n

No of Docs to Upload :

\r\n
\r\n
\r\n \r\n 5\">\r\n Maximum value is 5\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\n\r\n@Component({\r\n selector: 'app-ccn-print',\r\n templateUrl: './ccn-print.component.html',\r\n styleUrls: ['./ccn-print.component.css']\r\n})\r\nexport class CcnPrintComponent implements OnInit {\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public ccn: any,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.EmbedSSRSReport();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMSCCNPrint\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMSCCNPrint\";\r\n this.showParameters = \"false\"; \r\n this.parameters = {\r\n \"CCN_Id\": this.ccn.ccnId,\r\n \"CCN_Rev_No\": this.ccn.ccnRevNo,\r\n \"Disc_Code\": this.ccn.discCode,\r\n \"Project_Id\": this.commonService.getProjectId()\r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Print - Change Control Note

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject, ViewChild, OnDestroy } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ElementdetailsService } from 'src/app/Service/elementdetails/elementdetails.service';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CcnService } from 'src/app/Service/ccn/ccn.service';\r\nimport { ICCNApproverInputModel, ICCNDisciplineInputModel, ICCNNoInputModel, ICCNInputModel, ICCNManhoursInputModel, ICCNDiscMembersInputModel, CCNManhoursOutputModel, ICCNDetailsInputModel, ICCNUpdateInputModel, ICCNByIdModel } from 'src/app/ViewModel/CCNModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { CcnPrintComponent } from './ccn-print-dialog/ccn-print/ccn-print.component';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { Subscription } from \"rxjs\";\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\n\r\nconst createFormGroup = (dataItem: any) => new FormGroup({\r\n 'memberId': new FormControl(dataItem.memberId, [Validators.required]),\r\n 'cCNStatus': new FormControl(dataItem.cCNStatus, [Validators.required]),\r\n 'manHour': new FormControl(dataItem.manHour, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'noOfDoc': new FormControl(dataItem.noOfDoc, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'cCNRemarks': new FormControl(dataItem.cCNRemarks)\r\n});\r\n\r\n@Component({\r\n selector: 'app-change-control-create',\r\n templateUrl: './change-control-create.component.html',\r\n styleUrls: ['./change-control-create.component.css']\r\n})\r\nexport class ChangeControlCreateComponent implements OnInit, OnDestroy {\r\n @ViewChild('MHGrid') MHGrid!: GridComponent;\r\n projectId!: number;\r\n memberId!: number;\r\n groupId!: number;\r\n project: string = '';\r\n initiatedBy: string = '';\r\n discCode: number = 0;\r\n discipline: string = '';\r\n approvers: string = '';\r\n public ccnTypeList: any[] = [];\r\n public MHList: any[] = [];\r\n public MHStatusList: any[] = [];\r\n public ccn: any;\r\n public ccnType!: number;\r\n public ccnNo: string = '';\r\n public ccnId: number = -1;\r\n public ccnRevNo: number = 0;\r\n public status:string=\"\";\r\n public ccnInputForm: FormGroup = new FormGroup({\r\n txtTitle: new FormControl(),\r\n txtReason: new FormControl(),\r\n txtRef: new FormControl(),\r\n txtAction: new FormControl()\r\n });\r\n canSubmit: boolean = false;\r\n canPrint: boolean = false;\r\n canSave: boolean = true;\r\n currentEditRow: number = -1;\r\n formGroupList!: FormGroup;\r\n private editedRowIndex: number | undefined;\r\n private editedLine: any;\r\n UnsubscribeArray: Subscription[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public inputCCN: any,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private commonService: CommonService,\r\n private notificationService: NotificationService,\r\n private elementdetailsService: ElementdetailsService,\r\n private ccnService: CcnService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.loadInitialData();\r\n }\r\n\r\n async loadInitialData() {\r\n var project = JSON.parse(this.commonService.getSessionStorageItem('projectObject'));\r\n this.project = this.commonService.getProjectCode() + ' - ' + project.projectDescription;\r\n this.ccnTypeList = await this.elementdetailsService.GetElementDetailsByDescList('CCN Type').toPromise();\r\n this.MHStatusList.push(\r\n { value: 1, description: 'Agreed' },\r\n { value: 2, description: 'Not Agreed' },\r\n { value: 3, description: 'NA' }\r\n );\r\n if (this.inputCCN.ccnId != -1) {\r\n this.ccnId = this.inputCCN.ccnId;\r\n this.ccnRevNo = this.inputCCN.ccnRevNo;\r\n let ccnInput: ICCNByIdModel = {\r\n cCNId: this.ccnId,\r\n cCNRevNo: +this.ccnRevNo\r\n }\r\n this.getCCN(ccnInput);\r\n this.getCCNDetails();\r\n }\r\n else {\r\n this.ccnType = this.inputCCN.ccnType;\r\n this.initiatedBy = this.commonService.getLoggedInUserName();\r\n this.getDiscipline(this.memberId);\r\n }\r\n }\r\n\r\n async getCCN(ccnInput: ICCNByIdModel) {\r\n let res = await this.ccnService.GetCCNById(ccnInput).toPromise();\r\n if (res != null && res.length > 0) {\r\n this.ccn = res[0];\r\n this.initiatedBy = this.ccn.originator;\r\n this.ccnNo = this.ccn.ccnNo;\r\n this.ccnType = this.ccn.ccType.toString();\r\n // this.canPrint = this.ccn.submitDate != null;\r\n if(this.inputCCN.status=='Pending for publish')\r\n this.canPrint = true;\r\n if(this.inputCCN.status=='Pending for Submission')\r\n this.canSubmit = true;\r\n this.ccnInputForm.get('txtTitle')?.setValue(this.ccn.ccnTitle);\r\n this.ccnInputForm.get('txtReason')?.setValue(this.ccn.ccnDescription);\r\n this.ccnInputForm.get('txtRef')?.setValue(this.ccn.ccnReference);\r\n this.ccnInputForm.get('txtAction')?.setValue(this.ccn.ccnAction);\r\n this.getDiscipline(this.ccn.createdBy);\r\n }\r\n else {\r\n this.notificationService.showToast(\"Invalid Data\", \"Warning\");\r\n }\r\n }\r\n\r\n async getCCNDetails() {\r\n let ccnInput: ICCNManhoursInputModel = {\r\n projectId: this.projectId,\r\n cCNId: this.ccnId,\r\n groupId: this.groupId,\r\n cCNRevNo: this.ccnRevNo\r\n };\r\n this.MHList = await this.ccnService.GetCCNDetails(ccnInput).toPromise();\r\n if (this.MHList.length > 0) {\r\n if(this.MHList.some(x=>x.isActive==true))\r\n this.MHList=this.MHList.filter(x=>x.isActive==true);\r\n this.MHList.forEach(async x => {\r\n x.cCNStatus = x.ccnStatus;\r\n x.cCNStatusDesc = x.ccnStatusDesc;\r\n x.cCNRemarks = x.ccnRemarks;\r\n x.discCode = x.dedId;\r\n x.discDescription = x.dedDescription;\r\n x.Enable = x.memberId && x.memberId>0 ?false:true;\r\n x.discMembers = await this.getDiscMembersDetails(x.dedId);\r\n x.notApplicable = x.memberId == 0;\r\n });\r\n }\r\n else {\r\n this.getManhourDetails();\r\n }\r\n }\r\n\r\n async getDiscipline(memberId: number) {\r\n let ccnInput: ICCNDisciplineInputModel = { projectId: this.projectId, memberId: memberId, groupId: this.groupId, module: Module.ScheduleDocument };\r\n let res = await this.ccnService.GetDisciplineDetails(ccnInput).toPromise();\r\n if (res.length > 0) {\r\n this.discCode = res[0]['dedId'];\r\n this.discipline = res[0]['dedDescription'];\r\n this.getApprovers();\r\n }\r\n else {\r\n this.notificationService.showToast(\"Logged In User is not mapped to any discipline.\", \"Warning\");\r\n this.closeDialog();\r\n }\r\n }\r\n\r\n async getApprovers() {\r\n let ccnInput: ICCNApproverInputModel = { projectId: this.projectId, discCode: this.discCode, groupId: this.groupId, module: Module.ScheduleDocument };\r\n let res = await this.ccnService.GetApproverDetails(ccnInput).toPromise();\r\n res.forEach((element: { [x: string]: string; }) => {\r\n if (!this.approvers.includes(element['memberName'])) {\r\n if (this.approvers != '') {\r\n this.approvers += ', ';\r\n }\r\n this.approvers += element['memberName'];\r\n }\r\n });\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n onValChange(value: number) {\r\n this.ccnType = value;\r\n }\r\n\r\n async generateCCN() {\r\n if (this.ccnInputForm.valid) {\r\n let ccnNoInput: ICCNNoInputModel = {\r\n projectId: this.projectId,\r\n cCType: this.ccnType,\r\n discCode: this.discCode\r\n }\r\n let res = await this.ccnService.GenerateCCNNo(ccnNoInput).toPromise();\r\n this.ccnNo = res[0].ccnNo;\r\n let ccnInput: ICCNInputModel = {\r\n projectId: this.projectId,\r\n cCNNo: this.ccnNo,\r\n cCNSNo: +res[0].sNo,\r\n cCNRevNo: 0,\r\n cCNTitle: this.getFormValue('txtTitle', this.ccnInputForm),\r\n cCNDesc: this.getFormValue('txtReason', this.ccnInputForm),\r\n cCNReference: this.getFormValue('txtRef', this.ccnInputForm),\r\n cCNAction: this.getFormValue('txtAction', this.ccnInputForm),\r\n disciplineDEDId: this.discCode,\r\n cCTypeDEDId: this.ccnType,\r\n userId: this.memberId\r\n }\r\n let ccninsert = this.ccnService.InsertCCN(ccnInput).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.ccnId = +res.result;\r\n this.getManhourDetails();\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.canSubmit = true ;\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n this.ccnNo = '';\r\n }\r\n });\r\n this.UnsubscribeArray.push(ccninsert);\r\n }\r\n else {\r\n this.notificationService.showToast(\"Mandatory Fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n async getManhourDetails() {\r\n let ccnInput: ICCNManhoursInputModel = {\r\n projectId: this.projectId,\r\n cCNId: this.ccnId,\r\n groupId: this.groupId,\r\n cCNRevNo: this.ccnRevNo\r\n };\r\n let res: CCNManhoursOutputModel[] = await this.ccnService.GetCCNManhours(ccnInput).toPromise();\r\n res.forEach(async x => x.discMembers = await this.getDiscMembersDetails(x.discCode));\r\n this.MHList = res;\r\n this.MHList.forEach(x =>{ x.notApplicable = false,\r\n x.Enable = x.memberId && x.memberId>0?false:true;}\r\n );\r\n }\r\n\r\n async getDiscMembersDetails(discCode: number) {\r\n let ccnInput: ICCNDiscMembersInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n discCode: discCode,\r\n cCNId: this.ccnId,\r\n cCNRevNo: 0\r\n };\r\n let members = await this.ccnService.GetCCNDiscMembers(ccnInput).toPromise();\r\n return members;\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n attachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, ccnId: this.ccnId, revisionNo: \"0\", libraryName: FileUploadLibrary.CCNDocuments, createdBy: this.memberId, documents: [{ value: this.ccnId, text: this.ccnNo, revisionNo: \"0\" }], isEditable: false },\r\n });\r\n }\r\n\r\n async submitCCN() {\r\n let check = this.MHList.findIndex(x => (x.memberId == null || x.memberId == -2) && !x.notApplicable);\r\n // if (check != -1) {\r\n // this.notificationService.showToast(\"Member is mandatory for Man hours\", \"Warning\");\r\n // return;\r\n // }\r\n // let check2 = this.MHList.findIndex(x => x.memberId != null && x.memberId != -2 && !x.notApplicable);\r\n // if (check2 == -1) {\r\n // this.notificationService.showToast(\"Minimum one discipline required\", \"Warning\");\r\n // return;\r\n // }\r\n\r\n let ccnInput: ICCNUpdateInputModel = {\r\n cCNId: this.ccnId,\r\n cCNRevNo: 0,\r\n userId: this.memberId\r\n }\r\n let ccnsubmit = this.ccnService.SubmitCCN(ccnInput).subscribe((res: StandardOutputModel) => {\r\n //this.canPrint = true;\r\n this.showMessage(res);\r\n });\r\n this.UnsubscribeArray.push(ccnsubmit);\r\n }\r\n\r\n async publishCCN() {\r\n let ccnInput: ICCNUpdateInputModel = {\r\n cCNId: this.ccnId,\r\n cCNRevNo: 0,\r\n userId: this.memberId\r\n }\r\n let ccnpublish = this.ccnService.PublishCCN(ccnInput).subscribe((res: StandardOutputModel) => {\r\n this.showMessage(res);\r\n });\r\n this.UnsubscribeArray.push(ccnpublish);\r\n }\r\n\r\n printCCN() {\r\n let dialogRef = this.dialog.open(CcnPrintComponent, {\r\n panelClass: ['mat-dialog-primary'],\r\n data: { ccnId: this.ccnId, ccnRevNo: this.ccnRevNo, discCode: this.discCode }\r\n });\r\n }\r\n\r\n async saveCCN() {\r\n let check = this.MHList.findIndex(x => (x.memberId == null || x.memberId == -2) && !x.notApplicable);\r\n if (check != -1) {\r\n this.notificationService.showToast(\"Member is mandatory for Man hours\", \"Warning\");\r\n return;\r\n }\r\n let check2 = this.MHList.findIndex(x => x.memberId != null && x.memberId != -2 && !x.notApplicable);\r\n if (check2 == -1) {\r\n this.notificationService.showToast(\"Minimum one discipline required\", \"Warning\");\r\n return;\r\n }\r\n let ccnInput:any[]=[];\r\n this.MHList.forEach(async x => {\r\n if (x.memberId >= 0 && x.cCNStatus > 0 && (this.memberId==this.ccn.createdBy||x.memberId ==this.memberId)) {\r\n let obj: ICCNDetailsInputModel = {\r\n projectId: this.projectId,\r\n cCNId: this.ccnId,\r\n cCNNo: this.ccnNo,\r\n cCNRevNo: 0,\r\n dEDId: x.discCode,\r\n memberId: x.memberId,\r\n cCNStatus: x.cCNStatus,\r\n manHour: x.manHour,\r\n noOfDoc: x.noOfDoc,\r\n cCNRemarks: x.cCNRemarks,\r\n userId: this.memberId,\r\n createdBy: x.createdBy\r\n }\r\n ccnInput.push(obj)\r\n }\r\n\r\n });\r\n\r\n let ccninsertdetails = this.ccnService.InsertCCNDetails(ccnInput).subscribe((res: StandardOutputModel) => {\r\n \r\n this.canSubmit = !this.ccnId ?true:false;\r\n this.showMessage(res);\r\n });\r\n this.UnsubscribeArray.push(ccninsertdetails);\r\n }\r\n\r\n showMessage(res: StandardOutputModel) {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n }\r\n\r\n memberChange(event: any, container: CCNManhoursOutputModel) {\r\n container.memberId = event.value;\r\n container.memberName = event.text;\r\n return container.memberId;\r\n }\r\n\r\n statusChange(event: any, container: CCNManhoursOutputModel) {\r\n container.cCNStatus = event.value;\r\n container.cCNStatusDesc = event.text;\r\n return container.cCNStatus;\r\n }\r\n\r\n notApplicableChange(event?: any) {\r\n if (event.checked || event == true) {\r\n this.MHList.forEach(async x => {\r\n if (x.notApplicable) {\r\n x.memberId = 0,\r\n x.cCNStatus = null,\r\n x.cCNStatusDesc = '',\r\n x.memberName = '',\r\n x.manHour = null,\r\n x.noOfDoc = null,\r\n x.cCNRemarks = ''\r\n }\r\n });\r\n }\r\n }\r\n\r\n public EditRowData(data: any): void {\r\n this.editedLine = Object.assign({}, data.dataItem);\r\n\r\n if (this.currentEditRow != -1) {\r\n this.MHGrid.closeRow(this.currentEditRow);\r\n this.editedRowIndex = data.rowIndex;\r\n }\r\n this.currentEditRow = data.rowIndex;\r\n if (!data.dataItem.notApplicable) {\r\n this.formGroupList = createFormGroup(data.dataItem);\r\n this.MHGrid.editRow(data.rowIndex);\r\n }\r\n }\r\n\r\n UpdateRowData(data: any) {\r\n data.sender.closeRow(data.rowIndex);\r\n if(this.ccnId!=-1 && (this.inputCCN.status=='Pending for manhour' || this.inputCCN.status=='Pending for publish'))\r\n {\r\n this.canSave = false;\r\n }\r\n }\r\n\r\n cancelRowData(data: any) {\r\n this.closeEditor(data.sender, data.rowIndex);\r\n }\r\n\r\n closeEditor(grid: { closeRow: (arg0: number) => void; }, rowIndex = this.editedRowIndex) {\r\n if (rowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.MHList[rowIndex] = this.editedLine;\r\n }\r\n this.editedRowIndex = undefined;\r\n this.editedLine = undefined;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Create New - Change Control Note

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{type.deD_Description}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Change Control Note\r\n - {{ccnNo}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Project Code / Name

\r\n

\r\n {{project}}\r\n

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

Initiated By

\r\n

{{initiatedBy}}\r\n

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

Discipline

\r\n

\r\n {{discipline}}\r\n

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

Approvers

\r\n

{{approvers}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Title for Change Control\r\n \r\n Title is required\r\n \r\n \r\n
\r\n
\r\n \r\n Description Reason for Change\r\n \r\n \r\n Reason is required\r\n \r\n \r\n
\r\n
\r\n \r\n Reference Drawing / Documents\r\n \r\n \r\n Reference is required\r\n \r\n \r\n
\r\n
\r\n \r\n Action\r\n \r\n Action is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.discDescription}}\r\n \r\n \r\n \r\n \r\n {{dataItem.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.cCNStatusDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.manHour}}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.noOfDoc}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.cCNRemarks}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-ccn-advance-search',\r\n templateUrl: './ccn-advance-search.component.html',\r\n styleUrls: ['./ccn-advance-search.component.css']\r\n})\r\nexport class CcnAdvanceSearchComponent implements OnInit {\r\n @Output() advancedSearchStatus: EventEmitter = new EventEmitter();\r\n @Input() searchList: any[] = [];\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlSearchText: new FormControl(),\r\n ctrlType: new FormControl(),\r\n ctrlDisc: new FormControl(),\r\n ctrlRevision: new FormControl()\r\n });\r\n public searchTypeList: any[] = [];\r\n public searchDisciplineList: any[] = [];\r\n public searchRevisionList: any[] = [];\r\n\r\n constructor(\r\n private notificationService: NotificationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getSearchTypes();\r\n this.getRevisionList();\r\n this.getDisciplineList();\r\n }\r\n\r\n closeAdvanceSearch(event:any) {\r\n this.advancedSearchStatus.emit(this.searchList);\r\n }\r\n\r\n public clearSearch() {\r\n this.searchForm.reset();\r\n }\r\n\r\n getSearchTypes() {\r\n this.searchTypeList = [];\r\n this.searchTypeList.push(\r\n { value: 0, description: 'CCN Number' },\r\n { value: 1, description: 'CCN Title' }\r\n );\r\n }\r\n\r\n public getRevisionList() {\r\n let result = this.searchList.map(x => x.ccnRevNo);\r\n let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n filteredResult.forEach(x => {\r\n this.searchRevisionList.push({ value: x, description: x });\r\n })\r\n }\r\n\r\n public getDisciplineList() {\r\n let result = this.searchList.map(x => x.discipline);\r\n let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n filteredResult.forEach(x => {\r\n this.searchDisciplineList.push({ value: x, description: x });\r\n })\r\n }\r\n\r\n public searchData() {\r\n let searchText = this.searchForm.controls['ctrlSearchText'].value;\r\n let type = this.searchForm.controls['ctrlType'].value;\r\n let revision = this.searchForm.controls['ctrlRevision'].value;\r\n let disc = this.searchForm.controls['ctrlDisc'].value;\r\n if (searchText != null && searchText != '') {\r\n if (type != null) {\r\n if (type == 'CCN Number') {\r\n this.searchList = this.searchList.filter(x => x.ccnNo.toLowerCase().includes(searchText.toLowerCase()));\r\n }\r\n else if (type == 'CCN Title') {\r\n this.searchList = this.searchList.filter(x => x.ccnTitle.toLowerCase().includes(searchText.toLowerCase()));\r\n }\r\n\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please Select Type\", \"Warning\");\r\n return;\r\n }\r\n }\r\n if (disc != null) {\r\n this.searchList = this.searchList.filter(x => x.discipline == disc);\r\n }\r\n if (revision != null) {\r\n this.searchList = this.searchList.filter(x => x.ccnRevNo == revision);\r\n }\r\n this.advancedSearchStatus.emit(this.searchList);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Free Search\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { ICCNDisciplineInputModel, ICCNApproverInputModel, ICCNByIdModel, ICCNUpdateInputModel, ICCNApproveInputModel, ICCNManhoursInputModel } from 'src/app/ViewModel/CCNModel';\r\nimport { CcnService } from 'src/app/Service/ccn/ccn.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { ChangeControlCreateComponent } from '../../change-control-create/change-control-create.component';\r\nimport { CcnPrintComponent } from '../../change-control-create/ccn-print-dialog/ccn-print/ccn-print.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from \"rxjs\";\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n@Component({\r\n selector: 'app-ccn-view',\r\n templateUrl: './ccn-view.component.html',\r\n styleUrls: ['./ccn-view.component.css']\r\n})\r\nexport class CcnViewComponent implements OnInit, OnDestroy {\r\n private _viewData!: any[];\r\n get viewData(): any {\r\n return this._viewData;\r\n }\r\n @Input() set viewData(value: any) {\r\n if (!!value && typeof value == \"object\") {\r\n this._viewData = value;\r\n this.loadInitialData();\r\n }\r\n }\r\n projectId!: number;\r\n memberId!: number ;\r\n groupId!: number ;\r\n public ccn: any;\r\n public MHList: any[] = [];\r\n project: string = '';\r\n initiatedBy: string = '';\r\n discCode: number = 0;\r\n discipline: string = '';\r\n approvers: string = '';\r\n canEdit: boolean = false;\r\n canApprove: boolean = false;\r\n canPublish: boolean = false;\r\n canPrint: boolean = false;\r\n UnsubscribeArray:Subscription[]=[];\r\n public enableFullscreen:boolean=false;\r\n constructor(\r\n private commonService: CommonService,\r\n private notificationService: NotificationService,\r\n private ccnService: CcnService,\r\n private dialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n }\r\n\r\n async loadInitialData() {\r\n var project = JSON.parse(this.commonService.getSessionStorageItem('projectObject'));\r\n this.project = this.commonService.getProjectCode() + ' - ' + project.projectDescription;\r\n this.initiatedBy = this.commonService.getLoggedInUserName();\r\n let ccnInput: ICCNByIdModel = {\r\n cCNId: this.viewData[0].ccnId,\r\n cCNRevNo: this.viewData[0].revisionNo\r\n }\r\n this.getCCN(ccnInput);\r\n this.getCCNDetails(ccnInput as ICCNManhoursInputModel);\r\n }\r\n\r\n async getDiscipline() {\r\n let ccnInput: ICCNDisciplineInputModel = { projectId: this.projectId, memberId: this.ccn.createdBy, groupId: this.groupId, module: Module.ScheduleDocument };\r\n let res = await this.ccnService.GetDisciplineDetails(ccnInput).toPromise();\r\n if (res.length > 0) {\r\n this.discCode = res[0]['dedId'];\r\n this.discipline = res[0]['dedDescription'];\r\n this.getApprovers();\r\n }\r\n else {\r\n this.notificationService.showToast(\"Logged In User is not mapped to any discipline.\", \"Warning\");\r\n }\r\n }\r\n\r\n async getApprovers() {\r\n let ccnInput: ICCNApproverInputModel = { projectId: this.projectId, discCode: this.discCode, groupId: this.groupId, module: Module.ScheduleDocument };\r\n let res = await this.ccnService.GetApproverDetails(ccnInput).toPromise();\r\n res.forEach((element: { [x: string]: string; }) => {\r\n if (!this.approvers.includes(element['memberName'])) {\r\n if (this.approvers != '') {\r\n this.approvers += ', ';\r\n }\r\n this.approvers += element['memberName'];\r\n }\r\n });\r\n }\r\n\r\n async getCCN(ccnInput: ICCNByIdModel) {\r\n let res = await this.ccnService.GetCCNById(ccnInput).toPromise();\r\n if (res != null && res.length > 0) {\r\n this.ccn = res[0];\r\n this.canPrint = this.ccn.submitDate != null;\r\n this.canEdit = this.ccn.publishDate == null;\r\n this.canApprove = this.ccn.approvedDate == null && this.ccn.submitDate != null;\r\n this.canPublish = this.ccn.approvedDate != null && this.ccn.submitDate != null && this.ccn.publishDate == null;\r\n this.getDiscipline();\r\n }\r\n else {\r\n this.notificationService.showToast(\"Invalid Data\", \"Warning\");\r\n }\r\n }\r\n\r\n async getCCNDetails(ccnInput: ICCNManhoursInputModel) {\r\n this.MHList = await this.ccnService.GetCCNDetails(ccnInput).toPromise();\r\n }\r\n\r\n async approveCCN(isApproved: boolean) {\r\n let inputModel: ICCNApproveInputModel = {\r\n cCNId: this.viewData[0].ccnId,\r\n cCNRevNo: this.viewData[0].revisionNo,\r\n userId: this.memberId,\r\n isApproved: isApproved\r\n };\r\n let ccnapprove = await this.ccnService.ApproveCCN(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.loadInitialData();\r\n });\r\n this.UnsubscribeArray.push(ccnapprove);\r\n }\r\n\r\n async publishCCN() {\r\n let ccnInput: ICCNUpdateInputModel = {\r\n cCNId: this.viewData[0].ccnId,\r\n cCNRevNo: this.viewData[0].revisionNo,\r\n userId: this.memberId\r\n }\r\n let ccnpublish = this.ccnService.PublishCCN(ccnInput).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.loadInitialData();\r\n });\r\n this.UnsubscribeArray.push(ccnpublish);\r\n }\r\n\r\n printCCN() {\r\n let dialogRef = this.dialog.open(CcnPrintComponent, {\r\n panelClass: ['mat-dialog-primary'],\r\n data: { ccnId: this.viewData[0].ccnId, ccnRevNo: this.viewData[0].revisionNo, discCode: this.discCode }\r\n });\r\n }\r\n\r\n editCCN() {\r\n let dialogRef = this.dialog.open(ChangeControlCreateComponent, {\r\n panelClass: ['mat-dialog-primary'],\r\n data: { ccnId: this.viewData[0].ccnId, ccnRevNo: this.viewData[0].revisionNo }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.loadInitialData();\r\n });\r\n }\r\n\r\n ngOnDestroy():void\r\n {\r\n this.UnsubscribeArray.forEach(x=>x.unsubscribe());\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n Change Control Note\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Project Code / Name

\r\n

\r\n {{project}}\r\n

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

Initiated By

\r\n

{{ccn.originator}}\r\n

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

Discipline

\r\n

\r\n {{discipline}}\r\n

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

Approvers

\r\n

{{approvers}}\r\n

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

Title for Change Control

\r\n

{{ccn.ccnTitle}}

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

Description Reason for Change

\r\n

{{ccn.ccnDescription}}

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

Reference Drawing / Documents

\r\n

{{ccn.ccnReference}}

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

Action

\r\n

{{ccn.ccnAction}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.dedDescription}} \r\n \r\n \r\n \r\n \r\n {{dataItem.memberName}} \r\n \r\n \r\n \r\n \r\n {{dataItem.ccnStatusDesc}} \r\n \r\n \r\n \r\n \r\n {{dataItem.manHour}} \r\n \r\n \r\n \r\n \r\n {{dataItem.noOfDoc}} \r\n \r\n \r\n \r\n \r\n {{dataItem.ccnRemarks}} \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ChangeControlCreateComponent } from '../change-control-create/change-control-create.component';\r\nimport { ElementdetailsService } from 'src/app/Service/elementdetails/elementdetails.service';\r\nimport { ICCNListInputModel, ICCNApproveInputModel, ICCNUpdateInputModel } from 'src/app/ViewModel/CCNModel';\r\nimport { CcnService } from 'src/app/Service/ccn/ccn.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { CcnPrintComponent } from '../change-control-create/ccn-print-dialog/ccn-print/ccn-print.component';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n@Component({\r\n selector: 'app-change-control',\r\n templateUrl: './change-control.component.html',\r\n styleUrls: ['./change-control.component.css']\r\n})\r\nexport class ChangeControlComponent implements OnInit {\r\n @ViewChild('docGrid') docGrid: any;\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n public forActionList: any[] = [];\r\n public approvedList: any[] = [];\r\n public rejectedList: any[] = [];\r\n public publishedList: any[] = [];\r\n public data: any[] = [];\r\n public ccnList: any[] = [];\r\n public searchList: any[] = [];\r\n public isSearch: any;\r\n selectedRootIndex = 3;\r\n public ccnTypeList: any[] = [];\r\n public ccnType: number = 40;\r\n pageSize = 15;\r\n LastViewingRecords = 30;\r\n LastViewingRecord: string = \"30\";\r\n noOfDays = [30, 60, 90, 'All'];\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n memberId: number = 0;\r\n projectId!: number;\r\n groupId: number = 0;\r\n selectedTabIndex = 0;\r\n public viewTabs: any = [];\r\n public viewData: any[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private commonService: CommonService,\r\n private notificationService: NotificationService,\r\n private elementdetailsService: ElementdetailsService,\r\n private ccnService: CcnService,\r\n public restApiService: RestApiService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.bindCCNType();\r\n }\r\n\r\n getGridData() {\r\n if (this.selectedTabIndex != 0) {\r\n this.viewData = [];\r\n let tab: any = this.viewTabs[this.selectedTabIndex - 1];\r\n this.viewData.push({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n ccnId: tab.ccnId,\r\n revisionNo: tab.ccnRevNo\r\n });\r\n }\r\n if (this.searchList.length > 0) {\r\n this.ccnList = this.searchList;\r\n if (this.dataBinding != undefined)\r\n this.dataBinding.skip = 0;\r\n }\r\n else {\r\n this.approvedList = this.data.filter(doc => doc.ccnProgress == 'Approved');\r\n this.forActionList = this.data.filter(doc => doc.ccnProgress == 'For Action');\r\n this.rejectedList = this.data.filter(doc => doc.ccnProgress == 'Rejected');\r\n this.publishedList = this.data.filter(doc => doc.ccnProgress == 'Published');\r\n switch (this.selectedRootIndex) {\r\n case 0:\r\n this.ccnList = this.forActionList;\r\n break;\r\n case 1:\r\n this.ccnList = this.approvedList;\r\n break;\r\n case 2:\r\n this.ccnList = this.rejectedList;\r\n break;\r\n case 3:\r\n this.ccnList = this.publishedList;\r\n break;\r\n default:\r\n this.ccnList = this.data;\r\n break;\r\n }\r\n this.dataBinding.skip = 0;\r\n }\r\n }\r\n\r\n public lastviewingrecordsmethod(event: any) {\r\n if (event == \"All\") {\r\n this.LastViewingRecords = 0;\r\n this.refreshGrid();\r\n this.LastViewingRecord = \"All\";\r\n }\r\n else {\r\n this.LastViewingRecords = event;\r\n this.LastViewingRecord = event;\r\n this.refreshGrid();\r\n }\r\n }\r\n\r\n async bindCCNType() {\r\n\r\n let x = await this.elementdetailsService.GetElementDetailsByDescList('CCN Type').toPromise();\r\n if (x) {\r\n this.ccnTypeList = x\r\n this.ccnType = this.ccnTypeList[0].deD_Id.toString();\r\n }\r\n this.refreshGrid();\r\n }\r\n\r\n public changeControlNote() {\r\n let dialogRef = this.dialog.open(ChangeControlCreateComponent, {\r\n panelClass: ['mat-dialog-primary'],\r\n data: { ccnId: -1, ccnRevNo: 0, ccnType: this.ccnType }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n public tabClick(event: any) {\r\n this.docGrid.defaultSelection.selectedKeys = [];\r\n this.ccnList.forEach(x => x.isSelected = false);\r\n this.searchList = [];\r\n this.getGridData();\r\n }\r\n\r\n public onTypeChange(val: any) {\r\n this.searchList = [];\r\n this.ccnList.forEach(x => x.isSelected = false);\r\n this.ccnType = val.value;\r\n this.refreshGrid();\r\n }\r\n\r\n async refreshGrid() {\r\n let ccnInput: ICCNListInputModel = {\r\n projectId: this.projectId,\r\n cCType: this.ccnType,\r\n createdFromDays: this.LastViewingRecords\r\n };\r\n this.data = await this.ccnService.GetCCNList(ccnInput).toPromise();\r\n this.docGrid.defaultSelection.selectedKeys = [];\r\n this.data.forEach(x => x.isSelected = false);\r\n this.getGridData();\r\n }\r\n\r\n public showMessage(res: StandardOutputModel) {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.refreshGrid();\r\n }\r\n\r\n async approveCCN(data: any, isApproved: boolean) {\r\n if (data.submitDate != null) {\r\n let inputModel: ICCNApproveInputModel = {\r\n cCNId: data.ccnId,\r\n cCNRevNo: data.ccnRevNo,\r\n userId: this.memberId,\r\n isApproved: isApproved\r\n };\r\n let res: StandardOutputModel = await this.ccnService.ApproveCCN(inputModel).toPromise();\r\n this.showMessage(res);\r\n }\r\n else {\r\n this.notificationService.showToast(\"CCN has not been submitted\", \"Warning\")\r\n }\r\n }\r\n\r\n public approveAllCCN(isApproved: any) {\r\n let selectList = this.ccnList.filter(x => x.isSelected == true);\r\n let successMessage = '';\r\n if (selectList.length > 0) {\r\n let flag = selectList.findIndex(x => x.submitDate == null);\r\n if (flag != -1) {\r\n this.notificationService.showToast(\"Some documents are pending submission\", \"Warning\");\r\n return;\r\n }\r\n selectList.forEach(async element => {\r\n if (element.submitDate != null) {\r\n let inputModel: ICCNApproveInputModel = {\r\n cCNId: element.ccnId,\r\n cCNRevNo: element.ccnRevNo,\r\n userId: this.memberId,\r\n isApproved: isApproved\r\n };\r\n let res: StandardOutputModel = await this.ccnService.ApproveCCN(inputModel).toPromise();\r\n }\r\n });\r\n if (successMessage != '') {\r\n this.notificationService.showToast(successMessage, \"Warning\");\r\n }\r\n else {\r\n let msg = isApproved ? \"Records Updated Successfully\" : \"Records Rejected Successfully\";\r\n this.notificationService.showToast(msg, \"Success\");\r\n }\r\n this.refreshGrid();\r\n }\r\n else {\r\n this.notificationService.showToast(\"Kindly select atleast one record\", \"Warning\");\r\n }\r\n }\r\n\r\n async publishCCN(ccn: any) {\r\n if (ccn.submitDate != null && ccn.approveDate != null) {\r\n if (ccn.attachmentsCount <= 0) {\r\n this.notificationService.showToast(\"CCN proof has not been attached\", \"Warning\")\r\n return;\r\n }\r\n let ccnInput: ICCNUpdateInputModel = {\r\n cCNId: ccn.ccnId,\r\n cCNRevNo: 0,\r\n userId: this.memberId\r\n }\r\n let res: StandardOutputModel = await this.ccnService.PublishCCN(ccnInput).toPromise();\r\n this.showMessage(res);\r\n }\r\n else {\r\n this.notificationService.showToast(\"CCN has not been approved\", \"Warning\")\r\n }\r\n }\r\n\r\n async publishAllCCN() {\r\n let selectList = this.ccnList.filter(x => x.isSelected == true);\r\n let successMessage = '';\r\n if (selectList.length > 0) {\r\n let flag = selectList.findIndex(x => x.attachmentsCount <= 0);\r\n if (flag != -1) {\r\n this.notificationService.showToast(\"CCN proof has not been attached for some documents\", \"Warning\")\r\n return;\r\n }\r\n flag = selectList.findIndex(x => x.submitDate == null && x.approveDate == null);\r\n if (flag != -1) {\r\n this.notificationService.showToast(\"Some documents are not yet approved\", \"Warning\")\r\n return;\r\n }\r\n\r\n selectList.forEach(async element => {\r\n if (element.submitDate != null && element.approveDate != null && element.attachmentsCount > 0) {\r\n this.publishCCN(element);\r\n }\r\n });\r\n if (successMessage != '') {\r\n this.notificationService.showToast(successMessage, \"Warning\");\r\n }\r\n else {\r\n this.notificationService.showToast(\"Records published successfully\", \"Success\");\r\n }\r\n this.refreshGrid();\r\n }\r\n else {\r\n this.notificationService.showToast(\"Kindly select atleast one record\", \"Warning\");\r\n }\r\n }\r\n\r\n onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n public advanceSearch() {\r\n this.searchList = [];\r\n this.isSearch = !this.isSearch;\r\n }\r\n\r\n closeAdvSearch(event: any[]) {\r\n this.searchList = event;\r\n this.isSearch = false;\r\n if (this.searchList.length == 0) {\r\n this.notificationService.showToast(\"Search returned no results\", \"Warning\");\r\n }\r\n else {\r\n this.ccnList = this.searchList;\r\n this.dataBinding.skip = 0;\r\n }\r\n }\r\n\r\n public viewTabClick(event: { tab: { textLabel: { ccnId: any; ccnRevNo: any; }; }; }) {\r\n this.viewData = [];\r\n if (this.selectedTabIndex != 0) {\r\n this.viewData.push({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n ccnId: event.tab.textLabel.ccnId,\r\n revisionNo: event.tab.textLabel.ccnRevNo\r\n });\r\n }\r\n }\r\n\r\n public closeViewTab(tab: { docId: any; }) {\r\n this.viewTabs.forEach((value: any, index: number) => {\r\n if (value.docId == tab.docId) this.viewTabs.splice(index, 1);\r\n });\r\n if (this.viewTabs.length == 0) {\r\n this.selectedTabIndex = 0;\r\n this.refreshGrid();\r\n }\r\n }\r\n\r\n viewCCN(data: any) {\r\n let index = this.viewTabs.indexOf(data);\r\n if (index == -1) {\r\n this.viewTabs.push(data);\r\n this.selectedTabIndex = 1;\r\n this.getGridData();\r\n }\r\n }\r\n\r\n editCCN(data: any) {\r\n let dialogRef = this.dialog.open(ChangeControlCreateComponent, {\r\n panelClass: ['mat-dialog-primary'],\r\n data: { ccnId: data.ccnId, ccnRevNo: data.ccnRevNo,status:data.status }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n viewAttachmentClick(data: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: { projectId: this.projectId, ccnId: data.ccnId, revisionNo: data.ccnRevNo, libraryName: FileUploadLibrary.CCNDocuments, createdBy: this.memberId, isDeleteEnable: data.publishDate == null, documentNo: data.ccnNo },\r\n });\r\n }\r\n\r\n printCCN(data: any) {\r\n let dialogRef = this.dialog.open(CcnPrintComponent, {\r\n panelClass: ['mat-dialog-primary'],\r\n data: { ccnId: data.ccnId, ccnRevNo: data.ccnRevNo, discCode: data.discCode }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{tab.ccnNo}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n For Action {{forActionList.length}}\r\n \r\n \r\n \r\n \r\n Approved {{approvedList.length}}\r\n \r\n \r\n \r\n \r\n Rejected {{rejectedList.length}}\r\n \r\n \r\n \r\n \r\n Published {{publishedList.length}}\r\n \r\n \r\n \r\n \r\n All {{data.length}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{type.deD_Description}}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Details -

\r\n
\r\n

Viewing last

\r\n \r\n

days records

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n 0?'eip-link':''\"  class=\"fa fa-paperclip fs-16 eip-mr-5\" (click)=\"dataItem.attachmentsCount>0?viewAttachmentClick(dataItem):$event.stopPropagation()\">\r\n \r\n {{dataItem.ccnNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ccnTitle}} \r\n \r\n \r\n \r\n \r\n {{dataItem.ccnRevNo}} \r\n \r\n \r\n \r\n \r\n {{dataItem.publishDate | date:'dd-MMM-yyyy'}} \r\n \r\n \r\n \r\n \r\n {{dataItem.manHours}} \r\n \r\n \r\n \r\n \r\n {{dataItem.originator}} \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}} \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, Inject, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from \"@angular/material/dialog\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { IRevisionCategory, IScheduleDocInfo, ILatestStageDetails, IDCIPostBulkSupersedeModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { ElementdetailsService } from \"src/app/Service/elementdetails/elementdetails.service\";\r\nimport { ICCNListInputModel, ICCNWorkflowModel } from \"src/app/ViewModel/CCNModel\";\r\nimport { CcnService } from \"src/app/Service/ccn/ccn.service\";\r\nimport { LoaderService } from \"src/app/Service/Loader/loader.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { isNumber } from 'lodash';\r\n@Component({\r\n selector: 'app-dci-supersede',\r\n templateUrl: './dci-supersede.component.html',\r\n styles: [`\r\n ::ng-deep .child-mat-expan.mat-expansion-panel {\r\n margin: 0 0px !important;\r\n }\r\n `]\r\n})\r\nexport class DciSupersedeComponent implements OnInit, OnDestroy {\r\n subscriptions: Subscription[] = []\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n revForm!: FormGroup;\r\n ccnForm!: FormGroup;\r\n revCategoryList: IRevisionCategory[] = [{ revCategoryId: 1, revCategory: 'Minor' }, { revCategoryId: 2, revCategory: 'Major' }, { revCategoryId: 3, revCategory: 'First Release' }];\r\n printSizeList: IProjectElementDetailsOutput[] = [];\r\n selectedPrintSize!: number;\r\n dciStatusList: IProjectElementDetailsOutput[] = [];\r\n selectedDciStatus!: number;\r\n workflowList: WorkflowTemplateModel[] = [];\r\n selectedWorkflow!: number;\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isDocSetRequired: boolean = true;\r\n LatestStageDetails: ILatestStageDetails[] = [];\r\n DocNo: string;\r\n panelOpenState = true;\r\n selectedschtype!: number;\r\n\r\n ccnTypeList: any[] = [];\r\n categoryList: any[] = [{ revCategoryId: 1, revCategory: 'For Approval(A)' }, { revCategoryId: 2, revCategory: 'Good For Construction(GFC)' }];\r\n ccnList: ICCNWorkflowModel[];\r\n IsCCNRequired: boolean = false;\r\n\r\n constructor(private _commonService: CommonService, public _dialogRef: MatDialogRef, private _notificationService: NotificationService, private _formBuilder: FormBuilder, private _projService: ProjectInfoService, private _scheduleDocService: ScheduleDocumentService, @Inject(MAT_DIALOG_DATA) public _data: IScheduleDocInfo, private dialog: MatDialog, public workflowTemplateService: WorkflowTemplateService, public _datepipe: DatePipe, private elementdetailsService: ElementdetailsService, private ccnService: CcnService, private loaderService: LoaderService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.initializeForm();\r\n this.getElementDetails(\"Print Size\");\r\n this.getElementDetails(\"Status\");\r\n this.getWorkflowDetails();\r\n this.getProjectStaticElements();\r\n this.GetLatestStageDetails();\r\n this.getCCNTypeList();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n initializeForm() {\r\n this.DocNo = this._data.doc_No + \" ( \" + this._data.revision_No + \" ) \";\r\n let revision_No \r\n // = this._data.revision_No.substring(0, this._data.revision_No.length - 1) +\r\n // String.fromCharCode(this._data.revision_No.charCodeAt(this._data.revision_No.length - 1) + 1);\r\n if(!isNaN(Number(this._data.revision_No)))\r\n {\r\n revision_No = String(Number(this._data.revision_No)+ 1); \r\n }\r\n else{\r\n revision_No = this._data.revision_No.substring(0, this._data.revision_No.length - 1) +\r\n String.fromCharCode(this._data.revision_No.charCodeAt(this._data.revision_No.length - 1) + 1);\r\n }\r\n this.revForm = this._formBuilder.group({\r\n printSize: new FormControl('', Validators.required),\r\n formPrintSize: new FormControl('', Validators.required),\r\n revCategory: new FormControl('', Validators.required),\r\n formrevCategory: new FormControl('', Validators.required),\r\n dciStatus: new FormControl('', [Validators.required]),\r\n formDciStatus: new FormControl('', [Validators.required]),\r\n noOfSheets: new FormControl(0),\r\n comments: new FormControl(),\r\n formWorkflow: new FormControl('', [Validators.required]),\r\n formRevision: new FormControl(revision_No, [Validators.required])\r\n });\r\n\r\n this.ccnForm = this._formBuilder.group({\r\n CCNType: new FormControl('', Validators.required),\r\n formCCNType: new FormControl('', Validators.required),\r\n CCN: new FormControl('', Validators.required),\r\n formCCN: new FormControl('', Validators.required),\r\n Category: new FormControl('', Validators.required),\r\n formCategory: new FormControl('', Validators.required),\r\n formDraftingManHrs: new FormControl(0, Validators.required).setValue(0),\r\n formDesignManHrs: new FormControl(0, Validators.required).setValue(0),\r\n })\r\n\r\n if (!!this._data.revision_Category) {\r\n let revisionCategory = this.revCategoryList.filter(data => data.revCategoryId == this._data.revision_Category)[0];\r\n this.revForm.get('formrevCategory')?.setValue(revisionCategory.revCategory);\r\n this.revForm.get('revCategory')?.setValue(revisionCategory);\r\n }\r\n }\r\n\r\n GetLatestStageDetails() {\r\n let obj = {\r\n \"Doc_Id\": this._data.doc_Id,\r\n \"Stage_Ids\": (this._data.current_Stage != null && this._data.current_Stage != '' && this._data.is_WF_Started) ? this._data.dciScheduleStageDetails.filter((x, y) => x.stage_Short_Desc == this._data.current_Stage).map(k => k.stage_Id).join(',') : this._data.dciScheduleStageDetails.map(k => k.stage_Id).join(',')\r\n }\r\n\r\n this.subscriptions.push(this.workflowTemplateService.GetWorkflowLatestStageDetail(obj).subscribe(data => {\r\n if (!!data) {\r\n this.LatestStageDetails = data.map((x: { scheduled_On: string | number | Date; revisedScheduled_On: string | number | Date | null; minScheduled_On: string | number | Date | null; maxScheduled_On: string | number | Date | null; }) => { x.scheduled_On = new Date(x.scheduled_On), x.revisedScheduled_On = (x.revisedScheduled_On ? new Date(x.revisedScheduled_On) : null), x.minScheduled_On = (x.minScheduled_On ? new Date(x.minScheduled_On) : null), x.maxScheduled_On = (x.maxScheduled_On ? new Date(x.maxScheduled_On) : null); return x });\r\n }\r\n }));\r\n }\r\n\r\n collapseAllClick() {\r\n this.panelOpenState = !this.panelOpenState;\r\n }\r\n\r\n /**\r\n* Get Element Details (Print Size,Doc Status)\r\n*/\r\n public getElementDetails(elementName: string) {\r\n this.subscriptions.push(this._projService.getProjectElementDetails({ projectId: this._commonService.getProjectId(), groupId: this._commonService.getLoggedInUserGroupId(), moduleId: Module.ScheduleDocument, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Print Size\":\r\n this.printSizeList = res;\r\n if (!!this._data.print_Size_Id) {\r\n let printSize = this.printSizeList.filter(data => data.dedId == this._data.print_Size_Id)[0];\r\n this.revForm.get('formPrintSize')?.setValue(printSize.dedDescription);\r\n this.revForm.get('printSize')?.setValue(printSize);\r\n }\r\n break;\r\n case \"Status\":\r\n this.dciStatusList = res;\r\n if (!!this._data.doc_Status_Id) {\r\n let status = this.dciStatusList.filter(data => data.dedId == this._data.doc_Status_Id)[0];\r\n this.revForm.get('formDciStatus')?.setValue(status.dedDescription);\r\n this.revForm.get('dciStatus')?.setValue(status);\r\n }\r\n break;\r\n }\r\n }, err => { }));\r\n }\r\n\r\n getWorkflowDetails() {\r\n if (this._data.schedule_Type)\r\n this.selectedschtype = this._data.schedule_Type;\r\n this.subscriptions.push(this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x.filter(y => y.isForsupersede);\r\n this.workflowList = this.workflowList.filter(x => x.scheduleType == this.selectedschtype);\r\n if (this._data.workflow_Id != null && this._data.workflow_Id > 0) {\r\n this.selectedWorkflow = this._data.workflow_Id;\r\n this.setFormValue(this.revForm, \"formWorkflow\", this.selectedWorkflow);\r\n }\r\n }));\r\n }\r\n\r\n setFormValue(form: FormGroup, formControlName: string, value: any) {\r\n form.get(formControlName)?.setValue(value);\r\n }\r\n\r\n async onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"revForm\":\r\n if (formControlName == \"workflow\") {\r\n this.selectedWorkflow = val.value;\r\n this.IsCCNRequired = val.additionalValues.additionalValues.cnN_Required;\r\n }\r\n this.revForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"ccnForm\":\r\n if (formControlName == \"CCNType\") {\r\n let ccnInput: ICCNListInputModel = {\r\n projectId: this.projectId,\r\n cCType: val.value,\r\n createdFromDays: 0\r\n };\r\n\r\n let res: any[] = await this.ccnService.GetCCNList(ccnInput).toPromise();\r\n this.ccnList = res.filter(x => x.publishDate != null);\r\n }\r\n\r\n if (formControlName == \"formDraftingManHrs\" || formControlName == \"formDesignManHrs\")\r\n this.ccnForm.get(formControlName)?.setValue(val.srcElement.value);\r\n else\r\n this.ccnForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this._commonService.getProjectId(), groupId: this._commonService.getLoggedInUserGroupId(), moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let isDocSetRequiredElement = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequiredElement) {\r\n this.isDocSetRequired = isDocSetRequiredElement.isMandatory;\r\n }\r\n }\r\n }, err => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n }\r\n\r\n setStageDate(selectedStageDate: any, stage: ILatestStageDetails) {\r\n stage.scheduled_On = selectedStageDate.value;\r\n stage.updatedScheduled_On = selectedStageDate.value;\r\n }\r\n\r\n public async getCCNTypeList() {\r\n let x = await this.elementdetailsService.GetElementDetailsByDescList('CCN Type').toPromise();\r\n if (x && x.length > 0) {\r\n this.ccnTypeList = x;\r\n }\r\n }\r\n\r\n saveSuperdeDetails() {\r\n this.loaderService.isLoading.next(true);\r\n let DCISupersedeDetails: IDCIPostBulkSupersedeModel[] = [{\r\n index: 0,\r\n doc_Id: this._data.doc_Id,\r\n doc_No: this._data.doc_No,\r\n doc_Title: this._data.doc_Title,\r\n current_Stage: this._data.current_Stage,\r\n current_StageId: this._data.current_StageId,\r\n revision_No: this._data.revision_No,\r\n supersede_Revision_No: this.revForm.get('formRevision')?.value,\r\n revision_Category: this.revForm.get('revCategory')?.value.revCategoryId,\r\n released_For: this.revForm.get('dciStatus')?.value.dedId,\r\n print_Size: this.revForm.get('printSize')?.value.dedId,\r\n schedule_Type: this._data.schedule_Type,\r\n parentWorkflow: this._data.workflow_Id,\r\n workflow: this.selectedWorkflow,\r\n noOfSheets: this.revForm.get('noOfSheets')?.value ? this.revForm.get('noOfSheets')?.value : 0,\r\n dciScheduleStageDetails: this._data.dciScheduleStageDetails,\r\n comments: this.revForm.get('comments')?.value,\r\n ccnTypeDetails: this.ccnList ? this.ccnList : null,\r\n ccnType: this.ccnForm.get('CCNType')?.value.deD_Id ? this.ccnForm.get('CCNType')?.value.deD_Id : null,\r\n tagCCN: this.ccnForm.get('CCN')?.value.ccnId ? this.ccnForm.get('CCN')?.value.ccnId : null,\r\n category: this.ccnForm.get('Category')?.value.revCategoryId ? this.ccnForm.get('Category')?.value.revCategoryId : null,\r\n draftingManHours: this.ccnForm.get('formDraftingManHrs')?.value,\r\n designManHours: this.ccnForm.get('formDesignManHrs')?.value,\r\n latestStageDetails: this.LatestStageDetails.map(x => { x.scheduled_On = this._datepipe.transform(x.scheduled_On, 'dd-MMM-yyyy'), x.revisedScheduled_On = (x.revisedScheduled_On ? this._datepipe.transform(x.revisedScheduled_On, 'dd-MMM-yyyy') : null), x.minScheduled_On = (x.minScheduled_On ? this._datepipe.transform(x.minScheduled_On, 'dd-MMM-yyyy') : null), x.maxScheduled_On = (x.maxScheduled_On ? this._datepipe.transform(x.maxScheduled_On, 'dd-MMM-yyyy') : null); return x }),\r\n is_WF_Started: this._data.is_WF_Started,\r\n isCCNActive: this.IsCCNRequired,\r\n }]\r\n\r\n this.subscriptions.push(this._scheduleDocService.PostBulkDCISupersede(DCISupersedeDetails).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n\r\n if (res.length > 0) {\r\n if (res[0].status)\r\n this._notificationService.showPopup('DCI Superseded Successfully!!!', \"Success\");\r\n else\r\n this._notificationService.showPopup('Failed to Supersede DCI!!!', \"Warning\");\r\n\r\n this._dialogRef.close();\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Failed to Supersede DCI\", \"Warning\");\r\n this._dialogRef.close();\r\n }\r\n\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(err, \"Error\");\r\n this._dialogRef.close();\r\n }));\r\n }\r\n}","
\r\n
\r\n Supersede Revision Details for {{DocNo}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Document Revision\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Revision\r\n \r\n Revision is required\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Status is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Revision Category is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Print Size is required\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n No of Sheets\r\n \r\n
\r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Document Schedule\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Workflow is required\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n {{item.stage_Short_Desc}}-{{item.stage_Desc}}\r\n

\r\n

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

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Change Control Note ( CCN )\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n CCN Type is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Tag CCN is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Category is required\r\n \r\n \r\n \r\n \r\n Drafting Man Hrs\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Design Man Hrs\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n  \r\n   Cancel\r\n
\r\n
","import { DatePipe } from \"@angular/common\";\r\nimport { Component, Inject, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { IProjectElementDetailsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { IDocSetModel, IDocSetRevisionDetailsInputModel, IDocSetStageDetail, IScheduleDefinitionModel, IStageElementDetails } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\n\r\n@Component({\r\n selector: 'app-docset-revise',\r\n templateUrl: './docset-revise.component.html'\r\n})\r\nexport class DocSetReviseComponent implements OnInit {\r\n @ViewChild('docsetrevisionform',{static: true}) dciElementDetailsForm!: DynamicFormComponent;\r\n isStageConfigLoaded: boolean = false;\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n projectCode!: string;\r\n docSetStageConfig: FieldConfig[] = [];\r\n docSet: IDocSetModel;\r\n schDef: IScheduleDefinitionModel;\r\n noOfDocs: number;\r\n\r\n public docsetForm: FormGroup = new FormGroup({\r\n reason: new FormControl('', [Validators.required])\r\n })\r\n \r\n constructor(private _projInfoService: ProjectInfoService, private _commonService: CommonService, public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public _data: any,\r\n private _scheDefService: ScheduleDefinitionService, private _notificationService: NotificationService,private datepipe: DatePipe) {\r\n this.docSet = this._data.docSet;\r\n this.schDef = this._data.schDef;\r\n this.noOfDocs = this._data.noOfDocs;\r\n }\r\n ngOnInit() { \r\n this.projectId = this._commonService.getProjectId();\r\n this.projectCode = this._commonService.getProjectCode();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.noOfDocs = this.noOfDocs - this.docSet.number_Of_Docs;\r\n if (this.noOfDocs <= 0) {\r\n this.noOfDocs = 0\r\n }\r\n this.loadDynamicForm();\r\n\r\n }\r\n\r\n loadDynamicForm() {\r\n this._projInfoService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Workflow, deDescription: 'Workflow Status' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.docSetStageConfig = res.map(x => {\r\n let field: FieldConfig = {\r\n type: 'eipdaterange', de_id: x.dedId,\r\n name: x.dedShortDescription, label: x.dedDescription + \" (\" + x.dedShortDescription + \")\", \r\n rangeControlNames: [x.dedShortDescription + 'StartDate', x.dedShortDescription + 'EndDate'], \r\n value: new BehaviorSubject([]),\r\n startDate: null,\r\n endDate: null,\r\n Var: true\r\n }\r\n return field;\r\n })\r\n this.isStageConfigLoaded = true;\r\n this.getDocSetRevisionForm();\r\n })\r\n }\r\n\r\n getDocSetRevisionForm() {\r\n let dciRevisionConfig: FieldConfig[] = [];\r\n dciRevisionConfig.push(\r\n { type: \"label\", label: \"Discipline\", value: new BehaviorSubject(this.docSet.disc_Description) },\r\n { type: \"label\", label: \"Structure/Package Name\", value: new BehaviorSubject(this.docSet.structure_Description) },\r\n { type: \"label\", label: \"Document Set\", value: new BehaviorSubject(this.docSet.document_Set_Name) }\r\n );\r\n dciRevisionConfig = dciRevisionConfig.concat(this.docSetStageConfig);\r\n dciRevisionConfig.push({ type: \"label\", label: \"No of Documents\", value: new BehaviorSubject(this.docSet.number_Of_Docs) });\r\n if (this.noOfDocs > 0) {\r\n dciRevisionConfig.push({\r\n type: 'input',\r\n name: 'noOfDocsRequired',\r\n label: 'Enter DCI Count',\r\n validations: [\r\n {\r\n name: \"pattern\",\r\n validator: Validators.pattern(\"^[0-9]*$\"),\r\n message: \"Enter only numbers\"\r\n },\r\n {\r\n name: \"min\",\r\n validator: Validators.min(1),\r\n message: \"Minimum No Of Docs Required:1\"\r\n },\r\n {\r\n name: \"max\",\r\n validator: Validators.max(this.noOfDocs),\r\n message: \"Maximum No Of Docs Required:\" + (this.noOfDocs)\r\n }\r\n ]\r\n });\r\n }\r\n this.docSetStageConfig.forEach(x => {\r\n let stageDetail: any = this.getStageDetail(this._data.schDef, x);\r\n let docSetStageDetail: any;\r\n docSetStageDetail = this.getDocSetStageDetail(this._data.docSet, x);\r\n if(stageDetail){\r\n let field: any = dciRevisionConfig.find(x => x.de_id == stageDetail.stage_Id);\r\n //Range from schedule defintion\r\n field.minDate = stageDetail.start_Date;\r\n field.maxDate = stageDetail.end_Date;\r\n //Selected value from current edited document set\r\n field.value.next([docSetStageDetail.start_Date, docSetStageDetail.end_Date]);\r\n }\r\n })\r\n this.dciElementDetailsForm.fields = [];\r\n this.dciElementDetailsForm.fields = dciRevisionConfig;\r\n this.dciElementDetailsForm.createControl();\r\n }\r\n\r\n /**\r\n * Gets the particular stage element details\r\n * @param data Schedule Defintion Model Data\r\n * @param stage Stage Details\r\n * @returns Stage Element Details\r\n */\r\n getStageDetail(data: IScheduleDefinitionModel, stage: FieldConfig): IStageElementDetails|undefined {\r\n return data.stageElementDetails.find(x => x.stage_Id == stage.de_id);\r\n }\r\n\r\n /**\r\n* Gets the particular stage element details\r\n* @param data Document Set Model Data\r\n* @param stage Stage Details\r\n* @returns Stage Element Details\r\n*/\r\n getDocSetStageDetail(data: IDocSetModel, stage: FieldConfig): IStageElementDetails|undefined {\r\n return data.stageDocumentSetDetails.find(x => x.stage_Id == stage.de_id);\r\n }\r\n\r\n saveDocsetRevise() {\r\n if(this.docsetForm.invalid){\r\n this._notificationService.showToast(\"Mandatory fields are missing\", \"Warning\");\r\n this.docsetForm.get('reason')?.markAsTouched(); \r\n return;\r\n }\r\n this._scheDefService.insertDocsetRevise({ project_Id: this.projectId, group_Id: this.groupId, doc_Set_Id: this.docSet.doc_Set_Id, member_Id: this.memberId,reason : this.docsetForm.get('reason')?.value })\r\n .subscribe((x: StandardOutputModel) => {\r\n if (x.successCode == 200) {\r\n let form: FormGroup = this.dciElementDetailsForm.value;\r\n let stageDetails: IDocSetStageDetail[] = this.docSetStageConfig.map(x => {\r\n let stageDetail: IDocSetStageDetail = {\r\n stage_Id: x.de_id, start_Date:x.rangeControlNames? this.datepipe.transform(form.get(x.rangeControlNames[0])?.value, 'dd-MMM-yyyy'):null,\r\n end_Date: x.rangeControlNames ? this.datepipe.transform(form.get(x.rangeControlNames[1])?.value, 'dd-MMM-yyyy'):null\r\n };\r\n return stageDetail;\r\n })\r\n let noOfDocsRequired:number = Number(form.get('noOfDocsRequired')?.value);\r\n if (noOfDocsRequired != 0 && noOfDocsRequired <= 0) {\r\n noOfDocsRequired = this.docSet.number_Of_Docs\r\n }\r\n else{\r\n noOfDocsRequired = Number(form.get('noOfDocsRequired')?.value) + this.docSet.number_Of_Docs\r\n }\r\n let updateDocSetRevise: IDocSetRevisionDetailsInputModel = {\r\n project_Id: this.projectId, group_Id: this.groupId,\r\n member_Id: this.memberId, doc_Set_Id: this.docSet.doc_Set_Id, doc_Count: noOfDocsRequired, docSetStageDetails: stageDetails\r\n };\r\n this._scheDefService.updateDCIScheduleRevisedDocDetails(updateDocSetRevise).subscribe((y: StandardOutputModel) => {\r\n \r\n if (y.successCode == 200) {\r\n this._notificationService.showToast(y.successMessage, \"Success\");\r\n this.closeDialog();\r\n }\r\n else {\r\n this._notificationService.showToast(y.successMessage, \"Error\");\r\n }\r\n })\r\n }\r\n else { \r\n this._notificationService.showToast(x.successMessage, \"Error\");\r\n }\r\n })\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n}","
\r\n
\r\n DCI Revise\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Reason\r\n \r\n \r\n Please Enter the Reason .\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { ScheduleListComponent } from './schedule-list/schedule-list.component';\r\nimport { ScheduleDefintionComponent } from './schedule-definition/schedule-definition.component';\r\nimport { ChangeControlComponent } from './change-control/change-control.component';\r\nimport { StandardDrawingComponent } from './standard-drawing/standard-drawing.component';\r\n\r\n\r\nexport const engineeringScheduleRoutes: Routes = [\r\n { path: 'scheduledefinition', component: ScheduleDefintionComponent, data: { title: 'SCHEDULE DEFINITION', isProjectCodeRequired: true } },\r\n { path: 'schedulelist', component: ScheduleListComponent, data: { title: 'SCHEDULE DOCUMENTS', isProjectCodeRequired: true } },\r\n { path: 'changecontrol', component: ChangeControlComponent, data: { title: 'CHANGE CONTROL NOTE', isProjectCodeRequired: true } },\r\n { path: 'standard-drawing', component: StandardDrawingComponent, data: { title: 'STANDARD DRAWING', isProjectCodeRequired: true } },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(engineeringScheduleRoutes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class EngineeringScheduleRoutingModule {\r\n}\r\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren, Inject } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from \"@angular/material/dialog\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { EIPAutoCompleteComponent } from \"eipauto-complete\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { ICPCDocOutputModel, IRevisionCategory, IScheduleBulkInsertModel, IScheduleDocDetails, IScheduleDocElementDetails, IScheduleDocModel, IScheduleDocRevModel, IScheduleDocStageDetails, IScheduleMHDetails, IScheduleStageId, IScheduleType, IScheduleWFPlanDetails, IScheduleWFPlanStageDetails, IScheduleWorkflowDetails, IWBSOutputModel, IScheduleISODocUploadDetailsModel, IScheduleDocUploadStatusModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput, IProjectFeatureOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { IDocSetModel, IScheduleElementDetails, IStageElementDetails } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { EIPAutoCompleteEventModel } from \"src/app/ViewModel/EIPAutoCompleteEventModel\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { IProjectMasterViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { WorkflowTemplateModel } from \"src/app/ViewModel/WorkflowTemplateModel\";\r\nimport { BusinessGroupModel } from \"src/app/ViewModel/BusinessGroupModel\";\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { ScheduleExcelUploadComponent } from '../schedule-excel-upload/schedule-excel-upload.component';\r\n\r\ninterface IStageDates {\r\n minDate: Date,\r\n maxDate: Date,\r\n value: Date\r\n}\r\n\r\n@Component({\r\n selector: 'app-iso-dci-upload',\r\n templateUrl: './iso-dci-upload.component.html',\r\n styleUrls: ['./iso-dci-upload.component.css']\r\n})\r\nexport class ISODCIUploadComponent implements OnInit {\r\n public projectId: number = 0;\r\n public groupId: number = 0;\r\n public memberId: number = 0;\r\n public CurrentProjectDetails!: ProjectViewModel;\r\n dciForm!: FormGroup;\r\n docScheduleForm!: FormGroup;\r\n revForm!: FormGroup;\r\n panelOpenState = true;\r\n inputRequiredOptions: any[] = [{ value: true, name: \"Required\" }, { value: false, name: \"Not Required\" }];\r\n schTypeOptions: IScheduleType[] = [{ schType_Id: 1, schType_Name: \"DCI\" }];\r\n projectElements: IProjectElementsOutput[] = [];\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isAutoRevision: boolean = false;\r\n isDocSetRequired: boolean = true;\r\n isWBSIntegration: boolean = false;\r\n isAutoEnabled: boolean = true;\r\n IsDisabled: boolean = true;\r\n docSetList: IDocSetModel[] = [];\r\n docIndex: number = 0;\r\n WBSCode: string | null | undefined;\r\n wbsList: any = [];\r\n dvcodeList: any = [];\r\n JOBCode!: string;\r\n DeliverableCode: number | null | undefined;\r\n structPackEleId!: number;\r\n discEleId!: number;\r\n structSelectedDedId!: number;\r\n discSelectedDedId!: number;\r\n filteredDocSetList: IDocSetModel[] = [];\r\n selectedDocSet!: number;\r\n selectedDocSetStageDetails: IStageElementDetails[] = [];\r\n selectedDocSetStageDetailsCopy: IStageElementDetails[] = [];\r\n scheduleWFPlanStageDetails: IScheduleWFPlanStageDetails[] = [];\r\n stageDates: Map = new Map();\r\n workflowList: WorkflowTemplateModel[] = [];\r\n selectedWorkflow!: number;\r\n projBusinessGroups: BusinessGroupModel[] = [];\r\n selectedApprovalBy!: number;\r\n approverList: IProjectFeatureOutput[] = [];\r\n selectedAuthorisedBy!: number;\r\n elementsConfig: FieldConfig[] = [];\r\n numElements: Map = new Map();\r\n @ViewChild(\"docSetForm\") dynamicForm!: DynamicFormComponent;\r\n @ViewChildren(EIPAutoCompleteComponent) eipAutoCompleteComponents!: QueryList;\r\n revCategoryList: IRevisionCategory[] = [];\r\n selectedRevCategory!: number;\r\n ISOUploadedDocDetails: IScheduleISODocUploadDetailsModel[] = [];\r\n GridData: IScheduleISODocUploadDetailsModel[] = [];\r\n WTemplateStage: any = [];\r\n ProjectElementDetails!: IProjectElementDetailsOutput[];\r\n enableFullscreen = false;\r\n enableFilter = false;\r\n\r\n constructor(public dialogRef: MatDialogRef, private _notificationService: NotificationService, private commonService: CommonService, private _formBuilder: FormBuilder, private _projService: ProjectInfoService, private _scheDefService: ScheduleDefinitionService, private _scheduleDocService: ScheduleDocumentService, private _projectService: ProjectMasterService, private _commonService: CommonService, private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public _data: IScheduleISODocUploadDetailsModel[], private loaderService: LoaderService) {\r\n this.createDCIForm();\r\n }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.CurrentProjectDetails = this.commonService.getCurrentProjectDetails();\r\n\r\n this.GridData = this._data;\r\n this.ISOUploadedDocDetails = JSON.parse(JSON.stringify(this.GridData))\r\n\r\n this.getProjectStaticElements();\r\n this.GetProjectElementDetails();\r\n this.copyGeneralDetails();\r\n this.getStructureDiscElementId();\r\n this.getDynamicForm();\r\n this.getApproverList();\r\n this.getProjectBusinessGroups();\r\n this.getWorkflowDetails();\r\n this.getRevisionCategories();\r\n this.dciForm.get('inputRequired')?.setValue(this.inputRequiredOptions[1]);\r\n this.dciForm.get('schType')?.setValue(this.schTypeOptions[0]);\r\n this.getWBSCodes();\r\n }\r\n\r\n\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n GetProjectElementDetails() {\r\n this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument })\r\n .subscribe(async (res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n this.ProjectElementDetails = res;\r\n await this.ISOUploadedDocDetails.forEach(async x => {\r\n this.getElementDetails(\"Print Size\", x);\r\n this.getElementDetails(\"Status\", x);\r\n });\r\n await this.ISOUploadedDocDetails.map(t => { return t.status = (t.errors && t.errors.length == 0) });\r\n this.GridData.map(itm => { return itm.errors = this.ISOUploadedDocDetails.find((item) => (item.rowNo == itm.rowNo))?.errors, itm.status = this.ISOUploadedDocDetails.find((item) => (item.rowNo == itm.rowNo))?.status });\r\n }\r\n }, (err: any) => { });\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n numberOnly(event: { which: any; keyCode: any; }, field: string): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (['weightage', 'enggMH', 'draftMH'].includes(field)) {\r\n if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n getRevisionCategories() {\r\n this.revCategoryList = [{ revCategoryId: 1, revCategory: 'Minor' }, { revCategoryId: 2, revCategory: 'Major' }, { revCategoryId: 3, revCategory: 'First Release' }];\r\n let revisionCategory: IRevisionCategory = this.dciForm.get('revCategory')?.value;\r\n if (!!revisionCategory) {\r\n this.selectedRevCategory = revisionCategory.revCategoryId;\r\n this.setFormValue(this.revForm, \"formrevCategory\", revisionCategory.revCategory);\r\n }\r\n }\r\n\r\n /**\r\n * Get ApproverList\r\n */\r\n public getApproverList() {\r\n this._projService.getProjectFeatureWiseMembers({ projectId: this.projectId, groupId: this.groupId, featureDescription: 'Approve' })\r\n .subscribe((res: IProjectFeatureOutput[]) => {\r\n this.approverList = res;\r\n let approver: IProjectFeatureOutput = this.revForm.get('authorisedBy')?.value;\r\n if (!!approver) {\r\n this.selectedAuthorisedBy = approver.memberId;\r\n this.setFormValue(this.revForm, \"formAuthorisedBy\", this.selectedAuthorisedBy);\r\n }\r\n }, (err: any) => { });\r\n }\r\n\r\n /**\r\n * Load document set list\r\n */\r\n getDocSetList() {\r\n this._scheDefService.getDocSetList({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: IDocSetModel[]) => {\r\n this.docSetList = res;\r\n });\r\n }\r\n\r\n private getStructureDiscElementId() {\r\n this._projService.getProjectElementIdByDescription('Structure / Package').subscribe((x: any) => {\r\n this.structPackEleId = x.deId;\r\n });\r\n this._projService.getProjectElementIdByDescription('Discipline').subscribe((x: any) => {\r\n this.discEleId = x.deId;\r\n });\r\n }\r\n\r\n setFormValue(form: FormGroup, formControlName: string, value: any) {\r\n form.get(formControlName)?.setValue(value);\r\n }\r\n\r\n private filterDocSet(elementDetail: IProjectElementDetailsOutput) {\r\n if (elementDetail.deId == this.structPackEleId)\r\n this.structSelectedDedId = elementDetail.dedId;\r\n else if (elementDetail.deId == this.discEleId)\r\n this.discSelectedDedId = elementDetail.dedId;\r\n //reset the last selected document set\r\n this.selectedDocSetStageDetails = [];\r\n this.selectedDocSetStageDetailsCopy = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.filteredDocSetList = this.docSetList.filter(ds => ds.structure_DED_Id == this.structSelectedDedId &&\r\n ds.disc_DED_Id == this.discSelectedDedId);\r\n //if (!!this.sourceDciComponent) {\r\n let docSet: IDocSetModel = this.docScheduleForm.get('docSet')?.value;\r\n if (!!docSet) {\r\n if (docSet.doc_Set_Id)\r\n this.selectedDocSet = docSet.doc_Set_Id;\r\n this.setFormValue(this.docScheduleForm, \"formDocSet\", this.selectedDocSet);\r\n // }\r\n }\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let revElement: IProjectElementsOutput[] = this.projectStaticElements.filter(x => x.elementDescription == \"Auto Revision\");\r\n if (revElement.length > 0) {\r\n this.isAutoRevision = revElement[0].isDefaultSelect;\r\n }\r\n let isDocSetRequiredElement = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequiredElement) {\r\n this.isDocSetRequired = isDocSetRequiredElement.isMandatory;\r\n if (!this.isDocSetRequired) {\r\n this.IsDisabled = false;\r\n }\r\n }\r\n\r\n let isWBSIntegrationElement = this.projectStaticElements.filter(x => x.elementDescription == \"WBS Integration\")[0];\r\n if (!!isWBSIntegrationElement) {\r\n this.isWBSIntegration = isWBSIntegrationElement.isMandatory;\r\n }\r\n }\r\n }, (x: any) => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n if (this.isDocSetRequired)\r\n this.getDocSetList();\r\n }\r\n\r\n\r\n /**\r\n * Get Project business groups\r\n */\r\n getProjectBusinessGroups() {\r\n this._commonService.getProjectBusinessGroups(this._commonService.getProjectId()).subscribe((res: any) => {\r\n this.projBusinessGroups = res.filter((x: any) => x.is_Active);\r\n let businessGroup: BusinessGroupModel = this.docScheduleForm.get('approvalBy')?.value;\r\n if (!!businessGroup) {\r\n this.selectedApprovalBy = businessGroup.group_Id;\r\n this.setFormValue(this.docScheduleForm, \"formApprovalBy\", this.selectedApprovalBy);\r\n }\r\n });\r\n }\r\n\r\n getWorkflowDetails() {\r\n this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x;\r\n let workflow: WorkflowTemplateModel = this.docScheduleForm.get('workflow')?.value;\r\n if (!!workflow) {\r\n this.selectedWorkflow = workflow.workflowId;\r\n this.setFormValue(this.docScheduleForm, \"formWorkflow\", this.selectedWorkflow);\r\n }\r\n })\r\n }\r\n\r\n createDCIForm() {\r\n this.dciForm = this._formBuilder.group({\r\n dciSerialNo: new FormControl({ value: '', disabled: true }),\r\n dciSemiNo: new FormControl({ value: '', disabled: true }),\r\n isConfidential: new FormControl(false),\r\n printSize: new FormControl(''),\r\n formPrintSize: new FormControl(''),\r\n title: new FormControl(''),\r\n enggManhours: new FormControl('', [Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")]),\r\n draftingManHours: new FormControl('', [Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")]),\r\n weightage: new FormControl('', Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")),\r\n inputRequired: new FormControl('Required'),\r\n schType: new FormControl('DCI'),\r\n wbsCode: new FormControl(),\r\n dvCode: new FormControl()\r\n\r\n });\r\n this.docScheduleForm = this._formBuilder.group({\r\n approvalBy: new FormControl('', Validators.required),\r\n formApprovalBy: new FormControl('', Validators.required),\r\n workflow: new FormControl('', Validators.required),\r\n formWorkflow: new FormControl('', Validators.required),\r\n docSet: new FormControl('', Validators.required),\r\n formDocSet: new FormControl('', Validators.required),\r\n comments: new FormControl()\r\n });\r\n this.revForm = this._formBuilder.group({\r\n dciStatus: new FormControl(''),\r\n formDciStatus: new FormControl(''),\r\n revision: new FormControl({ value: '', disabled: true }),\r\n authorisedBy: new FormControl('', [Validators.required]),\r\n formAuthorisedBy: new FormControl('', [Validators.required]),\r\n qrCodeTag: new FormControl(true),\r\n reference: new FormControl(),\r\n noOfSheets: new FormControl(),\r\n revCategory: new FormControl('', Validators.required),\r\n formrevCategory: new FormControl('', Validators.required),\r\n });\r\n }\r\n\r\n getDynamicForm() {\r\n this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n\r\n\r\n this.elementsConfig = res.filter(s => { return s.isNumbering == false }).map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n }\r\n if (x.isMandatory) {\r\n field.validations = [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: field.name + \" Required\"\r\n }\r\n ]\r\n }\r\n if (x.isNumbering) {\r\n this.numElements.set(x.elementDescription, '');\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n this.buildScheduleDocumentNumber();\r\n this.onCascadingAutocomplete_Change();\r\n this.loadWorkflowStages();\r\n this.copyElementDetailsFromSource();\r\n });\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach(data => {\r\n if (!!data.child_de_id && data.deDescription) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe((x: any) => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n if (data.deDescription) {\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n else {\r\n _field[0].values = [];\r\n }\r\n }, (err: any) => { });\r\n }\r\n else {\r\n _field[0].values = [];\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n private async loadWorkflowStages() {\r\n this.docScheduleForm.get('workflow')?.valueChanges.subscribe(async (res: WorkflowTemplateModel) => {\r\n if (!!res) {\r\n await this._scheduleDocService.GetWorkflowStageDetails({ project_Id: res.projectId, workflow_Id: res.workflowId }).toPromise().then((stages: IStageElementDetails[]) => {\r\n this.selectedDocSetStageDetails = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.selectedDocSetStageDetails = stages.filter(x => x.is_Active == true);\r\n //stage_Short_Description\r\n this.selectedDocSetStageDetails.forEach(x => {\r\n let stageDate: IStageDates = { minDate: new Date(x.start_Date), maxDate: new Date(x.end_Date), value: new Date(x.end_Date) };\r\n if (x.stage_Id)\r\n this.stageDates.set(x.stage_Id.toString(), stageDate);\r\n\r\n });\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails;\r\n })\r\n }\r\n })\r\n }\r\n\r\n private copyElementDetailsFromSource() {\r\n let sourceProjElementForm: FormGroup = this.dynamicForm.value;\r\n this.projectElements.filter(s => { return s.isNumbering == false }).forEach(x => {\r\n let selectedValue: IProjectElementDetailsOutput = sourceProjElementForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let field: any = this.elementsConfig.find(ele => ele.de_id == selectedValue.deId && ele.deDescription == selectedValue.deDescription);\r\n if (!!field) {\r\n field.value.next(selectedValue.dedId);\r\n }\r\n }\r\n })\r\n }\r\n\r\n private subscribeDiscStructureChanges() {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let structDiscFields: FieldConfig[] = this.elementsConfig.filter(x => x.de_id == this.discEleId || x.de_id == this.structPackEleId);\r\n structDiscFields.forEach(element => {\r\n if (element.deDescription)\r\n resForm.get(element.deDescription)?.valueChanges.subscribe((x: IProjectElementDetailsOutput) => {\r\n if (!!x)\r\n this.filterDocSet(x);\r\n })\r\n })\r\n }\r\n\r\n private loadStages() {\r\n this.docScheduleForm.get('docSet')?.valueChanges.subscribe((res: IDocSetModel) => {\r\n if (!!res) {\r\n //reset the last selected document set\r\n this.selectedDocSetStageDetails = [];\r\n this.selectedDocSetStageDetailsCopy = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails = res.stageDocumentSetDetails.filter(x => x.end_Date != null);\r\n\r\n if (this.WTemplateStage && this.WTemplateStage.length > 0) {\r\n let obj: IStageElementDetails[] = [];\r\n this.selectedDocSetStageDetails.forEach((val, index) => {\r\n if (this.WTemplateStage.some((x: number | undefined) => x == val.stage_Id))\r\n obj.push(val)\r\n });\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails = obj;\r\n this.revForm.get('revision')?.setValue('');\r\n if (this.selectedDocSetStageDetails && this.selectedDocSetStageDetails.length < 1)\r\n this._notificationService.showToast(\"Some mismatch in between the selected workflow and document set, please check corresponding configuration.\", \"Warning\");\r\n }\r\n\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n this.scheduleWFPlanStageDetails.forEach(x => {\r\n let stageDetail = this.selectedDocSetStageDetails.filter(y => y.stage_Id == x.status_Id)[0];\r\n if (!!stageDetail) {\r\n stageDetail.checked = true;\r\n this.scheduleWFPlanStageDetails.push({ sort_By: x.sort_By, status_Id: x.status_Id, scheduled_On: x.scheduled_On });\r\n }\r\n })\r\n }\r\n this.selectedDocSetStageDetails.forEach(x => {\r\n if (x.end_Date != null) {\r\n let stageDate: IStageDates = {\r\n minDate: new Date(x.start_Date),\r\n maxDate: new Date(x.end_Date),\r\n value: new Date(x.end_Date)\r\n };\r\n if (x.stage_Id)\r\n this.stageDates.set(x.stage_Id.toString(), stageDate);\r\n\r\n }\r\n });\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails;\r\n }\r\n })\r\n }\r\n\r\n private buildScheduleDocumentNumber() {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n //Numbering elements array\r\n let numberingElements: string[] = Array.from(this.numElements.keys());\r\n numberingElements.forEach(element => {\r\n resForm.get(element)?.valueChanges.subscribe((x: IProjectElementDetailsOutput) => {\r\n\r\n if (this.numElements.has(element)) {\r\n if (!!x) {\r\n this.numElements.set(element, x.dedShortDescription);\r\n }\r\n else {\r\n this.numElements.set(element, '');\r\n }\r\n }\r\n if (this.isDocSetRequired && !!x) {\r\n if (x.deId == this.structPackEleId || x.deId == this.discEleId)\r\n this.filterDocSet(x);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private copyGeneralDetails() {\r\n let sourceDciForm: FormGroup = this.dciForm;\r\n let sourceRevForm: FormGroup = this.revForm;\r\n let sourceDocScheduleForm: FormGroup = this.docScheduleForm;\r\n\r\n let enggManHours: number = sourceDciForm.get('enggManhours')?.value;\r\n if (!!enggManHours)\r\n this.dciForm.get('enggManhours')?.setValue(enggManHours);\r\n\r\n let draftingManHours: number = sourceDciForm.get('draftingManHours')?.value;\r\n if (!!draftingManHours)\r\n this.dciForm.get('draftingManHours')?.setValue(draftingManHours);\r\n\r\n let weightage: number = sourceDciForm.get('weightage')?.value;\r\n if (!!weightage)\r\n this.dciForm.get('weightage')?.setValue(weightage);\r\n\r\n let isConfidential: boolean = sourceDciForm.get('isConfidential')?.value;\r\n this.dciForm.get('isConfidential')?.setValue(isConfidential);\r\n\r\n let revision: string = sourceRevForm.get('revision')?.value;\r\n if (!!revision)\r\n this.revForm.get('revision')?.setValue(revision);\r\n\r\n let reference: string = sourceRevForm.get('reference')?.value;\r\n if (!!reference)\r\n this.revForm.get('reference')?.setValue(reference);\r\n\r\n let noOfSheets: number = sourceRevForm.get('noOfSheets')?.value;\r\n if (!!noOfSheets)\r\n this.revForm.get('noOfSheets')?.setValue(noOfSheets);\r\n\r\n let qrCodeTag: boolean = sourceRevForm.get('qrCodeTag')?.value;\r\n this.revForm.get('qrCodeTag')?.setValue(qrCodeTag);\r\n\r\n let comments: string = sourceDocScheduleForm.get('comments')?.value;\r\n if (!!comments)\r\n this.docScheduleForm.get('comments')?.setValue(comments);\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"docScheduleForm\":\r\n this.docScheduleForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"dciForm\":\r\n this.dciForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"revForm\":\r\n this.revForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n if (formControlName == 'workflow') {\r\n if (val.additionalValues.additionalValues && val.additionalValues.additionalValues.sub_Workflow) {\r\n this.WTemplateStage = val.additionalValues.additionalValues.sub_Workflow.split(',');\r\n this.stageload();\r\n } else {\r\n this.WTemplateStage = [];\r\n }\r\n }\r\n }\r\n\r\n collapseAllClick() {\r\n this.panelOpenState = !this.panelOpenState;\r\n }\r\n\r\n getWBSCodes() {\r\n this._projectService.getProjects(this.projectId, this.memberId).subscribe((data: IProjectMasterViewModel[]) => {\r\n this.JOBCode = data[0].job_Code;\r\n this._scheduleDocService.GetWBSCodes({ job_Code: this.JOBCode })\r\n .subscribe((res: any) => {\r\n this.wbsList = res;\r\n });\r\n });\r\n }\r\n\r\n setWBSCode(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.dciForm.get('wbsCode')?.setValue(event.value);\r\n this.dciForm.get('wbsCode')?.setValue(event.text);\r\n this.WBSCode = event.value.toString();\r\n if (!!this.WBSCode) {\r\n this._scheduleDocService.GetDeliverableCodes({ job_Code: this.JOBCode, wBS_Code: this.WBSCode })\r\n .subscribe((res: any) => {\r\n this.dvcodeList = res;\r\n });\r\n }\r\n }\r\n else {\r\n this.dciForm.get('wbsCode')?.setValue(null);\r\n this.dvcodeList = [];\r\n this.WBSCode = null;\r\n this.DeliverableCode = null;\r\n }\r\n }\r\n\r\n setDVCode(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.dciForm.get('dvCode')?.setValue(event.value);\r\n this.dciForm.get('dvCode')?.setValue(event.text);\r\n this.DeliverableCode = +event.value\r\n }\r\n else {\r\n this.dciForm.get('dvCode')?.setValue(null);\r\n this.DeliverableCode = null\r\n }\r\n }\r\n\r\n stageload() {\r\n if (this.selectedDocSetStageDetailsCopy && this.selectedDocSetStageDetailsCopy.length && this.WTemplateStage && this.WTemplateStage.length > 0) {\r\n let obj: IStageElementDetails[] = [];\r\n this.selectedDocSetStageDetailsCopy.forEach((val, index) => {\r\n if (this.WTemplateStage.some((x: number | undefined) => x == val.stage_Id)) {\r\n val.checked = false;\r\n obj.push(val)\r\n }\r\n });\r\n\r\n this.selectedDocSetStageDetails = obj;\r\n this.revForm.get('revision')?.setValue('');\r\n if (this.selectedDocSetStageDetails && this.selectedDocSetStageDetails.length < 1)\r\n this._notificationService.showToast(\"Some mismatch in between the selected workflow and document set, please check corresponding configuration.\", \"Warning\");\r\n }\r\n }\r\n\r\n onStageChange(event: any, stageEleDetail: IStageElementDetails) {\r\n if (event.checked) {\r\n let selDate: any = stageEleDetail.selected_Date;\r\n if (selDate == null)\r\n selDate = stageEleDetail.end_Date;\r\n this.scheduleWFPlanStageDetails.push({ sort_By: stageEleDetail.sort_By, status_Id: stageEleDetail.stage_Id, scheduled_On: selDate });\r\n }\r\n else {\r\n let schWfpStageDetails: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.filter(x => x.status_Id == stageEleDetail.stage_Id)[0];\r\n if (!!this.scheduleWFPlanStageDetails) {\r\n let index: number = this.scheduleWFPlanStageDetails.indexOf(schWfpStageDetails);\r\n if (index > -1)\r\n this.scheduleWFPlanStageDetails.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get Element Details (Print Size,Doc Status)\r\n */\r\n private getElementDetails(elementName: string, w: IScheduleISODocUploadDetailsModel): string {\r\n let result!: string;\r\n switch (elementName) {\r\n case \"Print Size\":\r\n if (this.ProjectElementDetails.filter(d => { return d.deDescription == elementName && d.dedDescription.trim() == w.printSize.trim() }).length <= 0)\r\n w.errors?.push(\"Invalid Print Size\")\r\n else\r\n w.printSize = this.ProjectElementDetails.filter(d => { return d.deDescription == elementName && d.dedDescription.trim() == w.printSize.trim() }).map(h => { return h.dedId })[0].toString();\r\n\r\n result = w.printSize;\r\n break;\r\n case \"Status\":\r\n\r\n if (this.ProjectElementDetails.filter(d => { return d.deDescription == elementName && d.dedShortDescription.trim() == w.category.trim() }).length <= 0)\r\n w.errors?.push(\"Invalid Status\")\r\n else\r\n w.category = this.ProjectElementDetails.filter(d => { return d.deDescription == elementName && d.dedShortDescription.trim() == w.category.trim() }).map(h => { return h.dedId })[0].toString();\r\n\r\n result = w.category;\r\n\r\n break;\r\n default:\r\n if (this.projectElements.filter(s => s.elementDescription == elementName).map(h => { return h.isNumbering })[0]) {\r\n let ded_value = w.docNo.split('-')[this.projectElements.filter(s => s.elementDescription == elementName).map(h => { return h.sortBy })[0] - 1];\r\n\r\n if (this.ProjectElementDetails.filter(d => { return d.deDescription == elementName && d.dedShortDescription.trim() == ded_value.trim() }).length <= 0)\r\n w.errors?.push(\"Invalid \" + elementName);\r\n else\r\n result = this.ProjectElementDetails.filter(d => { return d.deDescription == elementName && d.dedShortDescription.trim() == ded_value.trim() }).map(h => { return h.dedId })[0].toString()\r\n }\r\n else {\r\n\r\n }\r\n\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n private getScheduleDocRevision(x: IScheduleISODocUploadDetailsModel): IScheduleDocRevModel {\r\n let scheduleDocRevInput: IScheduleDocRevModel = {\r\n docId: x.rowNo,\r\n revisionNo: x.revisionNo,\r\n docStatus: (typeof x.category != 'undefined' && x.category) ? (+x.category) : 0,\r\n isConfidential: this.getFormValue(this.dciForm, \"isConfidential\"),\r\n printSize: (typeof x.printSize != 'undefined' && x.printSize) ? +x.printSize : 0,\r\n docAuthorizedBy: this.getFormValue(this.revForm, \"authorisedBy\").memberId,\r\n revisionCategory: this.getFormValue(this.revForm, \"revCategory\").revCategoryId,\r\n qrCodeStatus: this.getFormValue(this.revForm, \"qrCodeTag\"),\r\n comments: x.comments,\r\n reference: this.getFormValue(this.revForm, \"reference\"),\r\n noOfSheets: (typeof x.noOfSheets != 'undefined' && x.noOfSheets) ? +x.noOfSheets : 0,\r\n revisionType: 0,\r\n docCreatedBy: this.memberId,\r\n createdBy: this.memberId,\r\n isActive: true\r\n }\r\n return scheduleDocRevInput;\r\n }\r\n\r\n private getScheduleDocEleDetails(w: IScheduleISODocUploadDetailsModel): IScheduleElementDetails {\r\n let scheduleDocEleDetails: IScheduleDocElementDetails[] = [];\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.projectElements.map(async x => {\r\n let result: IScheduleDocElementDetails;\r\n if (!x.isNumbering) {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n result = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n userId: this.memberId,\r\n isActive: true,\r\n docId: w.rowNo\r\n }\r\n scheduleDocEleDetails.push(result);\r\n }\r\n else {\r\n result = {\r\n deId: x.elementId,\r\n dedId: parseInt((this.getElementDetails(x.elementDescription, w))) ? +this.getElementDetails(x.elementDescription, w) : 0,\r\n userId: this.memberId,\r\n isActive: true,\r\n docId: w.rowNo\r\n }\r\n scheduleDocEleDetails.push(result);\r\n }\r\n });\r\n let elmentDetails: IScheduleElementDetails = { elementDetailsMapping: scheduleDocEleDetails };\r\n return elmentDetails;\r\n }\r\n\r\n private getScheduleDocWFPlanDetails(x: IScheduleISODocUploadDetailsModel): IScheduleWFPlanDetails {\r\n let schWFPlandetails: IScheduleWFPlanDetails = {\r\n doc_Id: x.rowNo,\r\n revision_No: x.revisionNo,\r\n docScheduleWFPlanDetails: this.scheduleWFPlanStageDetails,\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n schWFPlandetails.docScheduleWFPlanDetails.map(k => k.scheduled_On = x.scheduled_On.toString());\r\n return schWFPlandetails;\r\n }\r\n\r\n private getScheduleRevStageDetails(x: IScheduleISODocUploadDetailsModel): IScheduleDocStageDetails {\r\n let schDocStageDetails: IScheduleDocStageDetails = {\r\n doc_Id: x.rowNo,\r\n revision_No: x.revisionNo,\r\n docScheduleStageDetails: this.scheduleWFPlanStageDetails.map(x => {\r\n let stage: IScheduleStageId = {\r\n stage_Id: x.status_Id\r\n }\r\n return stage;\r\n }),\r\n stage_Id: this.scheduleWFPlanStageDetails.sort((a, b) => a.sort_By - b.sort_By)[0].status_Id,\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return schDocStageDetails;\r\n }\r\n\r\n private getScheduleMHDetails(x: IScheduleISODocUploadDetailsModel): IScheduleMHDetails {\r\n let eManHours: any = this.getFormValue(this.dciForm, \"enggManhours\");\r\n let dManHours: any = this.getFormValue(this.dciForm, \"draftingManHours\");\r\n let weightage: any = this.getFormValue(this.dciForm, \"weightage\");\r\n\r\n let schDocMHDetails: IScheduleMHDetails = {\r\n doc_Id: x.rowNo,\r\n e_Man_Hours: !!eManHours ? eManHours : 0,\r\n d_Man_Hours: !!dManHours ? dManHours : 0,\r\n weightage: !!weightage ? weightage : 0,\r\n userId: this.memberId,\r\n is_Active: true\r\n }\r\n return schDocMHDetails;\r\n }\r\n\r\n private getScheduleDocDetails(x: IScheduleISODocUploadDetailsModel): IScheduleDocDetails {\r\n let schDocDetails: IScheduleDocDetails = {\r\n doc_Id: x.rowNo,\r\n from_Group_Id: this.groupId,\r\n to_Group_Id: this.getFormValue(this.docScheduleForm, \"approvalBy\").group_Id,\r\n revision_No: x.revisionNo,\r\n schedule_Type: this.getFormValue(this.dciForm, \"schType\").schType_Id,\r\n is_Input_Required: this.getFormValue(this.dciForm, \"inputRequired\").value,\r\n userId: this.memberId,\r\n is_Active: true\r\n }\r\n return schDocDetails;\r\n }\r\n\r\n private getScheduleDocWorkflowDetails(x: IScheduleISODocUploadDetailsModel): IScheduleWorkflowDetails {\r\n let schDocWorkflowDetails: IScheduleWorkflowDetails = {\r\n doc_Id: x.rowNo,\r\n userId: this.memberId,\r\n is_Active: true,\r\n workflow_Id: this.getFormValue(this.docScheduleForm, \"workflow\").workflowId,\r\n revision_No: x.revisionNo\r\n }\r\n return schDocWorkflowDetails;\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n async saveScheduleDoc() {\r\n this.saveDocument().then((res: IScheduleDocUploadStatusModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n let dialogRef = this.dialog.open(ScheduleExcelUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: res,\r\n });\r\n this.closeDialog();\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n })\r\n }\r\n\r\n /**\r\n * Save DCI Document\r\n */\r\n async saveDocument(): Promise {\r\n\r\n let result: IScheduleDocUploadStatusModel[] = [];\r\n\r\n if (!this.isDocSetRequired) {\r\n this.docScheduleForm.get('docSet')?.clearValidators();\r\n this.docScheduleForm.get('docSet')?.updateValueAndValidity();\r\n this.docScheduleForm.get('formDocSet')?.clearValidators();\r\n this.docScheduleForm.get('formDocSet')?.updateValueAndValidity();\r\n }\r\n\r\n\r\n\r\n if (!!this.isWBSIntegration) {\r\n if (!!this.WBSCode) {\r\n if (!!this.DeliverableCode) {\r\n\r\n } else {\r\n this._notificationService.showPopup(\"Kindly select Deliverable Code\", \"Warning\");\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n if (this.scheduleWFPlanStageDetails && this.scheduleWFPlanStageDetails.length <= 0) {\r\n this._notificationService.showPopup(\"Kindly select atleast one WorkFlow Stage\", \"Warning\");\r\n return result;\r\n }\r\n\r\n if (this.dynamicForm.form.valid && this.dciForm.valid && this.revForm.valid && this.docScheduleForm.valid) {\r\n\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n\r\n var listIScheduleBulkInsertModel: IScheduleBulkInsertModel[] = [];\r\n\r\n await this.ISOUploadedDocDetails.forEach(async x => {\r\n if (x.status) {\r\n let docNo: string = x.docNo;\r\n\r\n let scheduleDocInput: IScheduleDocModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n rowNo: x.rowNo,\r\n docNo: docNo,\r\n docSerialNo: null,\r\n docTitle: x.docTitle,\r\n userId: this.memberId,\r\n module: Module.ScheduleDocument\r\n };\r\n let docSet: IDocSetModel = this.getFormValue(this.docScheduleForm, \"docSet\");\r\n if (!!docSet)\r\n\r\n scheduleDocInput.docSetId = docSet.doc_Set_Id;\r\n\r\n let schBulkInsertModel: IScheduleBulkInsertModel = await {\r\n isStandardDrawingDocument: false,\r\n dciMasterDetails: scheduleDocInput,\r\n dciRevDetails: this.getScheduleDocRevision(x),\r\n dciSchDetails: this.getScheduleDocDetails(x),\r\n dciElementDetails: this.getScheduleDocEleDetails(x),\r\n dciDocScheduleWFPlanDetails: this.getScheduleDocWFPlanDetails(x),\r\n dciDocSchMHDetails: this.getScheduleMHDetails(x),\r\n dciDocSchStageDetails: this.getScheduleRevStageDetails(x),\r\n dciDocSchWorkflowDetails: this.getScheduleDocWorkflowDetails(x)\r\n }\r\n x.status = (x.errors?.length == 0);\r\n if (x.status)\r\n listIScheduleBulkInsertModel.push(schBulkInsertModel);\r\n else {\r\n let docerror: IScheduleDocUploadStatusModel = {\r\n rowNo: x.rowNo,\r\n docNo: x.docNo,\r\n revisionNo: x.revisionNo,\r\n errors: x.errors,\r\n status: x.status\r\n }\r\n result.push(docerror);\r\n }\r\n }\r\n else {\r\n let docerrors: IScheduleDocUploadStatusModel = {\r\n rowNo: x.rowNo,\r\n docNo: x.docNo,\r\n revisionNo: x.revisionNo,\r\n errors: x.errors,\r\n status: x.status\r\n }\r\n result.push(docerrors);\r\n }\r\n });\r\n\r\n let tempresult = await this._scheduleDocService.InsertBulkISODCIDocuments(listIScheduleBulkInsertModel).toPromise().then((res: any) => {\r\n if (res.length > 0)\r\n result.push.apply(result, res);\r\n })\r\n\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Kindly select atleast one WorkFlow Stage\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.dciForm);\r\n this.formMarkAsTouched(this.revForm);\r\n this.formMarkAsTouched(this.docScheduleForm);\r\n this._notificationService.showPopup(\"Kindly fill All Mandatory fields\", \"Warning\");\r\n }\r\n\r\n return result;\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

ISO DCI Upload

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Documents | Master Detail \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Schedule Type   \r\n \r\n \r\n {{item.schType_Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Engg Manhours\r\n \r\n \r\n Enter only numbers\r\n \r\n \r\n
\r\n \r\n \r\n Drafting Manhours\r\n \r\n \r\n Enter only numbers\r\n \r\n \r\n \r\n \r\n \r\n Weightage\r\n \r\n \r\n Enter only numbers\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Documents Schedule\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Approval by is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Workflow is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Document Set is required\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{item.stage_Short_Description}}-{{item.stage_Description}}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Documents Revision\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Revision Category is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Authorised by is required\r\n \r\n \r\n \r\n \r\n QR Code Tag\r\n Active\r\n \r\n \r\n       \r\n Document Properties (Opt)\r\n Confidential\r\n \r\n  \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Reference \r\n \r\n
\r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Uploaded DCI from ISO Excel

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.scheduled_On | date: 'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.status ? 'Valid' : 'Invalid' }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n   Cancel\r\n
\r\n
","import { DatePipe } from \"@angular/common\";\r\nimport { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChild, ViewChildren, OnDestroy } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { EIPAutoCompleteComponent } from \"eipauto-complete\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { DocumentRevisionLinkService } from \"src/app/Service/document-revision-link/document-revision-link.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { BusinessGroupModel } from \"src/app/ViewModel/BusinessGroupModel\";\r\nimport { IDocSLNoInputModel, IElementInputModel } from \"src/app/ViewModel/DocumentModel\";\r\nimport { IDCIRevisionMaster, IProjectElementDetailsOutput, IProjectElementsOutput, IProjectFeatureOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { IDocSetModel, IScheduleElementDetails, IStageElementDetails } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { ICPCDocOutputModel, ICPCInputModel, IRevisionCategory, IScheduleBulkInsertModel, IScheduleDocDetails, IScheduleDocElementDetails, IScheduleDocModel, IScheduleDocRevModel, IScheduleDocStageDetails, IScheduleMHDetails, IScheduleStageId, IScheduleType, IScheduleWFPlanDetails, IScheduleWFPlanStageDetails, IScheduleWorkflowDetails, IWBSOutputModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { WorkflowTemplateModel } from \"src/app/ViewModel/WorkflowTemplateModel\";\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { IProjectMasterViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { EIPAutoCompleteEventModel } from \"src/app/ViewModel/EIPAutoCompleteEventModel\";\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nexport enum FileUploadLibrary {\r\n WorkflowDocument = 1,\r\n Documents = 2,\r\n CCNDocuments = 3,\r\n Communication = 4,\r\n SignedDocuments = 5\r\n}\r\n\r\ninterface IStageDates {\r\n minDate: Date,\r\n maxDate: Date,\r\n value: Date\r\n}\r\n@Component({\r\n selector: 'app-schedule-creation',\r\n templateUrl: './schedule-creation.component.html',\r\n styleUrls: ['./schedule-creation.component.css']\r\n})\r\nexport class ScheduleCreationComponent implements OnInit, OnDestroy {\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n @Input() docIndex: number = 0;\r\n private _numFormat: string = 'Auto';\r\n get numFormat(): string {\r\n return this._numFormat;\r\n }\r\n @Input() set numFormat(val: string) {\r\n this._numFormat = val;\r\n if (val == 'Auto' || val == 'Manual')\r\n this.readonly = true;\r\n else {\r\n this.readonly = false;\r\n }\r\n this.enableDisableSerialNo(true);\r\n }\r\n @Input() readonly!: boolean;\r\n @Input() isStdDCI!: boolean;\r\n @Input() autoSerialNoMap: Map = new Map();\r\n @Input() sourceDciComponent!: ScheduleCreationComponent;\r\n @Output() getDocumentSerialNo = new EventEmitter();\r\n clickButton = true;\r\n panelOpenState = true;\r\n projectElements: IProjectElementsOutput[] = [];\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isAutoRevision: boolean = false;\r\n isDocSetRequired: IProjectElementsOutput;\r\n isWBSIntegration: boolean = false;\r\n SetDCIMaxProgressLevel: IProjectElementsOutput;\r\n setDocSetRequiredElement: IProjectElementsOutput;\r\n isAutoEnabled: boolean = true;\r\n elementsConfig: FieldConfig[] = [];\r\n numElements: Map = new Map();\r\n elementInp?: IElementInputModel[] = [];\r\n //inputRequiredOptions: any[] = [{ value: true, name: \"Required\" }, { value: false, name: \"Not Required\" }];\r\n schTypeOptions: IScheduleType[] = [{ schType_Id: 1, schType_Name: \"DCI\" }, { schType_Id: 2, schType_Name: \"Ext DCI\" }, { schType_Id: 3, schType_Name: \"Std DCI\" }, { schType_Id: 4, schType_Name: \"Vendor DCI\" }];\r\n projBusinessGroups: BusinessGroupModel[] = [];\r\n selectedApprovalBy!: number;\r\n revCategoryList: IRevisionCategory[] = [];\r\n selectedRevCategory!: number;\r\n workflowList: WorkflowTemplateModel[] = [];\r\n selectedWorkflow!: number;\r\n docSetList: IDocSetModel[] = [];\r\n filteredDocSetList: IDocSetModel[] = [];\r\n selectedDocSet?: number;\r\n selectedDocSetStageDetails: IStageElementDetails[] = [];\r\n selectedDocSetStageDetailsCopy: IStageElementDetails[] = [];\r\n IsDisabled: boolean = true;\r\n stageDates: Map = new Map();\r\n @ViewChild(\"docSetForm\")\r\n dynamicForm!: DynamicFormComponent;\r\n @ViewChildren(EIPAutoCompleteComponent)\r\n eipAutoCompleteComponents!: QueryList;\r\n dciForm!: FormGroup;\r\n docScheduleForm!: FormGroup;\r\n revForm!: FormGroup;\r\n dciSerialNo?: number | null;\r\n printSizeList: IProjectElementDetailsOutput[] = [];\r\n selectedPrintSize!: number;\r\n dciStatusList: IProjectElementDetailsOutput[] = [];\r\n selectedDciStatus!: number;\r\n approverList: IProjectFeatureOutput[] = [];\r\n dciRevisionList: IDCIRevisionMaster[] = [];\r\n selectedAuthorisedBy!: number;\r\n scheduleWFPlanStageDetails: IScheduleWFPlanStageDetails[] = [];\r\n structPackEleId!: number;\r\n discEleId!: number;\r\n structSelectedDedId!: number;\r\n discSelectedDedId!: number;\r\n isShowSerialNo!: boolean;\r\n serialNoLength: number = 5;\r\n wbsList: any = [];\r\n dvcodeList: any = [];\r\n JOBCode!: string;\r\n WBSCode!: string | null;\r\n DeliverableCode!: number | null;\r\n WTemplateStage: any = [];\r\n selectedschtype: number = 1;\r\n UnSubscribe: Subscription[] = [];\r\n G_workflowList: any;\r\n ProgressLevelsList: IProjectElementDetailsOutput[] = [];\r\n selectedMaxProgressLevel: number;\r\n // validationMsg:boolean = false;\r\n\r\n constructor(private _projService: ProjectInfoService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private _notificationService: NotificationService,\r\n private _elementLinkService: ElementLinkService,\r\n private _commonService: CommonService,\r\n private _formBuilder: FormBuilder,\r\n private _scheDefService: ScheduleDefinitionService,\r\n public _datepipe: DatePipe,\r\n private _dciRevMaster: DocumentRevisionLinkService,\r\n private _projectService: ProjectMasterService,\r\n private dialog: MatDialog\r\n ) {\r\n this.createDCIForm();\r\n }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getProjectStaticElements();\r\n this.getStructureDiscElementId();\r\n this.getDynamicForm();\r\n this.getElementDetails(\"Print Size\", Module.ScheduleDocument);\r\n this.getElementDetails(\"Status\", Module.ScheduleDocument);\r\n this.getElementDetails(\"Progress Level\", Module.Workflow);\r\n this.getApproverList();\r\n this.getProjectBusinessGroups();\r\n this.getWorkflowDetails();\r\n this.getRevisionCategories();\r\n this.getProjectRevisionMaster();\r\n this.getSerialNoLength();\r\n //this.dciForm.get('inputRequired')?.setValue(this.inputRequiredOptions[1]);\r\n this.dciForm.get('schType')?.setValue(this.schTypeOptions[0]);\r\n this.getWBSCodes();\r\n if (this.isStdDCI) {\r\n this.schTypeOptions = [{ schType_Id: 3, schType_Name: \"Std DCI\" }];\r\n this.selectedschtype = 3;\r\n this.dciForm.get('schType')?.setValue(this.schTypeOptions[0]);\r\n this.revForm.get('revision')?.setValue(0);\r\n }\r\n else {\r\n this.schTypeOptions = [{ schType_Id: 1, schType_Name: \"DCI\" }, { schType_Id: 2, schType_Name: \"Ext DCI\" }, { schType_Id: 4, schType_Name: \"Vendor DCI\" }];\r\n this.selectedschtype = 1;\r\n this.dciForm.get('schType')?.setValue(this.schTypeOptions[0]);\r\n }\r\n if (!!this.sourceDciComponent) {\r\n this.copyGeneralDetails();\r\n let schType: IScheduleType = this.sourceDciComponent.dciForm.get('schType')?.value;\r\n this.schTypeOptions = [{ schType_Id: 1, schType_Name: \"DCI\" }, { schType_Id: 2, schType_Name: \"Ext DCI\" }, { schType_Id: 4, schType_Name: \"Vendor DCI\" }];\r\n this.selectedschtype = schType.schType_Id;\r\n this.dciForm.get('schType')?.setValue(this.schTypeOptions.find(x => x.schType_Id == schType.schType_Id));\r\n }\r\n }\r\n\r\n createDCIForm() {\r\n this.dciForm = this._formBuilder.group({\r\n dciSerialNo: new FormControl({ value: '', disabled: true }, Validators.required),\r\n dciSemiNo: new FormControl({ value: '', disabled: true }, [Validators.pattern(\"^[0-9]*$\")]),\r\n title: new FormControl('', [Validators.required]),\r\n enggManhours: new FormControl('', [Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")]),\r\n draftingManHours: new FormControl('', [Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")]),\r\n weightage: new FormControl('', Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")),\r\n inputRequired: new FormControl('Required'),\r\n schType: new FormControl('DCI'),\r\n wbsCode: new FormControl(),\r\n dvCode: new FormControl()\r\n });\r\n this.docScheduleForm = this._formBuilder.group({\r\n approvalBy: new FormControl('', Validators.required),\r\n formApprovalBy: new FormControl('', Validators.required),\r\n workflow: new FormControl('', Validators.required),\r\n formWorkflow: new FormControl('', Validators.required),\r\n docSet: new FormControl('', [Validators.required]),\r\n formDocSet: new FormControl('', [Validators.required]),\r\n MaxProgressLevel: new FormControl(),\r\n formMaxProgressLevel: new FormControl(),\r\n });\r\n this.revForm = this._formBuilder.group({\r\n dciStatus: new FormControl('', [Validators.required]),\r\n formDciStatus: new FormControl('', [Validators.required]),\r\n revision: new FormControl({ value: '', disabled: true }, [Validators.required]),\r\n authorisedBy: new FormControl('', [Validators.required]),\r\n formAuthorisedBy: new FormControl('', [Validators.required]),\r\n qrCodeTag: new FormControl(true),\r\n reference: new FormControl(),\r\n noOfSheets: new FormControl(),\r\n printSize: new FormControl('', Validators.required),\r\n formPrintSize: new FormControl('', Validators.required),\r\n revCategory: new FormControl('', Validators.required),\r\n formrevCategory: new FormControl('', Validators.required),\r\n isConfidential: new FormControl(false),\r\n comments: new FormControl()\r\n });\r\n }\r\n\r\n getDynamicForm() {\r\n let _getProjectElements = this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.elementsConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n value: new BehaviorSubject(null)\r\n }\r\n if (x.isMandatory) {\r\n field.validations = [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: field.name + \" Required\"\r\n }\r\n ]\r\n }\r\n if (x.isNumbering) {\r\n this.numElements.set(x.elementDescription, '');\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n this.buildScheduleDocumentNumber();\r\n this.onCascadingAutocomplete_Change();\r\n //Discipline & Structure changes should be subscribed when doc set is required\r\n if (this.isDocSetRequired) {\r\n this.subscribeDiscStructureChanges();\r\n this.loadStages();\r\n }\r\n else {\r\n this.loadWorkflowStages();\r\n }\r\n if (!!this.sourceDciComponent)\r\n this.copyElementDetailsFromSource();\r\n });\r\n this.UnSubscribe.push(_getProjectElements);\r\n }\r\n\r\n async getSerialNoLength() {\r\n let slNoArray = await this._elementLinkService.getNumberingSlNoLength(this.projectId, this.groupId, Module.ScheduleDocument).toPromise();\r\n this.serialNoLength = slNoArray.serialNoLength != 0 ? slNoArray.serialNoLength : 5;\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach(data => {\r\n if (!!data.child_de_id && data.deDescription) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe(x => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription).value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n else {\r\n _field[0].values = [];\r\n /*this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n }, err => { });*/\r\n }\r\n }, err => { });\r\n }\r\n else {\r\n _field[0].values = [];\r\n /*this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n }, err => { });*/\r\n }\r\n })\r\n\r\n }\r\n })\r\n }\r\n\r\n /**\r\n *Get Document Serial No\r\n */\r\n GetDocumentSerialNo() {\r\n //Coin the Schedule Document number based on the element values selection changes\r\n let elementValues: string[] = Array.from(this.numElements.values());\r\n let selectedElementValues: string[] = elementValues.filter(val => val != '');\r\n let docNo: string = elementValues.filter(val => val != '').join('-');\r\n this.dciForm.get('dciSerialNo')?.setValue(docNo);\r\n //Ensure all the mandatory numering elements selected\r\n if (elementValues.length > 0 && elementValues.length == selectedElementValues.length) {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInp = this.projectElements.filter(x => x.isNumbering).map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription).value;\r\n if (!!selectedValue) {\r\n let result: IElementInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n }\r\n });\r\n let inputModel: IDocSLNoInputModel = { projectId: this._commonService.getProjectId(), groupId: this.groupId, moduleId: Module.ScheduleDocument, elementDetails: this.elementInp };\r\n let _GetDocSerialNo = this._scheduleDocService.GetDocSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n //Updates the serial no based on remaining document selected ded ids\r\n this.getDocumentSerialNo.emit({ index: this.docIndex, selectedDedIds: this.elementInp, serialNo: result.successCode });\r\n //Set manipulated value from the parent component(W.r.t other documents elements selection while bulk upload)\r\n this.dciSerialNo = this.autoSerialNoMap.get(this.docIndex);\r\n this.dciForm.get('dciSemiNo')?.setValue(String(this.dciSerialNo).padStart(this.serialNoLength, '0'));\r\n this.enableDisableSerialNo(false);\r\n });\r\n this.UnSubscribe.push(_GetDocSerialNo);\r\n }\r\n }\r\n /**\r\n * Get Project business groups\r\n */\r\n getProjectBusinessGroups() {\r\n let _getProjectBusinessGroups = this._commonService.getProjectBusinessGroups(this._commonService.getProjectId()).subscribe(res => {\r\n this.projBusinessGroups = res.filter(x => x.is_Active);\r\n if (!!this.sourceDciComponent) {\r\n let businessGroup: BusinessGroupModel = this.sourceDciComponent.docScheduleForm.get('approvalBy')?.value;\r\n if (!!businessGroup) {\r\n this.selectedApprovalBy = businessGroup.group_Id;\r\n this.setFormValue(this.docScheduleForm, \"formApprovalBy\", this.selectedApprovalBy);\r\n }\r\n }\r\n else if (res.length == 1) {\r\n this.selectedApprovalBy = res[0].group_Id;\r\n this.setFormValue(this.docScheduleForm, \"formApprovalBy\", this.selectedApprovalBy);\r\n }\r\n });\r\n this.UnSubscribe.push(_getProjectBusinessGroups);\r\n\r\n }\r\n\r\n\r\n changeButtonToggle(event: { value: { schType_Id: number; }; }) {\r\n this.selectedschtype = event.value.schType_Id;\r\n this.workflowList = JSON.parse(this.G_workflowList);\r\n this.LoadWorkflowDetails();\r\n }\r\n\r\n getWorkflowDetails() {\r\n let _GetWorkflowList = this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x.filter(x => !x.cnN_Required);\r\n this.G_workflowList = JSON.stringify(x.filter(y => !y.cnN_Required));\r\n this.LoadWorkflowDetails();\r\n });\r\n this.UnSubscribe.push(_GetWorkflowList);\r\n }\r\n LoadWorkflowDetails() {\r\n this.workflowList = this.workflowList.filter(x => x.scheduleType == this.selectedschtype && !x.cnN_Required);\r\n if (!!this.sourceDciComponent) {\r\n let workflow: WorkflowTemplateModel = this.sourceDciComponent.docScheduleForm.get('workflow')?.value;\r\n if (!!workflow) {\r\n this.selectedWorkflow = workflow.workflowId;\r\n this.setFormValue(this.docScheduleForm, \"formWorkflow\", this.selectedWorkflow);\r\n }\r\n }\r\n else if (this.workflowList.length == 1) {\r\n this.selectedWorkflow = this.workflowList[0].workflowId;\r\n this.setFormValue(this.docScheduleForm, \"formWorkflow\", this.selectedWorkflow);\r\n }\r\n }\r\n\r\n getRevisionCategories() {\r\n this.revCategoryList = [{ revCategoryId: 1, revCategory: 'Minor' }, { revCategoryId: 2, revCategory: 'Major' }, { revCategoryId: 3, revCategory: 'First Release' }];\r\n if (!!this.sourceDciComponent) {\r\n let revisionCategory: IRevisionCategory = this.sourceDciComponent.revForm.get('revCategory')?.value;\r\n if (!!revisionCategory) {\r\n this.selectedRevCategory = revisionCategory.revCategoryId;\r\n this.setFormValue(this.revForm, \"formrevCategory\", revisionCategory.revCategory);\r\n }\r\n }\r\n }\r\n\r\n getProjectRevisionMaster() {\r\n let obj = {\r\n \"projectId\": this.projectId,\r\n \"groupId\": this.groupId,\r\n }\r\n let _getDocumentRevision = this._dciRevMaster.getDocumentRevision(obj).subscribe((data: IDCIRevisionMaster[]) => {\r\n this.dciRevisionList = data;\r\n })\r\n this.UnSubscribe.push(_getDocumentRevision);\r\n }\r\n\r\n /**\r\n * Load document set list\r\n */\r\n getDocSetList() {\r\n let _getDocSetList = this._scheDefService.getDocSetList({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: IDocSetModel[]) => {\r\n this.docSetList = res;\r\n });\r\n this.UnSubscribe.push(_getDocSetList);\r\n }\r\n\r\n /**\r\n * Get Element Details (Print Size,Doc Status)\r\n */\r\n public getElementDetails(elementName: string, moduleId?: number) {\r\n if (!moduleId)\r\n moduleId = Module.ScheduleDocument\r\n let _getProjectElementDetails = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: moduleId, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Print Size\":\r\n this.printSizeList = res;\r\n if (!!this.sourceDciComponent) {\r\n let printSize: IProjectElementDetailsOutput = this.sourceDciComponent.revForm.get('printSize')?.value;\r\n if (!!printSize) {\r\n this.selectedPrintSize = printSize.dedId;\r\n this.setFormValue(this.revForm, \"formPrintSize\", printSize.dedDescription);\r\n }\r\n }\r\n else if (this.printSizeList.length == 1) {\r\n this.selectedPrintSize = this.printSizeList[0].dedId;\r\n this.setFormValue(this.revForm, \"formPrintSize\", this.selectedPrintSize);\r\n }\r\n break;\r\n case \"Status\":\r\n this.dciStatusList = res;\r\n if (!!this.sourceDciComponent) {\r\n let dciStatus: IProjectElementDetailsOutput = this.sourceDciComponent.revForm.get('dciStatus')?.value;\r\n if (!!dciStatus) {\r\n this.selectedDciStatus = dciStatus.dedId;\r\n this.setFormValue(this.revForm, \"formDciStatus\", dciStatus.dedDescription);\r\n }\r\n }\r\n else if (this.dciStatusList.length == 1) {\r\n this.selectedDciStatus = this.dciStatusList[0].dedId;\r\n this.setFormValue(this.revForm, \"formDciStatus\", this.selectedDciStatus);\r\n }\r\n break;\r\n case \"Progress Level\":\r\n this.ProgressLevelsList = res;\r\n if (!!this.sourceDciComponent) {\r\n let ProgressLevels: IProjectElementDetailsOutput = this.sourceDciComponent.revForm.get('MaxProgressLevel').value;\r\n if (!!ProgressLevels) {\r\n this.selectedMaxProgressLevel = ProgressLevels.dedId;\r\n this.setFormValue(this.revForm, \"formMaxProgressLevel\", ProgressLevels.dedDescription);\r\n }\r\n }\r\n else if (this.ProgressLevelsList.length == 1) {\r\n this.selectedMaxProgressLevel = this.ProgressLevelsList[0].dedId;\r\n this.setFormValue(this.revForm, \"formMaxProgressLevel\", this.selectedMaxProgressLevel);\r\n }\r\n break;\r\n }\r\n }, err => { });\r\n this.UnSubscribe.push(_getProjectElementDetails);\r\n }\r\n\r\n /**\r\n * Get ApproverList\r\n */\r\n public getApproverList() {\r\n let _getProjectFeatureWiseMembers = this._projService.getProjectFeatureWiseMembers({ projectId: this.projectId, groupId: this.groupId, featureDescription: 'Approve' })\r\n .subscribe((res: IProjectFeatureOutput[]) => {\r\n this.approverList = res;\r\n if (!!this.sourceDciComponent) {\r\n let approver: IProjectFeatureOutput = this.sourceDciComponent.revForm.get('authorisedBy')?.value;\r\n if (!!approver) {\r\n this.selectedAuthorisedBy = approver.memberId;\r\n this.setFormValue(this.revForm, \"formAuthorisedBy\", this.selectedAuthorisedBy);\r\n }\r\n }\r\n else if (this.approverList.length == 1) {\r\n this.selectedAuthorisedBy = this.approverList[0].memberId;\r\n this.setFormValue(this.revForm, \"formAuthorisedBy\", this.selectedAuthorisedBy);\r\n }\r\n }, err => { });\r\n this.UnSubscribe.push(_getProjectFeatureWiseMembers);\r\n }\r\n\r\n setFormValue(form: FormGroup, formControlName: string, value: any) {\r\n form.get(formControlName)?.setValue(value);\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"docScheduleForm\":\r\n this.docScheduleForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"dciForm\":\r\n this.dciForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"revForm\":\r\n this.revForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n if (formControlName == 'workflow') {\r\n if (val.additionalValues.additionalValues && val.additionalValues.additionalValues.sub_Workflow) {\r\n this.WTemplateStage = val.additionalValues.additionalValues.sub_Workflow.split(',');\r\n this.stageload();\r\n } else {\r\n this.WTemplateStage = [];\r\n }\r\n }\r\n }\r\n\r\n collapseAllClick() {\r\n this.panelOpenState = !this.panelOpenState;\r\n }\r\n\r\n onStageChange(event: any, stageEleDetail: IStageElementDetails) {\r\n if (event.checked) {\r\n let selDate: any = stageEleDetail.selected_Date;\r\n if (selDate == null)\r\n selDate = stageEleDetail.end_Date;\r\n this.scheduleWFPlanStageDetails.push({ sort_By: stageEleDetail.sort_By, status_Id: stageEleDetail.stage_Id, scheduled_On: selDate });\r\n }\r\n else {\r\n let schWfpStageDetails: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.filter(x => x.status_Id == stageEleDetail.stage_Id)[0];\r\n if (!!this.scheduleWFPlanStageDetails) {\r\n let index: number = this.scheduleWFPlanStageDetails.indexOf(schWfpStageDetails);\r\n if (index > -1)\r\n this.scheduleWFPlanStageDetails.splice(index, 1);\r\n }\r\n }\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n let firstStage: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.sort((a, b) => a.sort_By - b.sort_By)[0];\r\n if (!!firstStage && !!this.dciRevisionList && this.dciRevisionList.length > 0) {\r\n let revision: any = this.dciRevisionList.filter(x => x.stageId == firstStage.status_Id && x.isActive)[0].revisionNo;\r\n if (!!revision)\r\n this.revForm.get('revision')?.setValue(revision);\r\n }\r\n }\r\n }\r\n\r\n getDciNUmber(): string {\r\n let docNo: string = this.getFormValue(this.dciForm, \"dciSerialNo\");\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi')\r\n return docNo + '-' + this.getFormValue(this.dciForm, \"dciSemiNo\");\r\n else\r\n return docNo;\r\n }\r\n\r\n madatoryFieldsValidation() {\r\n if (!this.isDocSetRequired) {\r\n this.docScheduleForm.get('docSet')?.clearValidators();\r\n this.docScheduleForm.get('docSet')?.updateValueAndValidity();\r\n this.docScheduleForm.get('formDocSet')?.clearValidators();\r\n this.docScheduleForm.get('formDocSet')?.updateValueAndValidity();\r\n }\r\n let revNo: string = this.getFormValue(this.revForm, \"revision\");\r\n if (this.isStdDCI) {\r\n if (!(this.dynamicForm.form.valid && this.dciForm.valid && this.revForm.valid)) {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: this.docIndex + \" - \" + \"Mandatory fields are missing\" };\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.dciForm);\r\n this.formMarkAsTouched(this.revForm);\r\n return result\r\n }\r\n } else {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: this.docIndex + \" - \" + \"Mandatory fields are missing\" };\r\n if (this.scheduleWFPlanStageDetails && this.scheduleWFPlanStageDetails.length <= 0) {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: (this.docIndex == 1 ? '' : this.docIndex + \" - \") + \"Kindly select atleast one stage.\" };\r\n return result;\r\n }\r\n if (revNo.length == 0) {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: (this.docIndex == 1 ? '' : this.docIndex + \" - \") + \"Revision number is mandatory\" };\r\n return result;\r\n }\r\n if (!(this.dynamicForm.form.valid && this.dciForm.valid && this.revForm.valid && this.docScheduleForm.valid)) {\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.dciForm);\r\n this.formMarkAsTouched(this.revForm);\r\n this.formMarkAsTouched(this.docScheduleForm);\r\n return result\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Save DCI Document\r\n */\r\n docnumber!: string;\r\n async saveDocument(): Promise {\r\n\r\n if (!!this.isWBSIntegration) {\r\n if (!!this.WBSCode) {\r\n if (!!this.DeliverableCode) {\r\n\r\n } else {\r\n this._notificationService.showPopup(\"Kindly select Deliverable Code\", \"Warning\");\r\n return;\r\n }\r\n }\r\n }\r\n\r\n let revNo: string = this.getFormValue(this.revForm, \"revision\");\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: this.docIndex + \" - \" + \"Mandatory fields are missing\" };\r\n\r\n if (!this.isStdDCI) {\r\n\r\n if (this.scheduleWFPlanStageDetails && this.scheduleWFPlanStageDetails.length <= 0) {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: (this.docIndex == 1 ? '' : this.docIndex + \" - \") + \"Kindly select atleast one stage.\" };\r\n return result;\r\n }\r\n if (revNo.length == 0) {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: (this.docIndex == 1 ? '' : this.docIndex + \" - \") + \"Revision number is mandatory\" };\r\n return result;\r\n }\r\n\r\n }\r\n\r\n if (this.isStdDCI) {\r\n if (this.dynamicForm.form.valid && this.dciForm.valid && this.revForm.valid) {\r\n let semiNo: string = '0';\r\n let docNo: string = this.getFormValue(this.dciForm, \"dciSerialNo\");\r\n this.docnumber = docNo;\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(this.dciForm, \"dciSemiNo\");\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n docNo = docNo + '-' + this.getFormValue(this.dciForm, \"dciSemiNo\");\r\n this.docnumber = docNo;\r\n }\r\n let scheduleDocInput: IScheduleDocModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n docNo: docNo,\r\n docSerialNo: +semiNo,\r\n docTitle: this.getFormValue(this.dciForm, \"title\"),\r\n userId: this.memberId,\r\n module: Module.ScheduleDocument\r\n };\r\n\r\n let docSet: IDocSetModel = this.getFormValue(this.docScheduleForm, \"docSet\");\r\n if (!!docSet)\r\n scheduleDocInput.docSetId = docSet.doc_Set_Id;\r\n let schBulkInsertModel: IScheduleBulkInsertModel;\r\n schBulkInsertModel = {\r\n isStandardDrawingDocument: this.isStdDCI,\r\n dciMasterDetails: scheduleDocInput,\r\n dciRevDetails: this.getScheduleDocRevision(),\r\n dciSchDetails: this.getScheduleDocDetails(),\r\n dciElementDetails: this.getScheduleDocEleDetails(),\r\n dciDocScheduleWFPlanDetails: null, //this.getScheduleDocWFPlanDetails(), \r\n dciDocSchMHDetails: this.getScheduleMHDetails(),\r\n dciDocSchStageDetails: null, //this.getScheduleRevStageDetails(),\r\n dciDocSchWorkflowDetails: null //this.getScheduleDocWorkflowDetails()\r\n }\r\n\r\n result = await this._scheduleDocService.InsertScheduleBulkDocument(schBulkInsertModel).toPromise();\r\n\r\n if (!!this.isWBSIntegration) {\r\n if (result.successCode == 200 || result.successCode == 205) {\r\n let dciCPCDocDetails: ICPCInputModel = {\r\n docId: +result.result,\r\n projectId: this.projectId,\r\n memberId: this.memberId,\r\n wBSCode: this.WBSCode,\r\n deliverableCode: this.DeliverableCode\r\n }\r\n let result1: StandardOutputModel = await this._scheduleDocService.InsertCPCDocDetails(dciCPCDocDetails).toPromise();\r\n }\r\n }\r\n }\r\n else {\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.dciForm);\r\n this.formMarkAsTouched(this.revForm);\r\n }\r\n }\r\n else {\r\n if (this.dynamicForm.form.valid && this.dciForm.valid && this.revForm.valid && this.docScheduleForm.valid) {\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n let semiNo: string = '0';\r\n let docNo: string = this.getFormValue(this.dciForm, \"dciSerialNo\");\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(this.dciForm, \"dciSemiNo\");\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n docNo = docNo + '-' + this.getFormValue(this.dciForm, \"dciSemiNo\");\r\n }\r\n let scheduleDocInput: IScheduleDocModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n docNo: docNo,\r\n docSerialNo: +semiNo,\r\n docTitle: this.getFormValue(this.dciForm, \"title\"),\r\n userId: this.memberId,\r\n module: Module.ScheduleDocument,\r\n MaxProgressLevel: !!this.SetDCIMaxProgressLevel && this.getFormValue(this.docScheduleForm, \"MaxProgressLevel\") ? this.getFormValue(this.docScheduleForm, \"MaxProgressLevel\").dedId : null\r\n\r\n };\r\n let docSet: IDocSetModel = this.getFormValue(this.docScheduleForm, \"docSet\");\r\n if (!!docSet)\r\n scheduleDocInput.docSetId = docSet.doc_Set_Id;\r\n let schBulkInsertModel: IScheduleBulkInsertModel;\r\n schBulkInsertModel = {\r\n isStandardDrawingDocument: false,\r\n dciMasterDetails: scheduleDocInput,\r\n dciRevDetails: this.getScheduleDocRevision(),\r\n dciSchDetails: this.getScheduleDocDetails(),\r\n dciElementDetails: this.getScheduleDocEleDetails(),\r\n dciDocScheduleWFPlanDetails: this.getScheduleDocWFPlanDetails(),\r\n dciDocSchMHDetails: this.getScheduleMHDetails(),\r\n dciDocSchStageDetails: this.getScheduleRevStageDetails(),\r\n dciDocSchWorkflowDetails: this.getScheduleDocWorkflowDetails()\r\n\r\n }\r\n result = await this._scheduleDocService.InsertScheduleBulkDocument(schBulkInsertModel).toPromise();\r\n\r\n if (!!this.isWBSIntegration) {\r\n if (result.successCode == 200 || result.successCode == 205) {\r\n let dciCPCDocDetails: ICPCInputModel = {\r\n docId: +result.result,\r\n projectId: this.projectId,\r\n memberId: this.memberId,\r\n wBSCode: this.WBSCode,\r\n deliverableCode: this.DeliverableCode\r\n }\r\n let result1: StandardOutputModel = await this._scheduleDocService.InsertCPCDocDetails(dciCPCDocDetails).toPromise();\r\n }\r\n }\r\n\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Kindly select atleast one stage\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.dciForm);\r\n this.formMarkAsTouched(this.revForm);\r\n this.formMarkAsTouched(this.docScheduleForm);\r\n }\r\n }\r\n if (this.isStdDCI && result.successCode == 200) {\r\n let docdata = result;\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: 0,\r\n docId: docdata.result,\r\n revisionNo: this.getFormValue(this.revForm, \"revision\").toString(),\r\n moduleName: 'EDMS',\r\n libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId,\r\n documents: [{\r\n value: docdata.result,\r\n text: this.docnumber,\r\n revisionNo: this.getFormValue(this.revForm, \"revision\").toString(),\r\n task_SNo: 1\r\n }],\r\n isEditable: false\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n\r\n private getScheduleDocRevision(): IScheduleDocRevModel {\r\n let scheduleDocRevInput: IScheduleDocRevModel = {\r\n docId: 0,\r\n revisionNo: this.getFormValue(this.revForm, \"revision\"),\r\n docStatus: this.getFormValue(this.revForm, \"dciStatus\").dedId,\r\n isConfidential: this.getFormValue(this.revForm, \"isConfidential\"),\r\n printSize: this.getFormValue(this.revForm, \"printSize\").dedId,\r\n docAuthorizedBy: this.getFormValue(this.revForm, \"authorisedBy\").memberId,\r\n revisionCategory: this.getFormValue(this.revForm, \"revCategory\").revCategoryId,\r\n qrCodeStatus: this.getFormValue(this.revForm, \"qrCodeTag\"),\r\n comments: this.getFormValue(this.revForm, \"comments\"),\r\n reference: this.getFormValue(this.revForm, \"reference\"),\r\n noOfSheets: this.getFormValue(this.revForm, \"noOfSheets\"),\r\n revisionType: 0,\r\n docCreatedBy: this.memberId,\r\n createdBy: this.memberId,\r\n isActive: true\r\n }\r\n return scheduleDocRevInput;\r\n }\r\n\r\n private getScheduleDocEleDetails(): IScheduleElementDetails {\r\n let scheduleDocEleDetails: IScheduleDocElementDetails[] = [];\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n scheduleDocEleDetails = this.projectElements.map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n let result: IScheduleDocElementDetails = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n userId: this.memberId,\r\n isActive: true,\r\n docId: 0\r\n }\r\n return result;\r\n });\r\n let elmentDetails: IScheduleElementDetails = { elementDetailsMapping: scheduleDocEleDetails };\r\n return elmentDetails;\r\n }\r\n\r\n private getScheduleDocWFPlanDetails(): IScheduleWFPlanDetails {\r\n let schWFPlandetails: IScheduleWFPlanDetails = {\r\n doc_Id: 0,\r\n revision_No: this.getFormValue(this.revForm, \"revision\"),\r\n docScheduleWFPlanDetails: this.scheduleWFPlanStageDetails,\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return schWFPlandetails;\r\n }\r\n\r\n private getScheduleRevStageDetails(): IScheduleDocStageDetails {\r\n let schDocStageDetails: IScheduleDocStageDetails = {\r\n doc_Id: 0,\r\n revision_No: this.getFormValue(this.revForm, \"revision\"),\r\n docScheduleStageDetails: this.scheduleWFPlanStageDetails.map(x => {\r\n let stage: IScheduleStageId = {\r\n stage_Id: x.status_Id\r\n }\r\n return stage;\r\n }),\r\n stage_Id: this.scheduleWFPlanStageDetails.sort((a, b) => a.sort_By - b.sort_By)[0].status_Id,\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return schDocStageDetails;\r\n }\r\n\r\n private getScheduleMHDetails(): IScheduleMHDetails {\r\n let eManHours: any = this.getFormValue(this.dciForm, \"enggManhours\");\r\n let dManHours: any = this.getFormValue(this.dciForm, \"draftingManHours\");\r\n let weightage: any = this.getFormValue(this.dciForm, \"weightage\");\r\n\r\n let schDocMHDetails: IScheduleMHDetails = {\r\n doc_Id: 0,\r\n e_Man_Hours: !!eManHours ? eManHours : 0,\r\n d_Man_Hours: !!dManHours ? dManHours : 0,\r\n weightage: !!weightage ? weightage : 0,\r\n userId: this.memberId,\r\n is_Active: true\r\n }\r\n return schDocMHDetails;\r\n }\r\n\r\n private getScheduleDocDetails(): IScheduleDocDetails {\r\n let schDocDetails: IScheduleDocDetails = {\r\n doc_Id: 0,\r\n from_Group_Id: this.groupId,\r\n to_Group_Id: this.getFormValue(this.docScheduleForm, \"approvalBy\").group_Id,\r\n revision_No: this.getFormValue(this.revForm, \"revision\"),\r\n schedule_Type: this.getFormValue(this.dciForm, \"schType\").schType_Id,\r\n is_Input_Required: this.getFormValue(this.dciForm, \"inputRequired\").value,\r\n userId: this.memberId,\r\n is_Active: true\r\n }\r\n return schDocDetails;\r\n }\r\n\r\n private getScheduleDocWorkflowDetails(): IScheduleWorkflowDetails {\r\n let schDocWorkflowDetails: IScheduleWorkflowDetails = {\r\n doc_Id: 0,\r\n userId: this.memberId,\r\n is_Active: true,\r\n workflow_Id: this.getFormValue(this.docScheduleForm, \"workflow\").workflowId,\r\n revision_No: this.getFormValue(this.revForm, \"revision\")\r\n }\r\n return schDocWorkflowDetails;\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n private getStructureDiscElementId() {\r\n let _getProjectElementIdByDescription = this._projService.getProjectElementIdByDescription('Structure / Package').subscribe(x => {\r\n this.structPackEleId = x.deId;\r\n });\r\n let __getProjectElementIdByDescription = this._projService.getProjectElementIdByDescription('Discipline').subscribe(x => {\r\n this.discEleId = x.deId;\r\n });\r\n this.UnSubscribe.push(_getProjectElementIdByDescription, __getProjectElementIdByDescription);\r\n }\r\n\r\n private buildScheduleDocumentNumber() {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n //Numbering elements array\r\n let numberingElements: string[] = Array.from(this.numElements.keys());\r\n numberingElements.forEach(element => {\r\n resForm.get(element)?.valueChanges.subscribe((x: IProjectElementDetailsOutput) => {\r\n\r\n if (this.numElements.has(element)) {\r\n if (!!x) {\r\n this.numElements.set(element, x.dedShortDescription);\r\n }\r\n else {\r\n this.numElements.set(element, '');\r\n }\r\n }\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi') {\r\n this.GetDocumentSerialNo();\r\n }\r\n if (this.isDocSetRequired && !!x) {\r\n if (x.deId == this.structPackEleId || x.deId == this.discEleId)\r\n this.filterDocSet(x);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private subscribeDiscStructureChanges() {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let structDiscFields: FieldConfig[] = this.elementsConfig.filter(x => x.de_id == this.discEleId || x.de_id == this.structPackEleId);\r\n structDiscFields.forEach(element => {\r\n if (element.deDescription)\r\n resForm.get(element.deDescription)?.valueChanges.subscribe((x: IProjectElementDetailsOutput) => {\r\n if (!!x)\r\n this.filterDocSet(x);\r\n })\r\n })\r\n }\r\n\r\n private filterDocSet(elementDetail: IProjectElementDetailsOutput) {\r\n if (elementDetail.deId == this.structPackEleId)\r\n this.structSelectedDedId = elementDetail.dedId;\r\n else if (elementDetail.deId == this.discEleId)\r\n this.discSelectedDedId = elementDetail.dedId;\r\n //reset the last selected document set\r\n this.selectedDocSetStageDetails = [];\r\n this.selectedDocSetStageDetailsCopy = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.filteredDocSetList = this.docSetList.filter(ds => ds.structure_DED_Id == this.structSelectedDedId &&\r\n ds.disc_DED_Id == this.discSelectedDedId);\r\n if (!!this.sourceDciComponent) {\r\n if (this.isDocSetRequired)\r\n this.filteredDocSetList = this.sourceDciComponent.filteredDocSetList;\r\n let docSet: IDocSetModel = this.sourceDciComponent.docScheduleForm.get('docSet')?.value;\r\n if (!!docSet) {\r\n this.selectedDocSet = docSet.doc_Set_Id;\r\n this.setFormValue(this.docScheduleForm, \"formDocSet\", this.selectedDocSet);\r\n }\r\n }\r\n }\r\n\r\n private loadStages() {\r\n this.docScheduleForm.get('docSet')?.valueChanges.subscribe((res: IDocSetModel) => {\r\n if (!!res) {\r\n //reset the last selected document set\r\n this.selectedDocSetStageDetails = [];\r\n this.selectedDocSetStageDetailsCopy = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails = res.stageDocumentSetDetails.filter(x => x.end_Date != null);\r\n\r\n if (this.WTemplateStage && this.WTemplateStage.length > 0) {\r\n let obj: IStageElementDetails[] = [];\r\n this.selectedDocSetStageDetails.forEach((val, index) => {\r\n if (this.WTemplateStage.some((x: number | undefined) => x == val.stage_Id))\r\n obj.push(val)\r\n });\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails = obj;\r\n this.revForm.get('revision')?.setValue('');\r\n if (this.selectedDocSetStageDetails && this.selectedDocSetStageDetails.length < 1)\r\n this._notificationService.showToast(\"Some mismatch in between the selected workflow and document set, please check corresponding configuration.\", \"Warning\");\r\n }\r\n\r\n this.selectedDocSetStageDetails.forEach(x => {\r\n if (x.end_Date != null) {\r\n let stageDate: IStageDates = {\r\n minDate: new Date(x.start_Date),\r\n maxDate: new Date(x.end_Date),\r\n value: (Date.parse(new Date().toString()) <= Date.parse(x.end_Date) && Date.parse(new Date().toString()) >= Date.parse(x.start_Date)) && !this.isDocSetRequired ? new Date() : new Date(x.end_Date)\r\n };\r\n if (x.stage_Id)\r\n this.stageDates.set(x.stage_Id.toString(), stageDate)\r\n let _stageDate = this._datepipe.transform(stageDate.value, 'dd-MMM-yyyy');\r\n if (_stageDate)\r\n x.selected_Date = _stageDate;\r\n }\r\n });\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails;\r\n\r\n if (!!this.sourceDciComponent && this.sourceDciComponent.scheduleWFPlanStageDetails.length > 0) {\r\n this.scheduleWFPlanStageDetails = [];\r\n this.selectedDocSetStageDetails = this.sourceDciComponent.selectedDocSetStageDetailsCopy;\r\n this.sourceDciComponent.scheduleWFPlanStageDetails.forEach(x => {\r\n let stageDetail = this.selectedDocSetStageDetails.filter(y => y.stage_Id == x.status_Id)[0];\r\n if (!!stageDetail) {\r\n stageDetail.checked = true;\r\n this.scheduleWFPlanStageDetails.push({ sort_By: x.sort_By, status_Id: x.status_Id, scheduled_On: x.scheduled_On });\r\n }\r\n })\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails\r\n }\r\n }\r\n })\r\n }\r\n\r\n private async loadWorkflowStages() {\r\n this.docScheduleForm.get('workflow')?.valueChanges.subscribe(async (res: WorkflowTemplateModel) => {\r\n if (!!res) {\r\n await this._scheduleDocService.GetWorkflowStageDetails({ project_Id: res.projectId, workflow_Id: res.workflowId }).toPromise().then((stages: IStageElementDetails[]) => {\r\n this.selectedDocSetStageDetails = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.selectedDocSetStageDetails = stages.filter(x => x.is_Active == true);\r\n //stage_Short_Description\r\n this.selectedDocSetStageDetails.forEach(x => {\r\n let stageDate: IStageDates = {\r\n minDate: new Date(x.start_Date),\r\n maxDate: new Date(x.end_Date),\r\n value: (Date.parse(new Date().toString()) <= Date.parse(x.end_Date) && Date.parse(new Date().toString()) >= Date.parse(x.start_Date)) && !this.isDocSetRequired ? new Date() : new Date(x.end_Date)\r\n };\r\n if (x.stage_Id)\r\n this.stageDates.set(x.stage_Id.toString(), stageDate)\r\n let _stageDate = this._datepipe.transform(stageDate.value, 'dd-MMM-yyyy')\r\n if (_stageDate)\r\n x.selected_Date = _stageDate;\r\n });\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails;\r\n if (!!this.sourceDciComponent && this.sourceDciComponent.scheduleWFPlanStageDetails.length > 0) {\r\n this.scheduleWFPlanStageDetails = [];\r\n this.selectedDocSetStageDetails = this.sourceDciComponent.selectedDocSetStageDetailsCopy;\r\n this.sourceDciComponent.scheduleWFPlanStageDetails.forEach(x => {\r\n let stageDetail = this.selectedDocSetStageDetails.filter(y => y.stage_Id == x.status_Id)[0];\r\n if (!!stageDetail) {\r\n stageDetail.checked = true;\r\n this.scheduleWFPlanStageDetails.push({ sort_By: x.sort_By, status_Id: x.status_Id, scheduled_On: x.scheduled_On });\r\n }\r\n // if(x.status_Id)\r\n // this.stageDates.set(x.status_Id.toString(),new Date(stageDetail.selected_Date))\r\n //this.stageDates[x.status_Id].value = new Date(stageDetail.selected_Date)\r\n if (x.status_Id && stageDetail.selected_Date) {\r\n let x: any = new Date(stageDetail.selected_Date)\r\n this.stageDates.set(x.status_Id.toString(), x);\r\n }\r\n })\r\n this.selectedDocSetStageDetailsCopy = this.selectedDocSetStageDetails\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n getStageDate(selectedStageDate: any, stage: IStageElementDetails) {\r\n if (!this.sourceDciComponent) {\r\n stage.selected_Date = selectedStageDate.value;\r\n\r\n if (stage.stage_Id && selectedStageDate.value) {\r\n let x: any = new Date(selectedStageDate.value)\r\n this.stageDates.set(stage.stage_Id.toString(), x);\r\n }\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n let scheduleWfPlan: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.filter(x => x.status_Id == stage.stage_Id)[0];\r\n scheduleWfPlan.scheduled_On = stage.selected_Date;\r\n }\r\n }\r\n if (!!this.sourceDciComponent) {\r\n if (stage.stage_Id) {\r\n let x: any = new Date(selectedStageDate.value)\r\n this.stageDates.set(stage.stage_Id.toString(), x);\r\n }\r\n this.scheduleWFPlanStageDetails.map(val => {\r\n if (val.status_Id == stage.stage_Id) {\r\n val.status_Id = stage.stage_Id;\r\n val.scheduled_On = selectedStageDate.value;\r\n val.sort_By = stage.sort_By;\r\n }\r\n })\r\n }\r\n }\r\n\r\n private enableDisableSerialNo(semiNoUpdateRequired: boolean) {\r\n this.isShowSerialNo = this.numFormat == 'Semi' || this.numFormat == 'Auto';\r\n if (!!this.dciForm) {\r\n if (this.numFormat == 'Auto') {\r\n this.dciForm.get('dciSemiNo')?.disable();\r\n this.dciForm.get('dciSerialNo')?.disable();\r\n if (semiNoUpdateRequired)\r\n this.GetDocumentSerialNo();\r\n }\r\n else if (this.numFormat == 'Semi') {\r\n this.dciForm.get('dciSemiNo')?.enable();\r\n this.dciForm.get('dciSerialNo')?.disable();\r\n if (semiNoUpdateRequired)\r\n this.GetDocumentSerialNo();\r\n }\r\n else if (this.numFormat == 'Manual') {\r\n this.dciForm.get('dciSerialNo')?.setValue('');\r\n this.dciForm.get('dciSemiNo')?.setValue('');\r\n this.dciForm.get('dciSerialNo')?.enable();\r\n this.dciForm.get('dciSemiNo')?.disable();\r\n }\r\n }\r\n }\r\n\r\n private copyElementDetailsFromSource() {\r\n let sourceProjElementForm: FormGroup = this.sourceDciComponent.dynamicForm.value;\r\n this.projectElements.forEach(x => {\r\n let selectedValue: IProjectElementDetailsOutput = sourceProjElementForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let field: FieldConfig = this.elementsConfig.find(ele => ele.de_id == selectedValue.deId && ele.deDescription == selectedValue.deDescription);\r\n if (!!field) {\r\n field.value.next(selectedValue.dedId);\r\n }\r\n }\r\n })\r\n }\r\n\r\n private copyGeneralDetails() {\r\n let sourceDciForm: FormGroup = this.sourceDciComponent.dciForm;\r\n let sourceRevForm: FormGroup = this.sourceDciComponent.revForm;\r\n let sourceDocScheduleForm: FormGroup = this.sourceDciComponent.docScheduleForm;\r\n\r\n let enggManHours: number = sourceDciForm.get('enggManhours')?.value;\r\n if (!!enggManHours)\r\n this.dciForm.get('enggManhours')?.setValue(enggManHours);\r\n\r\n let draftingManHours: number = sourceDciForm.get('draftingManHours')?.value;\r\n if (!!draftingManHours)\r\n this.dciForm.get('draftingManHours')?.setValue(draftingManHours);\r\n\r\n let weightage: number = sourceDciForm.get('weightage')?.value;\r\n if (!!weightage)\r\n this.dciForm.get('weightage')?.setValue(weightage);\r\n\r\n let isConfidential: boolean = sourceRevForm.get('isConfidential')?.value;\r\n this.revForm.get('isConfidential')?.setValue(isConfidential);\r\n\r\n let revision: string = sourceRevForm.get('revision')?.value;\r\n if (!!revision)\r\n this.revForm.get('revision')?.setValue(revision);\r\n\r\n let reference: string = sourceRevForm.get('reference')?.value;\r\n if (!!reference)\r\n this.revForm.get('reference')?.setValue(reference);\r\n\r\n let noOfSheets: number = sourceRevForm.get('noOfSheets')?.value;\r\n if (!!noOfSheets)\r\n this.revForm.get('noOfSheets')?.setValue(noOfSheets);\r\n\r\n let qrCodeTag: boolean = sourceRevForm.get('qrCodeTag')?.value;\r\n this.revForm.get('qrCodeTag')?.setValue(qrCodeTag);\r\n\r\n let comments: string = sourceRevForm.get('comments')?.value;\r\n if (!!comments)\r\n this.revForm.get('comments')?.setValue(comments);\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let revElement: IProjectElementsOutput[] = this.projectStaticElements.filter(x => x.elementDescription == \"Auto Revision\");\r\n if (revElement.length > 0) {\r\n this.isAutoRevision = revElement[0].isDefaultSelect;\r\n }\r\n // let isDocSetRequiredElement = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n // if (!!isDocSetRequiredElement) {\r\n // this.isDocSetRequired = isDocSetRequiredElement.isMandatory;\r\n // if (!this.isDocSetRequired) {\r\n // this.IsDisabled = false;\r\n // }\r\n // }\r\n\r\n\r\n let isWBSIntegrationElement = this.projectStaticElements.filter(x => x.elementDescription == \"WBS Integration\")[0];\r\n if (!!isWBSIntegrationElement) {\r\n this.isWBSIntegration = isWBSIntegrationElement.isMandatory;\r\n }\r\n\r\n let isDocSetRequired: IProjectElementsOutput = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequired)\r\n if (isDocSetRequired.isVisible)\r\n this.isDocSetRequired = isDocSetRequired;\r\n if (!this.isDocSetRequired) {\r\n this.IsDisabled = false;\r\n }\r\n\r\n let SetDCIMaxProgressLevel: IProjectElementsOutput = this.projectStaticElements.filter(x => x.elementDescription == \"Set DCI Max Progress Level\")[0];\r\n if (!!SetDCIMaxProgressLevel)\r\n if (SetDCIMaxProgressLevel.isVisible)\r\n this.SetDCIMaxProgressLevel = SetDCIMaxProgressLevel;\r\n }\r\n }, err => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n if (this.isDocSetRequired)\r\n this.getDocSetList();\r\n }\r\n\r\n resetScheduleForm() {\r\n this.dciSerialNo = null;\r\n this.selectedDocSetStageDetails = [];\r\n this.WTemplateStage = [];\r\n this.selectedDocSetStageDetailsCopy = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.projBusinessGroups = [];\r\n this.revCategoryList = [];\r\n this.workflowList = [];\r\n this.docSetList = [];\r\n this.filteredDocSetList = [];\r\n this.printSizeList = [];\r\n this.revForm.get('revision')?.setValue('')\r\n this.eipAutoCompleteComponents.forEach(x => x.clearText());\r\n this.ngOnInit();\r\n }\r\n\r\n // numberOnly(event, field = null): boolean {\r\n // const charCode = (event.which) ? event.which : event.keyCode;\r\n // if (['weightage', 'enggMH', 'draftMH'].includes(field)) {\r\n // if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46) {\r\n // return false;\r\n // } else {\r\n // return true;\r\n // }\r\n // } else {\r\n // if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n // return false;\r\n // } else {\r\n // return true;\r\n // }\r\n // }\r\n // }\r\n\r\n getWBSCodes() {\r\n let _getProjects = this._projectService.getProjects(this.projectId, this.memberId).subscribe((data: IProjectMasterViewModel[]) => {\r\n // this.JOBCode = \"LE160665\";\r\n this.JOBCode = data[0].job_Code;\r\n this._scheduleDocService.GetWBSCodes({ job_Code: this.JOBCode })\r\n .subscribe((res) => {\r\n this.wbsList = res;\r\n });\r\n });\r\n this.UnSubscribe.push(_getProjects);\r\n }\r\n setWBSCode(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.dciForm.get('wbsCode')?.setValue(event.value);\r\n this.dciForm.get('wbsCode')?.setValue(event.text);\r\n this.WBSCode = event.value.toString();\r\n if (!!this.WBSCode) {\r\n let _GetDeliverableCodes = this._scheduleDocService.GetDeliverableCodes({ job_Code: this.JOBCode, wBS_Code: this.WBSCode })\r\n .subscribe((res) => {\r\n this.dvcodeList = res;\r\n });\r\n this.UnSubscribe.push(_GetDeliverableCodes);\r\n }\r\n\r\n }\r\n else {\r\n this.dciForm.get('wbsCode')?.setValue(null);\r\n this.dvcodeList = [];\r\n this.WBSCode = null;\r\n this.DeliverableCode = null;\r\n }\r\n }\r\n setDVCode(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.dciForm.get('dvCode')?.setValue(event.value);\r\n this.dciForm.get('dvCode')?.setValue(event.text);\r\n this.DeliverableCode = +event.value\r\n }\r\n else {\r\n this.dciForm.get('dvCode')?.setValue(null);\r\n this.DeliverableCode = null\r\n }\r\n }\r\n\r\n changeAutoStatus(event?: any) {\r\n if (event.checked || event == true) {\r\n this.revForm.get('revision')?.disable();\r\n }\r\n else {\r\n this.revForm.get('revision')?.enable();\r\n }\r\n }\r\n stageload() {\r\n if (this.selectedDocSetStageDetailsCopy && this.selectedDocSetStageDetailsCopy.length && this.WTemplateStage && this.WTemplateStage.length > 0 && !this.sourceDciComponent) {\r\n let obj: IStageElementDetails[] = [];\r\n this.selectedDocSetStageDetailsCopy.forEach((val, index) => {\r\n if (this.WTemplateStage.some((x: number | undefined) => x == val.stage_Id)) {\r\n val.checked = false;\r\n obj.push(val)\r\n }\r\n });\r\n\r\n this.selectedDocSetStageDetails = obj;\r\n this.revForm.get('revision')?.setValue('');\r\n if (this.selectedDocSetStageDetails && this.selectedDocSetStageDetails.length < 1)\r\n this._notificationService.showToast(\"Some mismatch in between the selected workflow and document set, please check corresponding configuration.\", \"Warning\");\r\n }\r\n }\r\n\r\n // public validation(event:any,type:string){\r\n // var value = event.target.value\r\n // // type == 'enggManhours' && value.length > 8 ? this.dciForm.get('enggManhours')?.setValue('') : type == 'draftingManHours' && value.length > 8 ? \r\n // // this.dciForm.get('draftingManHours')?.setValue('') : type == 'weightage' && value.length > 8 ? this.dciForm.get('weightage')?.setValue('') : console.log(\"nothing\")\r\n // if(type == 'enggManhours' && value.length > 8){\r\n // this.dciForm.get('enggManhours')?.setValue('');\r\n // this.validationMsg = true \r\n // }else if(type == 'draftingManHours' && value.length > 8){\r\n // this.dciForm.get('draftingManHours')?.setValue('');\r\n // this.validationMsg = true\r\n // }else if(type == 'weightage' && value.length > 7){\r\n // this.dciForm.get('weightage')?.setValue('');\r\n // this.validationMsg = true\r\n // }else{\r\n // this.validationMsg = false\r\n // }\r\n\r\n // }\r\n\r\n ngOnDestroy(): void {\r\n\r\n this.UnSubscribe.forEach(x => x.unsubscribe());\r\n }\r\n\r\n}","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{docIndex}}\r\n Document | \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n DCI Serial No\r\n \r\n DCI Number is\r\n required\r\n \r\n
\r\n \r\n \r\n Serial No\r\n Enter only numbers\r\n \r\n \r\n
\r\n \r\n \r\n Title\r\n Title is required\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Engg Manhours\r\n \r\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\r\n maxlength = \"9\">\r\n Enter only\r\n numbers\r\n \r\n
\r\n \r\n \r\n Drafting Manhours\r\n \r\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\r\n maxlength = \"9\">\r\n Enter only\r\n numbers\r\n \r\n \r\n \r\n \r\n Weightage\r\n \r\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\r\n maxlength = \"8\">\r\n Enter only numbers\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n Schedule Type\r\n \r\n \r\n {{item.schType_Name}}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Document Schedule\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Approval by is required\r\n
\r\n \r\n \r\n \r\n Workflow is required\r\n
\r\n \r\n \r\n \r\n Document Set is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n {{item.stage_Short_Description}}-{{item.stage_Description}}\r\n

\r\n

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

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Document Revision\r\n Auto\r\n \r\n \r\n \r\n Document Revision\r\n Auto\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Revision *\r\n \r\n Revision is\r\n required\r\n \r\n
\r\n \r\n \r\n \r\n Released For is required\r\n \r\n \r\n \r\n \r\n Revision Category is required\r\n \r\n \r\n \r\n \r\n Authorised by is required\r\n \r\n \r\n \r\n \r\n Print Size is required\r\n \r\n \r\n \r\n No of Sheets\r\n \r\n \r\n \r\n \r\n \r\n QR Code Tag\r\n Active\r\n \r\n \r\n       \r\n Document Properties (Opt)\r\n Confidential\r\n \r\n  \r\n \r\n \r\n \r\n \r\n Reference \r\n \r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { IScheduleDefUploadStatusModel } from 'src/app/ViewModel/ScheduleDefinitionModel';\r\n\r\n@Component({\r\n selector: 'app-schedule-definition-excel-upload',\r\n templateUrl: './schedule-definition-excel-upload.component.html',\r\n styleUrls: ['./schedule-definition-excel-upload.component.css']\r\n})\r\nexport class ScheduleDefinitionExcelUploadComponent implements OnInit {\r\n statusList: IScheduleDefUploadStatusModel[] = [];\r\n total!: number;\r\n success!: number;\r\n failure!: number;\r\n enableFullscreen = false;\r\n enableFilter = false;\r\n public schDefDetailsList?: IScheduleDefUploadStatusModel [];\r\n public moduleName: string;\r\n constructor(public dialogRef: MatDialogRef, private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public _data: any) {\r\n this.schDefDetailsList =_data.schDefres;\r\n this.moduleName=_data.module;\r\n }\r\n\r\n ngOnInit() {\r\n if(this.schDefDetailsList)\r\n this.statusList = this.schDefDetailsList;\r\n this.total = this.statusList.length;\r\n this.success = this.statusList.filter(x => x.status).length;\r\n this.failure = this.total - this.success;\r\n }\r\n\r\n getStatus(item: IScheduleDefUploadStatusModel): string {\r\n return item.status ? \"Success\" : \"Fail\";\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n public showOnlyFailureDetails(dataItem: IScheduleDefUploadStatusModel, index: number): boolean {\r\n return dataItem.status == false;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{moduleName}} Excel Upload Status

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Total Processed : {{total}}\r\n
\r\n
\r\n Success : {{success}}\r\n
\r\n
\r\n Failure : {{failure}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.rowNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sheetName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.name}}\r\n \r\n \r\n \r\n
\r\n
Status
\r\n \r\n
    \r\n
  • \r\n {{error}}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { DatePipe } from \"@angular/common\";\r\nimport { AfterViewInit, Component, OnInit, ViewChild, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\nimport { max, mergeMap } from \"rxjs/operators\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig, Validator } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { ElementdetailsService } from \"src/app/Service/elementdetails/elementdetails.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { IProjectElementDetailsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { IDocSetModel, IScheduleDefinitionModel, IStageElementDetails, IPorjectInputModel, IScheduleDefUploadStatusModel } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ScheduleDefinitionExcelUploadComponent } from '../schedule-definition-excel-upload/schedule-definition-excel-upload.component';\r\nimport { ElementDetailsCacheService, Module } from \"src/app/Service/element-details.data.service\";\r\nimport { ProjectViewModel } from \"src/app/ViewModel/ProjectModel\";\r\nimport { DocSetReviseComponent } from \"../docset-revise/docset-revise.component\";\r\nimport { EncryptDecryptService } from \"src/app/Service/encrypt-decrypt.service\";\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { DataBindingDirective, GridDataResult, PageChangeEvent } from \"@progress/kendo-angular-grid\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-schedule-defintion',\r\n templateUrl: './schedule-definition.component.html',\r\n styleUrls: ['./schedule-definition.component.css']\r\n})\r\nexport class ScheduleDefintionComponent implements OnInit, OnDestroy {\r\n enableFilter = false;\r\n isStageConfigLoaded: boolean = false;\r\n isAllowEdit: boolean = false;\r\n @ViewChild('schDefForm',{static:true}) schDefFormComponent!: DynamicFormComponent;\r\n @ViewChild('docSetForm') docSetFormComponent!: DynamicFormComponent;\r\n @ViewChild(DataBindingDirective) directive: any;\r\n schDefList: IScheduleDefinitionModel[] = [];\r\n docSetList: IDocSetModel[] = [];\r\n stageConfig: any[] = [];\r\n docSetStageConfig: FieldConfig[] = [];\r\n schConfig: FieldConfig[] = [];\r\n docConfig: FieldConfig[] = [];\r\n structPackEleId!: number;\r\n discEleId!: number;\r\n selectedOption: string = 'schedule';\r\n isSchDefEdit: boolean = false;\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n projectCode!: string;\r\n currentEditDocSet: IDocSetModel | null = null;\r\n isFetchDateFromDS: boolean = false;\r\n projModel: ProjectViewModel | null = null;\r\n @ViewChild('excelDocSetUpload') excelDocSetUpload: any;\r\n @ViewChild('excelSchDefUpload') excelSchDefUpload: any;\r\n acceptFileTypes: string = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n UnsubscribeArray: Subscription[] = [];\r\n filter: any = null;\r\n\r\n constructor(public _datepipe: DatePipe, private _scheDefService: ScheduleDefinitionService, private _projInfoService: ProjectInfoService, private loaderService: LoaderService,\r\n private _eleDetailsService: ElementdetailsService, private _notificationService: NotificationService, private _commonService: CommonService, private dialog: MatDialog, private _elementDetailCache: ElementDetailsCacheService,\r\n private _dialog: MatDialog, private encryptDecryptService: EncryptDecryptService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.projectCode = this._commonService.getProjectCode();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n let structureId = this._projInfoService.getProjectElementIdByDescription('Structure / Package').subscribe((x:any) => {\r\n this.structPackEleId = x.deId;\r\n });\r\n this.UnsubscribeArray.push(structureId);\r\n let disciplineId = this._projInfoService.getProjectElementIdByDescription('Discipline').subscribe((x:any) => {\r\n this.discEleId = x.deId;\r\n });\r\n this.UnsubscribeArray.push(disciplineId);\r\n this.projModel = this._commonService.getCurrentProjectDetails();\r\n this.loadDynamicForm(true);\r\n this.loadScheduleDefintionList();\r\n this.enableMemberRoleFeatures();\r\n\r\n if (this._commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this._commonService.getSessionStorageItem('requestedObject')));\r\n this.changeButtonToggle({ source: null, value: 'docset' });\r\n }\r\n }\r\n\r\n loadDynamicForm(isSchDef: boolean) {\r\n if (!this.isStageConfigLoaded) {\r\n let dynamicForm = this._projInfoService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Workflow, deDescription: 'Workflow Status' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.stageConfig = res.map(x => {\r\n let field: FieldConfig = {\r\n type: 'eipdaterange', de_id: x.dedId,\r\n name: x.dedShortDescription, label: x.dedDescription + \" (\" + x.dedShortDescription + \")\",\r\n rangeControlNames: [x.dedShortDescription + 'StartDate', x.dedShortDescription + 'EndDate'],\r\n value: new BehaviorSubject([]),\r\n minDate: this.projModel ? this.projModel.startDate : null,\r\n maxDate: this.projModel ? this.projModel.endDate : null,\r\n startDate: null,\r\n endDate: null\r\n }\r\n return field;\r\n })\r\n this.docSetStageConfig = res.map(x => {\r\n let field: FieldConfig = {\r\n type: 'eipdaterange', de_id: x.dedId,\r\n name: x.dedShortDescription, label: x.dedDescription + \" (\" + x.dedShortDescription + \")\",\r\n rangeControlNames: [x.dedShortDescription + 'StartDate', x.dedShortDescription + 'EndDate'],\r\n value: new BehaviorSubject([]),\r\n startDate: null,\r\n endDate: null,\r\n Var: true\r\n }\r\n return field;\r\n })\r\n this.isStageConfigLoaded = true;\r\n if (isSchDef)\r\n this.buildScheduleDefinitionForm();\r\n else\r\n this.buildDocumentSetForm()\r\n });\r\n this.UnsubscribeArray.push(dynamicForm);\r\n }\r\n else {\r\n if (isSchDef)\r\n this.buildScheduleDefinitionForm();\r\n else\r\n this.buildDocumentSetForm()\r\n }\r\n }\r\n\r\n get isScheduleDef(): boolean {\r\n return this.selectedOption === 'schedule';\r\n };\r\n\r\n buildScheduleDefinitionForm() {\r\n let cloneStageConfig: FieldConfig[] = this.stageConfig.map(x => { return { ...x } });\r\n this.schConfig = this.getSchConfig().concat(cloneStageConfig);\r\n this.schConfig.push({\r\n type: 'input',\r\n name: 'noOfDocsRequired',\r\n label: 'No of Documents Required',\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Please enter number of documents required\"\r\n },\r\n {\r\n name: \"pattern\",\r\n validator: Validators.pattern(\"^[0-9]*$\"),\r\n message: \"Enter only numbers\"\r\n }\r\n ]\r\n });\r\n this.schDefFormComponent.fields = this.schConfig;\r\n this.schDefFormComponent.createControl();\r\n }\r\n\r\n buildDocumentSetForm() {\r\n let clonedocsetStageConfig: FieldConfig[] = this.docSetStageConfig.map(x => { return { ...x } });\r\n this.docConfig = this.getDocSetConfig().concat(clonedocsetStageConfig);\r\n this.docConfig.push({\r\n type: 'input',\r\n name: 'noOfDocsRequired',\r\n label: 'No of Documents Required',\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Please enter number of documents required\"\r\n },\r\n {\r\n name: \"pattern\",\r\n validator: Validators.pattern(\"^[0-9]*$\"),\r\n message: \"Enter only numbers\"\r\n },\r\n {\r\n name: \"min\",\r\n validator: Validators.min(1),\r\n message: \"Minimum No Of Docs Required:1\"\r\n }\r\n ]\r\n });\r\n this.docSetFormComponent.fields = [];\r\n this.docSetFormComponent.fields = this.docConfig;\r\n this.docSetFormComponent.createControl();\r\n this.clearDocsetdate();\r\n let setformbulkdoc:any = this.docSetFormComponent.form.get('Structure/Package Name')?.valueChanges.subscribe((x: IProjectElementDetailsOutput) => {\r\n if (!!x) {\r\n let schDefModel: any = this.schDefList.find(y => y.deD_Id == x.dedId);\r\n this.docSetStageConfig.forEach(x => {\r\n \r\n \r\n let docSetStageDetail: IStageElementDetails | undefined;\r\n if (this.isFetchDateFromDS && !!this.currentEditDocSet) {\r\n docSetStageDetail = this.getDocSetStageDetail(this.currentEditDocSet, x);\r\n }\r\n let stageDetail: any = this.getStageDetail(schDefModel, x);\r\n if (stageDetail) {\r\n let _x = this.docConfig.find(x => x.de_id == stageDetail.stage_Id)\r\n if (_x) {\r\n let field: FieldConfig = _x\r\n field.minDate = stageDetail.start_Date;\r\n field.maxDate = stageDetail.end_Date;\r\n field.startDate = null;\r\n field.endDate = null;\r\n if (!!docSetStageDetail && !!docSetStageDetail.start_Date && !!docSetStageDetail.end_Date)\r\n field.value?.next([docSetStageDetail.start_Date, docSetStageDetail.end_Date]);\r\n else\r\n field.value?.next(new BehaviorSubject([]));\r\n }\r\n }\r\n })\r\n let noOfDocsRequired: FieldConfig|undefined = this.docConfig.find(x => x.name == 'noOfDocsRequired');\r\n if (noOfDocsRequired) {\r\n let currDocSetNoOfDocs: number = 0;\r\n if (this.currentEditDocSet && this.currentEditDocSet.structure_DED_Id == x.dedId) {\r\n currDocSetNoOfDocs = this.currentEditDocSet.number_Of_Docs;\r\n }\r\n let noOfDocs: number = schDefModel.number_Of_Docs + currDocSetNoOfDocs - this.docSetList.filter(ds => ds.structure_DED_Id == x.dedId).reduce((sum, current) => sum + current.number_Of_Docs, 0);\r\n if (noOfDocs <= 0) {\r\n this._notificationService.showPopup(\"Maximum count reached!!!. Please change the structure\", \"Warning\");\r\n noOfDocs = currDocSetNoOfDocs;\r\n }\r\n this.docSetFormComponent.form.get('noOfDocsRequired')?.clearValidators();\r\n this.docSetFormComponent.form.get('noOfDocsRequired')?.setValidators([Validators.required, Validators.max(noOfDocs), Validators.min(1), Validators.pattern(\"^[0-9]*$\")]);\r\n this.docSetFormComponent.form.get('noOfDocsRequired')?.updateValueAndValidity();\r\n let maxValidator: Validator|undefined = noOfDocsRequired.validations?.find(y => y.name == 'max');\r\n if (maxValidator) {\r\n maxValidator.validator = Validators.max(noOfDocs);\r\n maxValidator.message = \"Maximum No Of Docs Required:\" + noOfDocs;\r\n }\r\n else {\r\n noOfDocsRequired.validations?.push({\r\n name: \"max\",\r\n validator: Validators.max(noOfDocs),\r\n message: \"Maximum No Of Docs Required:\" + noOfDocs\r\n });\r\n }\r\n }\r\n }\r\n });\r\n this.UnsubscribeArray.push(setformbulkdoc);\r\n }\r\n\r\n clearDocsetdate() {\r\n if (this.docConfig && this.docConfig.length > 0) {\r\n let DateProperty: Array = ['SD', 'DD', 'GFC'];\r\n DateProperty.forEach((value, ke) => {\r\n let field: any = this.docConfig.find(x => x.name == value);\r\n\r\n if (field) {\r\n field.minDate = null;\r\n field.maxDate = null;\r\n field.startDate = null;\r\n field.endDate = null;\r\n field.value.next('');\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Get Schedule Defintion - Structure details\r\n * @returns FieldConfig[]\r\n */\r\n getSchConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'input',\r\n name: 'strucutreName',\r\n label: 'Structure/Package Name',\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Structure/Package Name Required\"\r\n },\r\n {\r\n name: \"pattern\",\r\n validator: Validators.pattern('^[a-zA-Z0-9 ]+$'),\r\n message: \"Special characters not allowed\"\r\n }\r\n ]\r\n },\r\n {\r\n type: 'input',\r\n name: 'structureNo',\r\n label: 'Structure/Package Number',\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Structure/Package Number Required\"\r\n },\r\n {\r\n name: \"pattern\",\r\n validator: Validators.pattern('^[a-zA-Z0-9 ]+$'),\r\n message: \"Special characters not allowed\"\r\n }\r\n ]\r\n }];\r\n }\r\n\r\n /**\r\n * Get Document Set Field Config Details - Discipline & Structure details\r\n * @returns FieldConfig[]\r\n */\r\n getDocSetConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'select',\r\n name: 'Discipline',\r\n label: 'Discipline',\r\n deDescription: 'Discipline',\r\n module_id: Module.ScheduleDocument,\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Please select discipline\"\r\n }\r\n ],\r\n value: new BehaviorSubject(null)\r\n },\r\n {\r\n type: 'select',\r\n name: 'Structure/Package Name',\r\n label: 'Structure/Package Name',\r\n deDescription: 'Structure / Package',\r\n module_id: Module.ScheduleDocument,\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Structure/Package Name Required\"\r\n }\r\n ],\r\n value: new BehaviorSubject(null)\r\n },\r\n {\r\n type: 'input',\r\n name: 'docset',\r\n label: 'Document Set',\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Document Set Name Required\"\r\n },\r\n {\r\n name: \"pattern\",\r\n validator: Validators.pattern('^[a-zA-Z0-9 ]+$'),\r\n message: \"Special characters not allowed\"\r\n }\r\n ]\r\n }];\r\n }\r\n\r\n loadScheduleDefintionList() {\r\n let getSchDeflist = this._scheDefService.getScheduleDefintionList({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: IScheduleDefinitionModel[]) => {\r\n this.schDefList = res;\r\n });\r\n this.UnsubscribeArray.push(getSchDeflist);\r\n }\r\n\r\n loadDocSetList() {\r\n let docsetlist = this._scheDefService.getDocSetList({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: IDocSetModel[]) => {\r\n this.docSetList = res;\r\n this.getGridColumnValue();\r\n });\r\n this.UnsubscribeArray.push(docsetlist);\r\n }\r\n\r\n /**\r\n * Button Toggle Event Handle\r\n * @param event\r\n */\r\n changeButtonToggle(event:any) {\r\n this.directive.skip = 0;\r\n this.directive.filter = null;\r\n this.selectedOption = event.value;\r\n this.enableFilter = false;\r\n if (this.selectedOption == 'schedule') {\r\n this.loadDynamicForm(true);\r\n this.loadScheduleDefintionList();\r\n\r\n }\r\n else {\r\n this.loadDynamicForm(false);\r\n this.loadDocSetList();\r\n }\r\n }\r\n\r\n saveScheduleDefintion() {\r\n let schDef: IScheduleDefinitionModel;\r\n let form: FormGroup = this.schDefFormComponent.value;\r\n if (!this.isSchDefEdit) {\r\n let schDefModel: any = this.schDefList.find(x => x.deD_Short_Description == form.get('structureNo')?.value && x.deD_Description == form.get('strucutreName')?.value);\r\n if (schDefModel) {\r\n this._notificationService.showPopup(\"Structure/Package name already exists\", \"Warning\");\r\n return;\r\n }\r\n }\r\n let noDateCount = this.stageConfig.filter(x => form.get(x.rangeControlNames[1])?.value == null).length;\r\n if (this.stageConfig.length == noDateCount) {\r\n this._notificationService.showPopup(\"Date is mandatory for atleast one Workflow stage\", \"Warning\");\r\n return;\r\n }\r\n let schDefReq: Observable = this._eleDetailsService.insertUpdateElementDetails({\r\n deD_Description: form.get('strucutreName')?.value\r\n , deD_Short_Description: form.get('structureNo')?.value, dE_Id: this.structPackEleId, is_Active: true, userId: this.memberId\r\n }).pipe(mergeMap((res: StandardOutputModel) => {\r\n \r\n if (res.successCode == 200 || res.successCode == 205) {\r\n let stageDetails: IStageElementDetails[] = this.stageConfig.map(x => {\r\n let stageDetail: IStageElementDetails = {\r\n stage_Id: x.de_id, start_Date: form.get(x.rangeControlNames[0])?.value,\r\n end_Date: form.get(x.rangeControlNames[1])?.value, stage_Description: x.label, stage_Short_Description: x.name, is_Active: true\r\n };\r\n return stageDetail;\r\n })\r\n\r\n schDef = {\r\n project_Id: this.projectId, group_Id: this.groupId, dE_Id: this.structPackEleId, deD_Id: +res.result, number_Of_Docs: Number(form.get('noOfDocsRequired')?.value),\r\n created_By: this.memberId, deD_Description: form.get('strucutreName')?.value, deD_Short_Description: form.get('structureNo')?.value, stageElementDetails: stageDetails\r\n }\r\n\r\n return this._scheDefService.insertUpdateSchDef(schDef)\r\n }\r\n else\r\n return new Observable()\r\n\r\n }));\r\n let saveSchDef = schDefReq.subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n if (!this.isSchDefEdit) {\r\n this.schDefList.push(schDef);\r\n this.schDefList = [...this.schDefList];\r\n }\r\n else {\r\n this.copyFields(schDef);\r\n }\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this.cancelScheduleDefintion();\r\n }\r\n if (res.successCode == 500) {\r\n\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(saveSchDef);\r\n }\r\n\r\n copyFields(schDef: IScheduleDefinitionModel) {\r\n if (!!schDef) {\r\n let gridSchDef: IScheduleDefinitionModel = this.schDefList.filter(x => x.deD_Description == schDef.deD_Description && x.deD_Short_Description == schDef.deD_Short_Description)[0];\r\n gridSchDef.number_Of_Docs = schDef.number_Of_Docs;\r\n gridSchDef.stageElementDetails = schDef.stageElementDetails;\r\n }\r\n }\r\n\r\n cancelScheduleDefintion() {\r\n let form: FormGroup = this.schDefFormComponent.value;\r\n form.reset();\r\n form.get('strucutreName')?.enable();\r\n form.get('structureNo')?.enable();\r\n this.isSchDefEdit = false;\r\n this.loadDynamicForm(true);\r\n this.loadScheduleDefintionList();\r\n this._elementDetailCache.deleteElementDetails(Module.ScheduleDocument + \"_Structure / Package\");\r\n }\r\n\r\n cancelDocSet() {\r\n this.currentEditDocSet = null;\r\n this.loadDynamicForm(false);\r\n this.loadDocSetList();\r\n }\r\n\r\n editSchDef(schDef: IScheduleDefinitionModel) {\r\n this.isSchDefEdit = true;\r\n let form: FormGroup = this.schDefFormComponent.value;\r\n form.get('strucutreName')?.setValue(schDef.deD_Description);\r\n form.get('strucutreName')?.disable();\r\n form.get('structureNo')?.setValue(schDef.deD_Short_Description);\r\n form.get('structureNo')?.disable();\r\n form.get('noOfDocsRequired')?.setValue(schDef.number_Of_Docs);\r\n this.stageConfig.forEach(x => {\r\n let stageDetail: any = this.getStageDetail(schDef, x);\r\n if (stageDetail && x.rangeControlNames) {\r\n form.get(x.rangeControlNames[0])?.setValue(stageDetail.start_Date);\r\n form.get(x.rangeControlNames[1])?.setValue(stageDetail.end_Date);\r\n }\r\n })\r\n this._elementDetailCache.deleteElementDetails(Module.ScheduleDocument + \"_Structure / Package\");\r\n\r\n }\r\n\r\n editDocSet(docSet: IDocSetModel) {\r\n this.cancelDocSet();\r\n this.currentEditDocSet = docSet;\r\n this.isFetchDateFromDS = true;\r\n let disciplie: any = this.docConfig.find(x => x.name == \"Discipline\");\r\n disciplie.value.next(docSet.disc_DED_Id);\r\n let structure: any = this.docConfig.find(x => x.name == \"Structure/Package Name\");\r\n structure.value.next(docSet.structure_DED_Id);\r\n let form: FormGroup = this.docSetFormComponent.value;\r\n form.get('noOfDocsRequired')?.setValue(docSet.number_Of_Docs);\r\n form.get('docset')?.setValue(docSet.document_Set_Name);\r\n this.docSetStageConfig.forEach(x => {\r\n let stageDetail: any = this.getDocSetStageDetail(docSet, x);\r\n if(x.rangeControlNames){\r\n form.get(x.rangeControlNames[0])?.setValue(stageDetail.start_Date);\r\n form.get(x.rangeControlNames[1])?.setValue(stageDetail.end_Date);\r\n }\r\n })\r\n }\r\n\r\n deleteDocSet(docSet: IDocSetModel) {\r\n this._notificationService.showPopup('Are you sure you want to delete', 'Confirm').then(msg => {\r\n if (msg == 'yes') {\r\n let deletedocsetsch = this._scheDefService.deleteDocSet({ project_Id: this.projectId, group_Id: this.groupId, doc_Set_Id: docSet.doc_Set_Id }).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this.docSetList = [];\r\n this.cancelDocSet();\r\n }\r\n else if (res.successCode == 205) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n else {\r\n this._notificationService.showToast(\"Failed to delete Document Set\", \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(deletedocsetsch);\r\n }\r\n });\r\n }\r\n\r\n deleteSchDef(schDef: IScheduleDefinitionModel) {\r\n this._notificationService.showPopup('Are you sure you want to delete', 'Confirm').then(msg => {\r\n if (msg == 'yes') {\r\n this._scheDefService.deleteSchDef({ project_Id: this.projectId, group_Id: this.groupId, struct_Id: schDef.deD_Id }).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this.schDefList = [];\r\n this.cancelScheduleDefintion();\r\n this._elementDetailCache.deleteElementDetails(Module.ScheduleDocument + \"_Structure / Package\");\r\n\r\n }\r\n else if (res.successCode == 205) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n else {\r\n this._notificationService.showToast(\"Failed to delete Schedule Defintion\", \"Error\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n /**\r\n * Gets the particular stage element details\r\n * @param data Schedule Defintion Model Data\r\n * @param stage Stage Details\r\n * @returns Stage Element Details\r\n */\r\n getStageDetail(data: IScheduleDefinitionModel, stage: FieldConfig): IStageElementDetails|undefined {\r\n return data.stageElementDetails.find(x => x.stage_Id == stage.de_id);\r\n }\r\n\r\n /**\r\n * Gets the particular stage element details\r\n * @param data Document Set Model Data\r\n * @param stage Stage Details\r\n * @returns Stage Element Details\r\n */\r\n getDocSetStageDetail(data: IDocSetModel, stage: FieldConfig): IStageElementDetails|undefined {\r\n return data.stageDocumentSetDetails.find(x => x.stage_Id == stage.de_id);\r\n }\r\n\r\n /**\r\n * Gets the end date of each stage from the schedule defintion model\r\n * @param data Schedule Defintion Model\r\n * @param stage Field Config\r\n * @returns End date of requested stage\r\n */\r\n getDate(data: IScheduleDefinitionModel, stage: FieldConfig): string|null {\r\n let _obj = this.getStageDetail(data, stage);\r\n if (_obj)\r\n return this._datepipe.transform(_obj.end_Date, 'dd-MMM-yyyy');\r\n else\r\n return ''\r\n }\r\n\r\n /**\r\n * Gets the start & end date of each stage from the schedule defintion model\r\n * @param data Schedule Defintion Model\r\n * @param stage Field Config\r\n * @returns End date of requested stage\r\n */\r\n getDateRange(data: IScheduleDefinitionModel, stage: FieldConfig): string {\r\n let stageDetail: any = this.getStageDetail(data, stage)\r\n if (!!stageDetail && !!stageDetail.start_Date && !!stageDetail.end_Date)\r\n return this._datepipe.transform(stageDetail.start_Date, 'dd-MMM-yyyy') + \" - \" + this._datepipe.transform(stageDetail.end_Date, 'dd-MMM-yyyy');\r\n else\r\n return '';\r\n }\r\n\r\n /**\r\n * Gets the end date of each stage from the schedule defintion model\r\n * @param data Schedule Defintion Model\r\n * @param stage Field Config\r\n * @returns End date of requested stage\r\n */\r\n getDocSetDate(data: IDocSetModel, stage: FieldConfig): string|null {\r\n let _obj = this.getDocSetStageDetail(data, stage);\r\n if (_obj)\r\n return this._datepipe.transform(_obj.end_Date, 'dd-MMM-yyyy');\r\n else\r\n return '';\r\n }\r\n /**\r\n * Gets the start & end date of each stage from the schedule defintion model\r\n * @param data Schedule Defintion Model\r\n * @param stage Field Config\r\n * @returns End date of requested stage\r\n */\r\n getDocSetDateRange(data: IDocSetModel, stage: FieldConfig): string|null {\r\n let stageDetail: any = this.getDocSetStageDetail(data, stage)\r\n if (!!stageDetail && !!stageDetail.start_Date && !!stageDetail.end_Date)\r\n return this._datepipe.transform(stageDetail.start_Date, 'dd-MMM-yyyy') + \" - \" + this._datepipe.transform(stageDetail.end_Date, 'dd-MMM-yyyy');\r\n else\r\n return ''\r\n }\r\n\r\n /**\r\n * Gets grid column text\r\n * @param data \r\n *\r\n */\r\n getGridColumnValue() {\r\n if (this.docSetList && this.docSetList.length > 0)\r\n this.docSetList.map(m => {\r\n m.disciplineDesc = m.disc_Short_Description + '-' + m.disc_Description;\r\n m.structureDesc = m.structure_Short_Description + '-' + m.structure_Description;\r\n })\r\n }\r\n\r\n saveDocSet() {\r\n let form: FormGroup = this.docSetFormComponent.value;\r\n let structure: IProjectElementDetailsOutput = form.get('Structure/Package Name')?.value;\r\n if (this.currentEditDocSet == null) {\r\n let docSetModel: any = this.docSetList.find(x => x.document_Set_Name == form.get('docset')?.value && x.structure_DED_Id == structure.dedId);\r\n if (docSetModel) {\r\n this._notificationService.showPopup(\"Document set name already exists\", \"Warning\");\r\n // Values should not be erased\r\n //this.cancelDocSet();\r\n return;\r\n }\r\n }\r\n let stageDetails: IStageElementDetails[] = this.docSetStageConfig.map(x => {\r\n let stageDetail: IStageElementDetails = {\r\n stage_Id: x.de_id, start_Date: (x.rangeControlNames?form.get(x.rangeControlNames[0])?.value:null),\r\n end_Date: (x.rangeControlNames?form.get(x.rangeControlNames[1])?.value:null), stage_Description: x.label, stage_Short_Description: x.name, is_Active: true\r\n }\r\n return stageDetail;\r\n });\r\n let noDateCount = stageDetails.filter(x => x.end_Date == null).length;\r\n if (this.stageConfig.length == noDateCount) {\r\n this._notificationService.showPopup(\"Date is mandatory for atleast one Workflow stage\", \"Warning\");\r\n // Values should not be erased\r\n //this.cancelDocSet();\r\n return;\r\n }\r\n let discipline: IProjectElementDetailsOutput = form.get('Discipline')?.value;\r\n let docSet: IDocSetModel = {\r\n project_Id: this.projectId, group_Id: this.groupId, document_Set_Name: form.get('docset')?.value, structure_DED_Id: structure.dedId, disc_DED_Id: discipline.dedId, number_Of_Docs: Number(form.get('noOfDocsRequired')?.value),\r\n disc_Short_Description: discipline.dedShortDescription, disc_Description: discipline.dedDescription, structure_Description: structure.dedDescription, structure_Short_Description: structure.dedShortDescription, created_By: this.memberId, stageDocumentSetDetails: stageDetails, is_Active: true\r\n }\r\n if (this.currentEditDocSet != null)\r\n docSet.doc_Set_Id = this.currentEditDocSet.doc_Set_Id;\r\n let updatedocset = this._scheDefService.insertUpdateDocSet(docSet).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n if (!!this.currentEditDocSet) {\r\n let docSetModel: IDocSetModel = this.docSetList.filter(x => x.doc_Set_Id == docSet.doc_Set_Id)[0];\r\n if (!!docSetModel) {\r\n docSetModel.number_Of_Docs = docSet.number_Of_Docs;\r\n docSetModel.stageDocumentSetDetails = docSet.stageDocumentSetDetails;\r\n docSetModel.structure_DED_Id = docSet.structure_DED_Id;\r\n docSetModel.disc_DED_Id = docSet.disc_DED_Id;\r\n }\r\n }\r\n else {\r\n docSet.doc_Set_Id = +res.result;\r\n this.docSetList.push(docSet);\r\n this.docSetList = [...this.docSetList];\r\n this.getGridColumnValue();\r\n }\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n this.cancelDocSet();\r\n this._notificationService.showToast(res.successMessage, res.successCode == 200 ? \"Success\" : \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(updatedocset);\r\n this.loadDocSetList();\r\n }\r\n\r\n public downloadDocSetExcelTemplate() {\r\n this.loaderService.isLoading.next(true);\r\n let inputData: IPorjectInputModel = { project_Id: this.projectId, group_Id: this.groupId }\r\n if (this.schDefList.length == 0 && this.docSetList.length == 0) {\r\n let fileName = \"EngineeringSchedule_Excel_Template-\" + this.projectCode + \".xlsx\";\r\n let engschexltemplate = this._scheDefService.GetEngSchExcelTemplate(inputData).subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n },\r\n (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(engschexltemplate);\r\n }\r\n else {\r\n\r\n let fileName = \"DocumentSet_Excel_Template-\" + this.projectCode + \".xlsx\";\r\n let docsetexltemp = this._scheDefService.GetDocSetExcelTemplate(inputData).subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n },\r\n (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(docsetexltemp);\r\n }\r\n }\r\n\r\n uploadDocSetClick() {\r\n this.excelDocSetUpload.nativeElement.click();\r\n }\r\n\r\n uploadDocSetTemplate(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n if (event.target.files[0].type != this.acceptFileTypes) {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showPopup(\"File type is incorrect(*.xlsx file type expected)\", \"Warning\");\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n return;\r\n }\r\n\r\n const formData: FormData = new FormData();\r\n formData.append('DocSetExcelTemplate', event.target.files[0], event.target.files[0].name);\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('GroupId', this.groupId.toString());\r\n formData.append('MemberId', this.memberId.toString());\r\n if (this.schDefList.length == 0 && this.docSetList.length == 0) {\r\n let uploadEngSchExlTemp = this._scheDefService.UploadEngSchExcelTemplate(formData).subscribe((res: IScheduleDefUploadStatusModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n let dialogRef = this.dialog.open(ScheduleDefinitionExcelUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { schDefres: res, module: \"Engineering Schedule Definition\" },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.docSetList = [];\r\n this.loadDocSetList();\r\n });\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n }, (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(uploadEngSchExlTemp);\r\n }\r\n else {\r\n\r\n let uploadDocSetExlTemp = this._scheDefService.UploadDocSetExcelTemplate(formData).subscribe((res: IScheduleDefUploadStatusModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n let dialogRef = this.dialog.open(ScheduleDefinitionExcelUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { schDefres: res, module: \"Document Set\" },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.docSetList = [];\r\n this.loadDocSetList();\r\n this.schDefList = [];\r\n this.loadScheduleDefintionList();\r\n });\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n }, (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(uploadDocSetExlTemp);\r\n }\r\n }\r\n\r\n public downloadSchDefExcelTemplate() {\r\n this.loaderService.isLoading.next(true);\r\n let inputData: IPorjectInputModel = { project_Id: this.projectId, group_Id: this.groupId }\r\n if (this.schDefList.length == 0 && this.docSetList.length == 0) {\r\n let fileName = \"EngineeringSchedule_Excel_Template-\" + this.projectCode + \".xlsx\";\r\n let getengSchexltemp = this._scheDefService.GetEngSchExcelTemplate(inputData).subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n },\r\n (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(getengSchexltemp);\r\n }\r\n else {\r\n let fileName = \"ScheduleDefinition_Excel_Template-\" + this.projectCode + \".xlsx\";\r\n let getschdefexltemp = this._scheDefService.GetSchDefExcelTemplate(inputData).subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n },\r\n (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(getschdefexltemp);\r\n }\r\n }\r\n\r\n uploadSchDefClick() {\r\n this.excelSchDefUpload.nativeElement.click();\r\n }\r\n\r\n uploadSchDefTemplate(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n if (event.target.files[0].type != this.acceptFileTypes) {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showPopup(\"File type is incorrect(*.xlsx file type expected)\", \"Warning\");\r\n this.excelSchDefUpload.nativeElement.value = '';\r\n return;\r\n }\r\n\r\n const formData: FormData = new FormData();\r\n formData.append('SchDefExcelTemplate', event.target.files[0], event.target.files[0].name);\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('GroupId', this.groupId.toString());\r\n formData.append('MemberId', this.memberId.toString());\r\n if (this.schDefList.length == 0 && this.docSetList.length == 0) {\r\n let uploadengschexltemp = this._scheDefService.UploadEngSchExcelTemplate(formData).subscribe((res: IScheduleDefUploadStatusModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n let dialogRef = this.dialog.open(ScheduleDefinitionExcelUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { schDefres: res, module: \"Engineering Schedule Definition\" },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.docSetList = [];\r\n this.loadDocSetList();\r\n this.schDefList = [];\r\n this.loadScheduleDefintionList();\r\n });\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n }, (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this.excelDocSetUpload.nativeElement.value = '';\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(uploadengschexltemp);\r\n }\r\n else {\r\n let uploadSchdefexlTemp = this._scheDefService.UploadSchDefEExcelTemplate(formData).subscribe((res: IScheduleDefUploadStatusModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n let dialogRef = this.dialog.open(ScheduleDefinitionExcelUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { schDefres: res, module: \"Schedule Definition\" },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.schDefList = [];\r\n this.loadScheduleDefintionList();\r\n });\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.excelSchDefUpload.nativeElement.value = '';\r\n }, (err:any) => {\r\n this.loaderService.isLoading.next(false);\r\n this.excelSchDefUpload.nativeElement.value = '';\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(uploadSchdefexlTemp);\r\n }\r\n }\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n reviseDocSet(docSet: IDocSetModel) {\r\n let schDefModel: any = this.schDefList.find(y => y.deD_Id == docSet.structure_DED_Id);\r\n let currDocSetNoOfDocs: number = docSet.number_Of_Docs;\r\n let noOfDocs: any = schDefModel.number_Of_Docs + currDocSetNoOfDocs - this.docSetList.filter(ds => ds.structure_DED_Id == docSet.structure_DED_Id).reduce((sum, current) => sum + current.number_Of_Docs, 0);\r\n const dialogRef = this._dialog.open(DocSetReviseComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docSet: docSet, schDef: schDefModel, noOfDocs: noOfDocs },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n dialogRef.afterClosed().subscribe((x:any) => {\r\n this.docSetList = [];\r\n this.loadDocSetList();\r\n })\r\n }\r\n enableMemberRoleFeatures() {\r\n let projectMemFeature = this._commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.isAllowEdit = res.some(data => data.feature_Desc == 'Document Set Edit');\r\n });\r\n this.UnsubscribeArray.push(projectMemFeature);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Schedule\r\n Document Set\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Excel Download\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Excel Upload\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.deD_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.deD_Short_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.number_Of_Docs}}\r\n \r\n \r\n \r\n \r\n {{getDate(dataItem,stage)}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Excel Download\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Excel Upload\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.disciplineDesc}}\r\n \r\n \r\n \r\n \r\n {{dataItem.structureDesc}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_Set_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.number_Of_Docs}}\r\n \r\n \r\n \r\n \r\n {{getDocSetDate(dataItem,stage)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IDocumentMailInputModel, IDocumentMailOutputModel } from 'src/app/ViewModel/DocumentModel';\r\n\r\n@Component({\r\n selector: 'app-schedule-document-mail-list',\r\n templateUrl: './schedule-document-mail-list.component.html',\r\n styleUrls: ['./schedule-document-mail-list.component.css']\r\n})\r\nexport class ScheduleDocumentMailListComponent implements OnInit {\r\n public mailList: IDocumentMailOutputModel[] = [];\r\n public filteredList: IDocumentMailOutputModel[] = [];\r\n public docNo: string = '';\r\n public selectedMailType: number = 0;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private _docService: DocumentService,\r\n private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public _data: IDocumentMailInputModel\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this._data != null) {\r\n this.docNo = this._data.DocumentNo;\r\n this.selectedMailType = this._data.Category;\r\n this.initGrid();\r\n }\r\n }\r\n\r\n public async initGrid() {\r\n this.mailList = await this._docService.getDocumentMsgList(this._data.DocId, this._data.ProjectId, this._data.GroupId, this._data.MemberId, this._data.TransType, this._data.revisionNo).toPromise();\r\n if (this._data.Category == 2) {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory == 3);\r\n }\r\n else {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory != 3);\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n filterMailType(event: any) { \r\n if (event.value == 2) {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory == 3);\r\n }\r\n else {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory != 3);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

Document No : {{docNo}} :

\r\n \r\n \r\n Mail\r\n Transmittal\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n {{dataItem.to}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.respondBy | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { IDocumentRevHistoryModel, IDocRevHistoryOutputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-schedule-document-revision-history',\r\n templateUrl: './schedule-document-revision-history.component.html',\r\n styleUrls: ['./schedule-document-revision-history.component.css']\r\n})\r\nexport class ScheduleDocumentRevisionHistoryComponent implements OnInit {\r\n @Input() inputModel!: IDocumentRevHistoryModel;\r\n revisionHistoryList: IDocRevHistoryOutputModel[] = [];\r\n\r\n constructor(\r\n private _docService: DocumentService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.inputModel != null) {\r\n this.bindGrid();\r\n }\r\n }\r\n\r\n public async bindGrid() {\r\n this.revisionHistoryList = await this._docService.getDocumentRevisionHistory(this.inputModel).toPromise();\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisedOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revCategoryDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.printSizeDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.noOfSheets}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.docStatusDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.authorizedByName}}\r\n \r\n \r\n \r\n","import { DatePipe } from \"@angular/common\";\r\nimport { Component, Inject, Input, ViewChild } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA, throwMatDialogContentAlreadyAttachedError } from \"@angular/material/dialog\";\r\nimport { MatCheckboxChange } from \"@angular/material/checkbox\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { DocumentRevisionLinkService } from \"src/app/Service/document-revision-link/document-revision-link.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { BusinessGroupModel } from \"src/app/ViewModel/BusinessGroupModel\";\r\nimport { IDCIViewModel } from \"src/app/ViewModel/DCIViewModels\";\r\nimport { EIPAutoCompleteEventModel } from \"src/app/ViewModel/EIPAutoCompleteEventModel\";\r\nimport { IDCIRevisionMaster, IProjectElementDetailsOutput, IProjectElementsOutput, IProjectFeatureOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { IProjectMasterViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { IDocSetModel, IStageElementDetails } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { ICPCDocOutputModel, ICPCInputModel, IRevisionCategory, IScheduleBulkInsertModel, IScheduleDocDetails, IScheduleDocInfo, IScheduleDocModel, IScheduleDocRevModel, IScheduleDocStageDetails, IScheduleMHDetails, IScheduleStageId, IScheduleType, IScheduleWFPlanDetails, IScheduleWFPlanStageDetails, IScheduleWorkflowDetails, IWBSOutputModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { WorkflowTemplateModel } from \"src/app/ViewModel/WorkflowTemplateModel\";\r\n\r\ninterface IStageDates {\r\n minDate: Date | null,\r\n maxDate: Date | null,\r\n value: Date | null\r\n}\r\n\r\n@Component({\r\n selector: 'app-schedule-edit',\r\n templateUrl: './schedule-edit.component.html',\r\n styleUrls: ['./schedule-edit.component.css']\r\n})\r\nexport class ScheduleEditComponent {\r\n private _schDoc: IScheduleDocInfo;\r\n private _dciViewModel!: IDCIViewModel;\r\n private _superEdit: boolean;\r\n projectId!: number;\r\n memberId!: number;\r\n groupId!: number;\r\n get schDoc(): IScheduleDocInfo {\r\n return this._schDoc;\r\n }\r\n @Input() set schDoc(value: IScheduleDocInfo) {\r\n if (!!value && typeof value == \"object\") {\r\n this._schDoc = value;\r\n this.fetchDciViewDocDetails();\r\n }\r\n }\r\n public panelOpenState = true;\r\n @ViewChild('dciElementDetailsForm') dciElementDetailsForm!: DynamicFormComponent;\r\n @ViewChild('dciNoForm') dciNoDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciTitleForm') dciTitleDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciMHdetailsForm') dciMHDetailsDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciApprovalBy') dciApprovalByDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciDocsetAndStages') dciDocsetAndStagesForm!: DynamicFormComponent;\r\n @ViewChild('dciRevision') dciRevisionForm!: DynamicFormComponent;\r\n\r\n dciForm!: FormGroup;\r\n docScheduleForm!: FormGroup;\r\n revForm!: FormGroup;\r\n printSizeList: IProjectElementDetailsOutput[] = [];\r\n selectedPrintSize!: number;\r\n dciStatusList: IProjectElementDetailsOutput[] = [];\r\n selectedDciStatus!: number;\r\n isCanApprove: boolean = false;\r\n revCategoryList: IRevisionCategory[] = [];\r\n selectedRevCategory!: number;\r\n inputRequiredOptions: any[] = [{ value: true, name: \"Required\" }, { value: false, name: \"Not Required\" }];\r\n schTypeOptions: IScheduleType[] = [{ schType_Id: 1, schType_Name: \"DCI\" }, { schType_Id: 2, schType_Name: \"Ext DCI\" }, { schType_Id: 3, schType_Name: \"Std DCI\" }, { schType_Id: 4, schType_Name: \"Vendor DCI\" }];\r\n projBusinessGroups: BusinessGroupModel[] = [];\r\n selectedApprovalBy!: number;\r\n approverList: IProjectFeatureOutput[] = [];\r\n selectedAuthorisedBy!: number;\r\n scheduleWFPlanStageDetails: IScheduleWFPlanStageDetails[] = [];\r\n structPackEleId!: number;\r\n workflowList: WorkflowTemplateModel[] = [];\r\n selectedWorkflow!: number;\r\n docSetList: IDocSetModel[] = [];\r\n filteredDocSetList: IDocSetModel[] = [];\r\n selectedDocSet?: number;\r\n selectedDocSetStageDetails: IStageElementDetails[] = [];\r\n IsDisabled: boolean = true;\r\n stageDates: Map = new Map();\r\n isDocSetRequired: boolean = true;\r\n isWBSIntegration: boolean = false;\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isAutoRevision: boolean = false;\r\n dciRevisionList: IDCIRevisionMaster[] = [];\r\n wbsList: any = [];\r\n dvcodeList: any = [];\r\n JOBCode!: string;\r\n WBSCode!: string | null;\r\n DeliverableCode!: number | null;\r\n docCategoryList: IProjectElementDetailsOutput[] = [];\r\n Visible_doccatelist: boolean = false;\r\n selectedDCICodeIdValue: number = 0;\r\n SetDCIMaxProgressLevel: IProjectElementsOutput;\r\n ProgressLevelsList: IProjectElementDetailsOutput[];\r\n selectedMaxProgressLevel: number;\r\n\r\n constructor(private _projService: ProjectInfoService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private _notificationService: NotificationService,\r\n private _commonService: CommonService,\r\n private _formBuilder: FormBuilder,\r\n private _scheDefService: ScheduleDefinitionService,\r\n public _datepipe: DatePipe, public _dialogRef: MatDialogRef,\r\n private _dciRevMaster: DocumentRevisionLinkService,\r\n private _projectService: ProjectMasterService,\r\n @Inject(MAT_DIALOG_DATA) public _data: any) {\r\n this._schDoc = this._data.dataItem;\r\n this._superEdit = this._data.isSuperEdit;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.projectId = this._commonService.getProjectId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.getProjectStaticElements();\r\n this.fetchDciViewDocDetails();\r\n this.getWBSCodes();\r\n }\r\n\r\n createDCIForm() {\r\n this.dciForm = this._formBuilder.group({\r\n dciSerialNo: new FormControl({ value: '', disabled: !this._superEdit }),\r\n title: new FormControl({ value: '', disabled: !this._superEdit }, [Validators.required]),\r\n enggManhours: new FormControl('', [Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")]),\r\n draftingManHours: new FormControl('', [Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")]),\r\n weightage: new FormControl('', Validators.pattern(\"^[0-9]*\\.?[0-9]*$\")),\r\n inputRequired: new FormControl(false),\r\n schType: new FormControl(''),\r\n wbsCode: new FormControl(),\r\n dvCode: new FormControl()\r\n });\r\n this.docScheduleForm = this._formBuilder.group({\r\n approvalBy: new FormControl('', Validators.required),\r\n formApprovalBy: new FormControl('', Validators.required),\r\n workflow: new FormControl('', Validators.required),\r\n formWorkflow: new FormControl('', Validators.required),\r\n docSet: new FormControl('', Validators.required),\r\n formDocSet: new FormControl('', Validators.required),\r\n MaxProgressLevel: new FormControl(),\r\n formMaxProgressLevel: new FormControl()\r\n });\r\n this.revForm = this._formBuilder.group({\r\n dciStatus: new FormControl('', [Validators.required]),\r\n formDciStatus: new FormControl('', [Validators.required]),\r\n DocumentCategory: new FormControl(),\r\n revision: new FormControl({ value: '', disabled: true }, [Validators.required]),\r\n authorisedBy: new FormControl('', [Validators.required]),\r\n formAuthorisedBy: new FormControl('', [Validators.required]),\r\n qrCodeTag: new FormControl(true),\r\n reference: new FormControl(),\r\n noOfSheets: new FormControl(),\r\n docCategoryid: new FormControl(),\r\n revCategory: new FormControl('', Validators.required),\r\n formrevCategory: new FormControl('', Validators.required),\r\n printSize: new FormControl('', [Validators.required]),\r\n formPrintSize: new FormControl('', [Validators.required]),\r\n comments: new FormControl(),\r\n isConfidential: new FormControl(true),\r\n });\r\n }\r\n\r\n /**\r\n * Get Element Details (Print Size,Doc Status)\r\n */\r\n public getElementDetails(elementName: string, ModuleId?: number) {\r\n if (!ModuleId)\r\n ModuleId = Module.UploadDocument\r\n this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: ModuleId, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Print Size\":\r\n {\r\n this.printSizeList = res;\r\n this.selectedPrintSize = this._dciViewModel.print_Size_Id;\r\n this.setFormValue(this.revForm, \"formPrintSize\", this.selectedPrintSize);\r\n }\r\n break;\r\n case \"Status\":\r\n {\r\n this.dciStatusList = res;\r\n this.selectedDciStatus = this._dciViewModel.doc_Status_Id;\r\n this.setFormValue(this.revForm, \"formDciStatus\", this.selectedDciStatus);\r\n }\r\n break;\r\n case \"Document Category\":\r\n {\r\n if (this._dciViewModel && this._dciViewModel.dciCodeId) {\r\n this.docCategoryList = res;\r\n this.selectedDCICodeIdValue = this._dciViewModel.dciCodeId;\r\n this.setFormValue(this.revForm, \"DocumentCategory\", this.selectedDCICodeIdValue);\r\n this.Visible_doccatelist = true;\r\n }\r\n else\r\n this.Visible_doccatelist = false;\r\n }\r\n break;\r\n case \"Progress Level\":\r\n this.ProgressLevelsList = res;\r\n this.selectedMaxProgressLevel = this._dciViewModel.max_ProgressLevel_Id;\r\n this.setFormValue(this.revForm, \"formMaxProgressLevel\", this.selectedMaxProgressLevel);\r\n break;\r\n }\r\n }, err => { });\r\n }\r\n\r\n fetchDciViewDocDetails() {\r\n this.createDCIForm();\r\n this._scheduleDocService.GetDCIDocumentViewDetails({\r\n project_Id: this.projectId, group_Id: this.groupId,\r\n doc_Id: this.schDoc.doc_Id, revision_No: this.schDoc.revision_No\r\n }).subscribe(x => {\r\n this._dciViewModel = x;\r\n this.getElementDetailsForm();\r\n this.setDciFormValues();\r\n this.setRevisionFormValues();\r\n this.getRevisionCategories();\r\n this.getProjectBusinessGroups();\r\n this.getWorkflowDetails();\r\n if (this.isDocSetRequired) {\r\n this.loadStages();\r\n }\r\n else {\r\n this.loadWorkflowStages();\r\n }\r\n this.getApproverList();\r\n this.getProjectRevisionMaster();\r\n this.setFormValue(this.revForm, \"comments\", this._dciViewModel.comments);\r\n\r\n })\r\n }\r\n\r\n setDciFormValues() {\r\n this.setFormValue(this.dciForm, \"dciSerialNo\", this._dciViewModel.doc_No);\r\n this.setFormValue(this.dciForm, \"title\", this._dciViewModel.doc_Title);\r\n this.setFormValue(this.dciForm, \"enggManhours\", this._dciViewModel.e_Man_Hours);\r\n this.setFormValue(this.dciForm, \"draftingManHours\", this._dciViewModel.d_Man_Hours);\r\n this.setFormValue(this.dciForm, \"weightage\", this._dciViewModel.weightage);\r\n this.getElementDetails(\"Document Category\", Module.ScheduleDocument);\r\n let inputRequired: any = this.inputRequiredOptions.filter(x => x.value == this._dciViewModel.is_Input_Required)[0];\r\n this.setFormValue(this.dciForm, \"inputRequired\", inputRequired);\r\n let schType: IScheduleType = this.schTypeOptions.filter(x => x.schType_Id == this._dciViewModel.schedule_Type)[0];\r\n this.setFormValue(this.dciForm, \"schType\", schType);\r\n this.WBSCode = this._dciViewModel.wbS_Code;\r\n this.setFormValue(this.dciForm, \"wbsCode\", this.WBSCode);\r\n this.DeliverableCode = this._dciViewModel.deliverable_Code;\r\n this.setFormValue(this.dciForm, \"dvCode\", this.DeliverableCode);\r\n }\r\n\r\n setRevisionFormValues() {\r\n this.getElementDetails(\"Print Size\", Module.ScheduleDocument);\r\n this.getElementDetails(\"Status\", Module.ScheduleDocument);\r\n this.getElementDetails(\"Progress Level\", Module.Workflow);\r\n this.setFormValue(this.revForm, \"qrCodeTag\", this._dciViewModel.qrCodeStatus);\r\n this.setFormValue(this.revForm, \"reference\", this._dciViewModel.reference);\r\n this.setFormValue(this.revForm, \"revision\", this._dciViewModel.revision_No);\r\n this.setFormValue(this.revForm, \"noOfSheets\", this._dciViewModel.noOfSheets);\r\n this.setFormValue(this.revForm, \"isConfidential\", this._dciViewModel.is_Confidential);\r\n }\r\n\r\n setFormValue(form: FormGroup, formControlName: string, value: any) {\r\n form.get(formControlName)?.setValue(value);\r\n }\r\n\r\n /**\r\n * Get Project business groups\r\n */\r\n getProjectBusinessGroups() {\r\n this._commonService.getProjectBusinessGroups(this._commonService.getProjectId()).subscribe(res => {\r\n this.projBusinessGroups = res;\r\n this.selectedApprovalBy = this._dciViewModel.to_Group_Id;\r\n this.setFormValue(this.docScheduleForm, \"formApprovalBy\", this.selectedApprovalBy);\r\n });\r\n }\r\n\r\n selectedschtype!: number;\r\n\r\n changeButtonToggle(event: { value: { schType_Id: number; }; }) {\r\n this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x;\r\n this.selectedschtype = event.value.schType_Id;\r\n this.workflowList = this.workflowList.filter(x => x.scheduleType == this.selectedschtype);\r\n this.selectedWorkflow = this._dciViewModel.workflow_Id;\r\n this.setFormValue(this.docScheduleForm, \"formWorkflow\", this.selectedWorkflow);\r\n })\r\n }\r\n\r\n getWorkflowDetails() {\r\n this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x;\r\n this.selectedschtype = this._dciViewModel.schedule_Type;\r\n this.workflowList = this.workflowList.filter(x => x.scheduleType == this.selectedschtype);\r\n this.selectedWorkflow = this._dciViewModel.workflow_Id;\r\n this.setFormValue(this.docScheduleForm, \"formWorkflow\", this.selectedWorkflow);\r\n })\r\n }\r\n\r\n getRevisionCategories() {\r\n this.revCategoryList = [{ revCategoryId: 1, revCategory: 'Minor' }, { revCategoryId: 2, revCategory: 'Major' }, { revCategoryId: 3, revCategory: 'First Release' }];\r\n this.selectedRevCategory = this._dciViewModel.revision_Category;\r\n this.setFormValue(this.revForm, \"formrevCategory\", this.selectedRevCategory);\r\n }\r\n\r\n public getApproverList() {\r\n this._projService.getProjectFeatureWiseMembers({ projectId: this.projectId, groupId: this.groupId, featureDescription: 'Approve' })\r\n .subscribe((res: IProjectFeatureOutput[]) => {\r\n this.approverList = res;\r\n this.selectedAuthorisedBy = this._dciViewModel.authorized_By_Id;\r\n this.setFormValue(this.revForm, \"formAuthorisedBy\", this.selectedAuthorisedBy);\r\n }, err => { });\r\n }\r\n\r\n\r\n getElementDetailsForm() {\r\n let elementsConfig: FieldConfig[] = [];\r\n elementsConfig = this._dciViewModel.dciScheduleElementDetails.map(x => {\r\n let field: FieldConfig = { type: \"label\", label: x.dE_Description, de_id: x.dE_Id, value: new BehaviorSubject(x.deD_Short_Description + \"-\" + x.deD_Description) }\r\n return field;\r\n })\r\n this.dciElementDetailsForm.fields = [];\r\n this.dciElementDetailsForm.fields = elementsConfig;\r\n this.dciElementDetailsForm.createControl();\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"docScheduleForm\":\r\n this.docScheduleForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"dciForm\":\r\n this.dciForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"revForm\":\r\n this.revForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Load document set list\r\n */\r\n getDocSetList() {\r\n this._scheDefService.getDocSetList({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: IDocSetModel[]) => {\r\n this.docSetList = res;\r\n this.loadStages();\r\n this.filterDocSet();\r\n });\r\n }\r\n\r\n getProjectRevisionMaster() {\r\n let obj = {\r\n \"projectId\": this.projectId,\r\n \"groupId\": this.groupId,\r\n }\r\n this._dciRevMaster.getDocumentRevision(obj).subscribe((data: IDCIRevisionMaster[]) => {\r\n this.dciRevisionList = data;\r\n })\r\n }\r\n\r\n onStageChange(event: any, stageEleDetail: IStageElementDetails) {\r\n if (event.checked) {\r\n let selDate: any = stageEleDetail.selected_Date;\r\n if (selDate == null)\r\n selDate = stageEleDetail.end_Date;\r\n this.scheduleWFPlanStageDetails.push({ sort_By: stageEleDetail.sort_By, status_Id: stageEleDetail.stage_Id, scheduled_On: selDate });\r\n }\r\n else {\r\n let schWfpStageDetails: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.filter(x => x.status_Id == stageEleDetail.stage_Id)[0];\r\n if (!!this.scheduleWFPlanStageDetails) {\r\n let index: number = this.scheduleWFPlanStageDetails.indexOf(schWfpStageDetails);\r\n if (index > -1)\r\n this.scheduleWFPlanStageDetails.splice(index, 1);\r\n }\r\n }\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n let firstStage: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.sort((a, b) => a.sort_By - b.sort_By)[0];\r\n if (!!firstStage && !!this.dciRevisionList && this.dciRevisionList.length > 0) {\r\n let revision: any = this.dciRevisionList.filter(x => x.stageId == firstStage.status_Id && x.isActive)[0].revisionNo;\r\n if (!!revision)\r\n this.revForm.get('revision')?.setValue(revision);\r\n }\r\n }\r\n }\r\n\r\n private filterDocSet() {\r\n //reset the last selected document set\r\n this.selectedDocSetStageDetails = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n let docSet: IDocSetModel = this.docSetList.filter(x => x.doc_Set_Id == this._dciViewModel.doc_Set_Id)[0];\r\n this.filteredDocSetList = this.docSetList.filter(ds => ds.structure_DED_Id == docSet.structure_DED_Id &&\r\n ds.disc_DED_Id == docSet.disc_DED_Id);\r\n this.selectedDocSet = docSet.doc_Set_Id;\r\n this.setFormValue(this.docScheduleForm, \"formDocSet\", this.selectedDocSet);\r\n }\r\n\r\n private loadStages() {\r\n this.docScheduleForm.get('docSet')?.valueChanges.subscribe((res: IDocSetModel) => {\r\n if (res) {\r\n //reset the last selected document set\r\n this.selectedDocSetStageDetails = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.selectedDocSetStageDetails = res.stageDocumentSetDetails;\r\n\r\n //If the user changes different documentset, need to capture all the details as fresh manner\r\n if (this._dciViewModel.doc_Set_Id == res.doc_Set_Id && this._dciViewModel.dciScheduleStageDetails.length > 0) {\r\n this._dciViewModel.dciScheduleStageDetails.forEach(x => {\r\n let stageDetail = this.selectedDocSetStageDetails.filter(y => y.stage_Id == x.stage_Id)[0];\r\n if (!!stageDetail) {\r\n stageDetail.checked = true;\r\n let formattedDate: any = this._datepipe.transform(x.scheduled_On, 'dd-MMM-yyyy');\r\n this.scheduleWFPlanStageDetails.push({ sort_By: stageDetail.sort_By, status_Id: x.stage_Id, scheduled_On: formattedDate });\r\n }\r\n })\r\n }\r\n this.selectedDocSetStageDetails.forEach(x => {\r\n let stageDate: IStageDates = {\r\n minDate: x.start_Date != null ? new Date(x.start_Date) : null,\r\n maxDate: x.end_Date != null ? new Date(x.end_Date) : null,\r\n value: x.end_Date != null ? new Date(x.end_Date) : null\r\n };\r\n //this.stageDates.set(x.stage_Id.toString(), stageDate);\r\n this.stageDates[x.stage_Id] = stageDate;\r\n });\r\n }\r\n })\r\n }\r\n\r\n private async loadWorkflowStages() {\r\n this.docScheduleForm.get('workflow')?.valueChanges.subscribe(async (res: WorkflowTemplateModel) => {\r\n await this._scheduleDocService.GetWorkflowStageDetails({ project_Id: res.projectId, workflow_Id: res.workflowId }).toPromise().then((stages: IStageElementDetails[]) => {\r\n this.selectedDocSetStageDetails = [];\r\n this.scheduleWFPlanStageDetails = [];\r\n this.stageDates.clear();\r\n this.selectedDocSetStageDetails = stages;\r\n //If the user changes different workflow need to capture all the details as fresh manner\r\n if (this._dciViewModel.workflow_Id == res.workflowId && this._dciViewModel.dciScheduleStageDetails.length > 0) {\r\n this._dciViewModel.dciScheduleStageDetails.forEach(x => {\r\n let stageDetail = this.selectedDocSetStageDetails.filter(y => y.stage_Id == x.stage_Id)[0];\r\n if (!!stageDetail) {\r\n stageDetail.checked = true;\r\n let formattedDate: any = this._datepipe.transform(x.scheduled_On, 'dd-MMM-yyyy');\r\n this.scheduleWFPlanStageDetails.push({ sort_By: stageDetail.sort_By, status_Id: x.stage_Id, scheduled_On: formattedDate });\r\n }\r\n })\r\n }\r\n this.selectedDocSetStageDetails.forEach(x => {\r\n let schWorkflowPlanStageDetail: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.filter(y => y.status_Id == x.stage_Id)[0];\r\n let stageDate: IStageDates = { minDate: new Date(x.start_Date), maxDate: new Date(x.end_Date), value: new Date(x.end_Date) };\r\n if (!!schWorkflowPlanStageDetail) {\r\n stageDate.value = new Date(schWorkflowPlanStageDetail.scheduled_On);\r\n }\r\n //this.stageDates.set(x.stage_Id.toString(), stageDate);\r\n this.stageDates[x.stage_Id] = stageDate;\r\n });\r\n })\r\n })\r\n }\r\n\r\n async updateScheduleDoc() {\r\n let result: StandardOutputModel = { result: \"\", successCode: 400, successMessage: \"Mandatory fields are missing\" };\r\n let scheduleDocInput: IScheduleDocModel | null = null;\r\n let schBulkInsertModel: IScheduleBulkInsertModel;\r\n\r\n if (!!this.isWBSIntegration) {\r\n if (!!this.WBSCode) {\r\n if (!!this.DeliverableCode) {\r\n\r\n } else {\r\n this._notificationService.showPopup(\"Kindly select Deliverable Code\", \"Warning\");\r\n return;\r\n }\r\n }\r\n }\r\n if (this.dciForm.valid && this.revForm.valid && this.docScheduleForm.valid) {\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n scheduleDocInput = {\r\n docId: this._dciViewModel.doc_Id,\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n docNo: this.getFormValue(this.dciForm, \"dciSerialNo\"),\r\n docSerialNo: this._dciViewModel.doc_Serial_No,\r\n docTitle: this.getFormValue(this.dciForm, \"title\"),\r\n userId: this.memberId,\r\n module: Module.ScheduleDocument,\r\n MaxProgressLevel: !!this.SetDCIMaxProgressLevel && this.getFormValue(this.docScheduleForm, \"MaxProgressLevel\") ? this.getFormValue(this.docScheduleForm, \"MaxProgressLevel\").dedId : null,\r\n\r\n };\r\n let docSet: IDocSetModel = this.getFormValue(this.docScheduleForm, \"docSet\");\r\n if (docSet)\r\n scheduleDocInput.docSetId = docSet.doc_Set_Id;\r\n schBulkInsertModel = {\r\n isStandardDrawingDocument: false,\r\n dciMasterDetails: scheduleDocInput,\r\n dciRevDetails: this.getScheduleDocRevision(),\r\n dciSchDetails: this.getScheduleDocDetails(),\r\n dciElementDetails: null,\r\n dciDocScheduleWFPlanDetails: this.getScheduleDocWFPlanDetails(),\r\n dciDocSchMHDetails: this.getScheduleMHDetails(),\r\n dciDocSchStageDetails: this.getScheduleRevStageDetails(),\r\n dciDocSchWorkflowDetails: this.getScheduleDocWorkflowDetails()\r\n\r\n }\r\n result = await this._scheduleDocService.InsertScheduleBulkDocument(schBulkInsertModel).toPromise();\r\n\r\n if (!!this.isWBSIntegration) {\r\n if (result.successCode == 200 || result.successCode == 205) {\r\n let dciCPCDocDetails: ICPCInputModel = {\r\n docId: this._dciViewModel.doc_Id,\r\n projectId: this.projectId,\r\n memberId: this.memberId,\r\n wBSCode: this.WBSCode,\r\n deliverableCode: this.DeliverableCode\r\n }\r\n let result1: StandardOutputModel = await this._scheduleDocService.InsertCPCDocDetails(dciCPCDocDetails).toPromise();\r\n }\r\n }\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Kindly select atleast one stage\", \"Warning\");\r\n return;\r\n }\r\n }\r\n this._notificationService.showToast(result.successMessage, result.successCode == 200 ? \"Success\" : \"Error\");\r\n if (result.successCode == 200) {\r\n this._schDoc.doc_Title = scheduleDocInput ? scheduleDocInput.docTitle : \"\";\r\n this._schDoc.print_Size = this.getFormValue(this.revForm, \"printSize\").dedDescription;\r\n this.closeDialog()\r\n }\r\n }\r\n\r\n private getScheduleDocRevision(): IScheduleDocRevModel {\r\n let scheduleDocRevInput: IScheduleDocRevModel = {\r\n docId: this._dciViewModel.doc_Id,\r\n revisionNo: this.getFormValue(this.revForm, \"revision\"),\r\n docStatus: this.getFormValue(this.revForm, \"dciStatus\").dedId,\r\n isConfidential: this.getFormValue(this.revForm, \"isConfidential\"),\r\n printSize: this.getFormValue(this.revForm, \"printSize\").dedId,\r\n docAuthorizedBy: this.getFormValue(this.revForm, \"authorisedBy\").memberId,\r\n revisionCategory: this.getFormValue(this.revForm, \"revCategory\").revCategoryId,\r\n qrCodeStatus: this.getFormValue(this.revForm, \"qrCodeTag\"),\r\n comments: this.getFormValue(this.revForm, \"comments\"),\r\n reference: this.getFormValue(this.revForm, \"reference\"),\r\n noOfSheets: this.getFormValue(this.revForm, \"noOfSheets\"),\r\n revisionType: 0,\r\n docCreatedBy: this.memberId,\r\n createdBy: this.memberId,\r\n isActive: true,\r\n DCICodeId: this.getFormValue(this.revForm, \"docCategoryid\")\r\n\r\n }\r\n return scheduleDocRevInput;\r\n }\r\n\r\n private getScheduleDocWFPlanDetails(): IScheduleWFPlanDetails {\r\n let schWFPlandetails: IScheduleWFPlanDetails = {\r\n doc_Id: this._dciViewModel.doc_Id,\r\n revision_No: this.getFormValue(this.revForm, \"revision\"),\r\n docScheduleWFPlanDetails: this.scheduleWFPlanStageDetails,\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return schWFPlandetails;\r\n }\r\n\r\n private getScheduleRevStageDetails(): IScheduleDocStageDetails {\r\n let schDocStageDetails: IScheduleDocStageDetails = {\r\n doc_Id: this._dciViewModel.doc_Id,\r\n revision_No: this.getFormValue(this.revForm, \"revision\"),\r\n docScheduleStageDetails: this.scheduleWFPlanStageDetails.map(x => {\r\n let stage: IScheduleStageId = {\r\n stage_Id: x.status_Id\r\n }\r\n return stage;\r\n }),\r\n stage_Id: this.scheduleWFPlanStageDetails.sort((a, b) => a.sort_By - b.sort_By)[0].status_Id,\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return schDocStageDetails;\r\n }\r\n\r\n private getScheduleMHDetails(): IScheduleMHDetails {\r\n let schDocMHDetails: IScheduleMHDetails = {\r\n doc_Id: this._dciViewModel.doc_Id,\r\n e_Man_Hours: this.getFormValue(this.dciForm, \"enggManhours\"),\r\n d_Man_Hours: this.getFormValue(this.dciForm, \"draftingManHours\"),\r\n weightage: this.getFormValue(this.dciForm, \"weightage\"),\r\n userId: this.memberId,\r\n is_Active: true\r\n }\r\n return schDocMHDetails;\r\n }\r\n\r\n private getScheduleDocDetails(): IScheduleDocDetails {\r\n let schDocDetails: IScheduleDocDetails = {\r\n doc_Id: this._dciViewModel.doc_Id,\r\n from_Group_Id: this.groupId,\r\n to_Group_Id: this.getFormValue(this.docScheduleForm, \"approvalBy\").group_Id,\r\n revision_No: this.getFormValue(this.revForm, \"revision\"),\r\n schedule_Type: this.getFormValue(this.dciForm, \"schType\").schType_Id,\r\n is_Input_Required: this.getFormValue(this.dciForm, \"inputRequired\").value,\r\n userId: this.memberId,\r\n is_Active: true\r\n }\r\n return schDocDetails;\r\n }\r\n\r\n private getScheduleDocWorkflowDetails(): IScheduleWorkflowDetails {\r\n let schDocWorkflowDetails: IScheduleWorkflowDetails = {\r\n doc_Id: this._dciViewModel.doc_Id,\r\n userId: this.memberId,\r\n is_Active: true,\r\n workflow_Id: this.getFormValue(this.docScheduleForm, \"workflow\").workflowId,\r\n revision_No: this.getFormValue(this.revForm, \"revision\")\r\n }\r\n return schDocWorkflowDetails;\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let revElement: IProjectElementsOutput[] = this.projectStaticElements.filter(x => x.elementDescription == \"Auto Revision\");\r\n if (revElement.length > 0) {\r\n this.isAutoRevision = revElement[0].isDefaultSelect;\r\n }\r\n let isDocSetRequiredElement = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequiredElement) {\r\n this.isDocSetRequired = isDocSetRequiredElement.isMandatory;\r\n if (!this.isDocSetRequired) {\r\n this.docScheduleForm.get('docSet')?.clearValidators();\r\n this.docScheduleForm.get('docSet')?.updateValueAndValidity();\r\n this.docScheduleForm.get('formDocSet')?.clearValidators();\r\n this.docScheduleForm.get('formDocSet')?.updateValueAndValidity();\r\n this.IsDisabled = false;\r\n }\r\n }\r\n let isWBSIntegrationElement = this.projectStaticElements.filter(x => x.elementDescription == \"WBS Integration\")[0];\r\n if (!!isWBSIntegrationElement) {\r\n this.isWBSIntegration = isWBSIntegrationElement.isMandatory;\r\n }\r\n\r\n let SetDCIMaxProgressLevel: IProjectElementsOutput = this.projectStaticElements.filter(x => x.elementDescription == \"Set DCI Max Progress Level\")[0];\r\n if (!!SetDCIMaxProgressLevel)\r\n if (SetDCIMaxProgressLevel.isVisible)\r\n this.SetDCIMaxProgressLevel = SetDCIMaxProgressLevel;\r\n }\r\n }, err => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n if (this.isDocSetRequired)\r\n this.getDocSetList();\r\n }\r\n\r\n getStageDate(selectedStageDate: any, stage: IStageElementDetails) {\r\n stage.selected_Date = selectedStageDate.value;\r\n if (this.scheduleWFPlanStageDetails.length > 0) {\r\n let scheduleWfPlan: IScheduleWFPlanStageDetails = this.scheduleWFPlanStageDetails.filter(x => x.status_Id == stage.stage_Id)[0];\r\n scheduleWfPlan.scheduled_On = stage.selected_Date;\r\n }\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n cancelScheduleDoc() {\r\n this.closeDialog();\r\n }\r\n\r\n numberOnly(event: any, field: any = null): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (['weightage', 'enggMH', 'draftMH'].includes(field)) {\r\n if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n public getDocCategoryValue(selectedText: { value: number; }) {\r\n this.selectedDCICodeIdValue = selectedText.value;\r\n this.revForm.get(\"docCategoryid\")?.setValue(selectedText.value);\r\n }\r\n\r\n getWBSCodes() {\r\n this._projectService.getProjects(this.projectId, this.memberId).subscribe((data: IProjectMasterViewModel[]) => {\r\n this.JOBCode = data[0].job_Code;\r\n this._scheduleDocService.GetWBSCodes({ job_Code: this.JOBCode })\r\n .subscribe((res) => {\r\n this.wbsList = res;\r\n });\r\n });\r\n }\r\n setWBSCode(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.dciForm.get('wbsCode')?.setValue(event.value);\r\n this.dciForm.get('wbsCode')?.setValue(event.text);\r\n this.WBSCode = event.value.toString();\r\n if (!!this.WBSCode) {\r\n this._scheduleDocService.GetDeliverableCodes({ job_Code: this.JOBCode, wBS_Code: this.WBSCode })\r\n .subscribe((res) => {\r\n this.dvcodeList = res;\r\n });\r\n }\r\n }\r\n else {\r\n this.dciForm.get('wbsCode')?.setValue(null);\r\n this.dvcodeList = [];\r\n this.WBSCode = null;\r\n this.DeliverableCode = null;\r\n }\r\n }\r\n setDVCode(event: EIPAutoCompleteEventModel) {\r\n if (event.value != '-2') {\r\n this.dciForm.get('dvCode')?.setValue(event.value);\r\n this.dciForm.get('dvCode')?.setValue(event.text);\r\n this.DeliverableCode = +event.value\r\n }\r\n else {\r\n this.dciForm.get('dvCode')?.setValue(null);\r\n this.DeliverableCode = null\r\n }\r\n }\r\n\r\n}","
\r\n
\r\n

Edit Schedule Document

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

Document

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n DCI No\r\n \r\n \r\n Doc No is required\r\n \r\n \r\n
\r\n \r\n \r\n Title\r\n \r\n \r\n Title is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Engg Manhours\r\n \r\n \r\n Enter only numbers\r\n \r\n \r\n
\r\n \r\n \r\n Drafting Manhours\r\n \r\n \r\n Enter only numbers\r\n \r\n \r\n
\r\n \r\n \r\n Weightage\r\n \r\n \r\n Enter only numbers\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n

Schedule Type

\r\n \r\n \r\n {{item.schType_Name}}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Document Schedule\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Approval by is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Workflow is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Document Set is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n {{item.stage_Short_Description}}-{{item.stage_Description}}\r\n \r\n

\r\n

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

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

Document Revision

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Revision\r\n \r\n \r\n Revision is required\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Released For is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n Revision Category is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n Authorised by is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n Print Size is required\r\n \r\n \r\n \r\n \r\n No Of Sheets\r\n \r\n \r\n \r\n \r\n \r\n QR Code Tag\r\n Active\r\n \r\n \r\n       \r\n Document Properties (Opt)\r\n \r\n Confidential\r\n \r\n  \r\n \r\n \r\n \r\n \r\n Reference\r\n \r\n \r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { IScheduleDocUploadStatusModel } from 'src/app/ViewModel/ScheduleDocumentModel';\r\n\r\n@Component({\r\n selector: 'app-schedule-excel-upload',\r\n templateUrl: './schedule-excel-upload.component.html',\r\n styleUrls: ['./schedule-excel-upload.component.css']\r\n})\r\nexport class ScheduleExcelUploadComponent implements OnInit {\r\n statusList: IScheduleDocUploadStatusModel[] = [];\r\n total!: number;\r\n success!: number;\r\n failure!: number;\r\n enableFullscreen = false;\r\n enableFilter = false;\r\n constructor(public dialogRef: MatDialogRef, private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public _data: IScheduleDocUploadStatusModel[]) {\r\n }\r\n\r\n ngOnInit() {\r\n this.statusList = this._data;\r\n this.total = this.statusList.length;\r\n this.success = this.statusList.filter(x => x.status).length;\r\n this.failure = this.total - this.success;\r\n }\r\n\r\n getStatus(item: IScheduleDocUploadStatusModel): string {\r\n return item.status ? item.is_Created ? \"Created Successfully\" : \"Updated Successfully\" : \"Fail\";\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n public showOnlyFailureDetails(dataItem: IScheduleDocUploadStatusModel, index: number): boolean {\r\n return dataItem.status == false;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Schedule Document Upload Status

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Total Processed : {{total}}\r\n
\r\n
\r\n Success : {{success}}\r\n
\r\n
\r\n Failure : {{failure}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.rowNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.docNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n
\r\n
Status
\r\n \r\n
    \r\n
  • \r\n {{error}}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { DatePipe, formatDate } from \"@angular/common\";\r\nimport { Component, OnInit, QueryList, ViewChild, ViewChildren, OnDestroy, HostListener, ElementRef } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { MatTabChangeEvent } from \"@angular/material/tabs\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { IDocSetModel, IPorjectInputModel } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { IScheduleDocInfo, IScheduleDocApprovalDetails, IScheduleDocApprovalDocId, IScheduleDocUploadStatusModel, IReviseScheduleDateDocModel, IScheduleDateUpdateDetails, IScheduleISODocUploadDetailsModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { BulkScheduleUploadComponent } from \"../bulk_schedule_upload/bulk-schedule-upload.component\";\r\nimport { ISODCIUploadComponent } from \"../iso-dci-upload/iso-dci-upload.component\";\r\nimport * as moment from 'moment';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { DataBindingDirective, GridDataResult, PageChangeEvent } from \"@progress/kendo-angular-grid\";\r\nimport { ScheduleExcelUploadComponent } from '../schedule-excel-upload/schedule-excel-upload.component';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { ScheduleEditComponent } from \"../schedule-edit/schedule-edit.component\";\r\nimport { ScheduleStartWorkflowComponent } from '../schedule-startworkflow/schedule-startworkflow.component';\r\nimport { ScheduleWorkflowhistoryComponent } from \"../schedule-workflowhistory/schedule-workflowhistory.component\";\r\nimport { IDocumentMailInputModel, IDocumentRevHistoryModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { ScheduleDocumentMailListComponent } from '../schedule-document-mail-list/schedule-document-mail-list.component';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { FileCompareComponent } from \"src/app/CommonComponents/file-compare-component/file-compare.component\";\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { CreateMessageComponent } from \"../../communication/create-message/create-message.component\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { ProjectViewModel } from \"src/app/ViewModel/ProjectModel\";\r\nimport { DciSupersedeComponent } from \"../dci-supersede/dci-supersede.component\";\r\nimport { FileUploadLibrary } from \"src/app/Service/file/file.service\";\r\nimport { ExcelExportData } from \"@progress/kendo-angular-excel-export\";\r\nimport { TransmittalViewComponent } from \"../../transmittal/transmittal-view/trasnsmittal-view.component\";\r\nimport { ITransmittalDetailsModel, ITransmittalDocumentDetails, ITransmittalDocumentInput, ITransmittalMsgReceiverInput } from \"src/app/ViewModel/TransmittalModel\";\r\nimport { TransmittalMsgService } from \"src/app/Service/transmittal/transmittal.service\";\r\n\r\nimport { TransmittalService } from \"src/app/Service/transmittal-template/transmittal-template.service\";\r\nimport { TransmittalTemplateComponent } from 'src/app/Modules/transmittal/transmittal-template/transmittal-template.component';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { saveAs } from 'file-saver';\r\nimport { BulkDCISupersedeComponent } from \"../bulk-dci-supersede/bulk-dci-supersede.component\";\r\n\r\ninterface INavigationTree {\r\n dedShortDesc?: string,\r\n dedDesc: string,\r\n documentSet?: IDocSetModel,\r\n items?: INavigationTree[]\r\n}\r\n\r\n@Component({\r\n selector: 'app-schedule-list',\r\n templateUrl: './schedule-list.component.html',\r\n styleUrls: ['./schedule-list.component.css']\r\n})\r\nexport class ScheduleListComponent implements OnInit, OnDestroy {\r\n @ViewChild('schSearchForm') schSearchDynamicForm!: DynamicFormComponent;\r\n @ViewChild(DataBindingDirective) directive: any;\r\n @ViewChild('dciGrid') dciGrid: any;\r\n @ViewChild(\"docSetForm\") dynamicForm: DynamicFormComponent;\r\n\r\n schSeachFieldsConfig: FieldConfig[] = [];\r\n enableFullscreen = false;\r\n enableRowWiseWFIcon = true;\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n projectCode!: string;\r\n hoverClass = '';\r\n public treeFilter: any;\r\n isSearch!: boolean;\r\n gridAllRevisionData: IScheduleDocInfo[] = [];\r\n gridAllData: IScheduleDocInfo[] = [];\r\n gridData: IScheduleDocInfo[] = [];\r\n gridView!: GridDataResult;\r\n gridLoadData: IScheduleDocInfo[] = [];\r\n docSetHierarchy: any[] = [];\r\n scheduleApprovalDocDetails: IScheduleDocApprovalDocId[] = [];\r\n reviseScheduleDateDetails: IReviseScheduleDateDocModel[] = [];\r\n SupercedeDCIDetails: IScheduleDocInfo[] = [];\r\n selectedDocSet: any;\r\n enableFilter = false;\r\n pageSize = 15;\r\n public skip = 0;\r\n lastViewingRecords = 30;\r\n lastViewingRecord: string = \"30\";\r\n IsShowSection = false;\r\n noOfDays = [30, 60, 90, 'All'];\r\n @ViewChildren('divIcon')\r\n divIconHover!: QueryList;\r\n viewDciTabList: IScheduleDocInfo[] = [];\r\n viewSchDoc!: IScheduleDocInfo | null;\r\n selectedTabIndex: number = 0;\r\n selectedRootIndex: number = 0;\r\n public lastscrollLeft!: number;\r\n approvedCount: number = 0;\r\n rejectedCount: number = 0;\r\n holdedCount: number = 0;\r\n forActionCount: number = 0;\r\n inprogressCount: number = 0;\r\n completedCount: number = 0;\r\n totalCount: number = 0;\r\n isCanApprove: boolean = false;\r\n isCanReject: boolean = false;\r\n isShowWFIcon: boolean = false;\r\n isShowSupersedeIcon: boolean = false;\r\n public revHistory: IDocumentRevHistoryModel | null = null;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n private anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n private popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public popupMargin = { horizontal: -15, vertical: 10 };\r\n public showRevHistory: boolean = false;\r\n isShowStartWF: boolean = false;\r\n isShowWFHistory: boolean = false;\r\n isShowEdit: boolean = false;\r\n isShowSuperEdit: boolean = false;\r\n isShowSupersede: boolean = false;\r\n isShowApprove: boolean = false;\r\n isLatest: boolean = true;\r\n IslatestShow: boolean = false;\r\n canUpload: boolean = false;\r\n canDelete: boolean = false;\r\n canView: boolean = false;\r\n is_File_Attached: boolean = false;\r\n public datevalue = new Date(this.getDateFormat());\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isDocSetRequired: boolean = true;\r\n public RevisedScheduleDate: string = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n colorCodes: any[] = ['#c57a7a', '#43ceab', '#33ae10', '#1579ab', '#e85342', '#5454E8'];\r\n @ViewChild('tabGroup') tabGroup: any;\r\n @ViewChild('excelDCIUpload') excelDCIUpload: any;\r\n @ViewChild('excelISOUpload') excelISOUpload: any;\r\n acceptFileTypes: string = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n stageColors: Map = new Map();\r\n private transmittalViewComponent!: TransmittalViewComponent;\r\n transmittalList: ITransmittalDetailsModel[] = [];\r\n transmittalCollection: any = [];\r\n viewTransmittalData!: TransmittalTemplateComponent | null;\r\n public projectName!: string;\r\n public ADSearchComponent: boolean = false;\r\n public ADSearchComponentdata = \"search_dci\";\r\n projectStartDate = new Date();\r\n projectEndDate = new Date();\r\n UnsubscribeArray: Subscription[] = [];\r\n public completeEditHide: boolean = true;\r\n public _isSuperEdit: boolean = true;\r\n\r\n public pageSizes = [15, 30, 50, 100, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlStageType: new FormControl(),\r\n ctrlDocType: new FormControl(),\r\n ctrlDocNo: new FormControl(),\r\n ctrlTransNo: new FormControl()\r\n });\r\n public Doc_type: any[] = [\r\n { value: '1', viewValue: 'DCI' },\r\n { value: '2', viewValue: 'Ext DCI' },\r\n { value: '3', viewValue: 'Std DCI' },\r\n { value: '4', viewValue: 'Vendor DCI' },\r\n ];\r\n public Doc_typeid!: any | null;\r\n public selectedTypeValue: string;\r\n public selectedTypeIndex: number = -1;\r\n public stageList: any[];\r\n public regConfig: FieldConfig[] = [];\r\n projectElements: IProjectElementsOutput[];\r\n searchTypeList: any = [];\r\n public start: any;\r\n public end: any;\r\n stages: any;\r\n @ViewChild('transmittalViewComponent') set content(content: TransmittalViewComponent) {\r\n if (content) { // initially setter gets called with undefined\r\n this.transmittalViewComponent = content;\r\n }\r\n }\r\n\r\n constructor(private dialog: MatDialog, private _scheduleDocService: ScheduleDocumentService, private loaderService: LoaderService,\r\n private _commonService: CommonService, private _scheDefService: ScheduleDefinitionService, public datepipe: DatePipe, private _notificationService: NotificationService,\r\n private encryptDecryptService: EncryptDecryptService, private _projInfoService: ProjectInfoService, private _docService: DocumentService, private _transmittalService: TransmittalMsgService, private transmittalService: TransmittalService\r\n , private elementRef: ElementRef) {\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n let _projectDetails = this._commonService.getCurrentProjectDetails()\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n if (_projectDetails) {\r\n this.projectId = _projectDetails.projectId\r\n this.projectCode = _projectDetails.projectCode;\r\n this.projectName = _projectDetails.projectCode + ' - ' + _projectDetails.projectDescription;\r\n this.projectStartDate = (_projectDetails.startDate ? new Date(_projectDetails.startDate) : new Date());\r\n this.projectEndDate = (_projectDetails.endDate ? new Date(_projectDetails.endDate) : new Date());\r\n }\r\n this.loadAllStages();\r\n this.getProjectStaticElements();\r\n this.loadscheduleDocumnets();\r\n this.loadDocSetTree();\r\n this.enableMemberRoleFeatures();\r\n this.getDynamicForm();\r\n this.CheckMemberRoleFeatures();\r\n }\r\n\r\n CheckMemberRoleFeatures() {\r\n if (this.projectId && this.memberId && this.groupId)\r\n this._commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this._isSuperEdit = res.filter(x => x.feature_Id == 6).length > 0 ? true : false;\r\n });\r\n\r\n }\r\n\r\n getDynamicForm() {\r\n let GetprojectElements = this._projInfoService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.projectElements.forEach(element => {\r\n if (element.elementDescription != 'Project Code') {\r\n this.searchTypeList.push({ value: element.elementId, description: element.elementDescription });\r\n }\r\n });\r\n this.regConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select'\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.regConfig;\r\n this.dynamicForm.createControl();\r\n });\r\n this.UnsubscribeArray.push(GetprojectElements);\r\n }\r\n loadAllStages() {\r\n this._projInfoService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Workflow, deDescription: 'Workflow Status' }).toPromise().then((res: IProjectElementDetailsOutput[]) => {\r\n this.stageList = res.map(val => {\r\n val.displayText = val.dedShortDescription + \" - \" + val.dedDescription;\r\n return val;\r\n }).sort((a, b) => a.sortBy - b.sortBy);\r\n\r\n this.stageList.forEach((x, index) => {\r\n this.stageColors.set(x.dedShortDescription, this.colorCodes[index]);\r\n });\r\n });\r\n }\r\n\r\n getStageColor(currentStage: string) {\r\n if (!!currentStage && this.stageColors.has(currentStage)) {\r\n return this.stageColors.get(currentStage);\r\n }\r\n return null;\r\n }\r\n enableMemberRoleFeatures() {\r\n let _getProjectMemberFeatures = this._commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n\r\n this.isShowStartWF = res.some(data => data.feature_Desc == 'Start Workflow');\r\n this.isShowWFHistory = res.some(data => data.feature_Desc == 'Workflow History');\r\n this.isShowEdit = res.some(data => data.feature_Desc == 'Edit');\r\n this.isShowSuperEdit = res.some(data => data.feature_Desc == 'Super Edit');\r\n this.isShowSupersede = res.some(data => data.feature_Desc == 'Supersede');\r\n this.isShowApprove = res.some(data => data.feature_Desc == 'Approve');\r\n this.canUpload = res.some(data => data.feature_Desc == 'Upload');\r\n this.canView = res.some(data => data.feature_Desc == 'View');\r\n this.canDelete = res.some(data => data.feature_Desc == 'Delete');\r\n });\r\n this.UnsubscribeArray.push(_getProjectMemberFeatures);\r\n }\r\n\r\n ngAfterViewInit() {\r\n let selectedTab = this.tabGroup._tabs._results[this.tabGroup.selectedIndex];\r\n\r\n if (selectedTab.textLabel.toUpperCase() == \"APPROVED\" || selectedTab.textLabel.toUpperCase() == \"ALL\")\r\n this.isShowWFIcon = true;\r\n else\r\n this.isShowWFIcon = false;\r\n\r\n if (selectedTab.textLabel.toUpperCase() == \"APPROVED\" || selectedTab.textLabel.toUpperCase() == \"COMPLETED\")\r\n this.isShowSupersedeIcon = true;\r\n else\r\n this.isShowSupersedeIcon = false;\r\n }\r\n\r\n loadDocSetTree() {\r\n let _getDocSetListByGroup = this._scheDefService.getDocSetListByGroup({ project_Id: this.projectId, group_Id: this.groupId }).subscribe((res: any) => {\r\n res.forEach((data: any) => {\r\n if (!!data) {\r\n data[\"type\"] = \"Header\";\r\n } if (!!data.items) {\r\n data.items.forEach((element: { [x: string]: string; }) => {\r\n element[\"type\"] = \"child\";\r\n });\r\n }\r\n });\r\n this.docSetHierarchy = res;\r\n });\r\n this.UnsubscribeArray.push(_getDocSetListByGroup);\r\n }\r\n\r\n loadscheduleDocumnets(input?: IPorjectInputModel) {\r\n let inputModel: IPorjectInputModel;\r\n if (input)\r\n inputModel = input;\r\n else {\r\n inputModel = { project_Id: this.projectId, group_Id: this.groupId };\r\n if (this.lastViewingRecords > 0)\r\n inputModel.latestRecords_Count = this.lastViewingRecords;\r\n if (this._commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this._commonService.getSessionStorageItem('requestedObject')));\r\n inputModel.docId = requestedObject['inputDocId'];\r\n inputModel.revisionNo = requestedObject['inputRevNo'];\r\n }\r\n if (this._commonService.hasSearchedObject()) {\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this._commonService.getSessionStorageItem('searchedObject')));\r\n inputModel.docNo = searchedObject['searchDocNo'];\r\n inputModel.revisionNo = searchedObject['searchRevNo'];\r\n }\r\n }\r\n let _GetScheduleDocList = this._scheduleDocService.GetScheduleDocList(inputModel).subscribe((res: IScheduleDocInfo[]) => {\r\n res.forEach(x => x.isSelected = false)\r\n this.gridAllData = res;\r\n this.gridAllRevisionData = res;\r\n //Refresh the grid based on Latest/All revisions\r\n this.refreshGrid();\r\n // this.loadGridItems();\r\n this.setRedirectObjects();\r\n });\r\n this.UnsubscribeArray.push(_GetScheduleDocList);\r\n }\r\n\r\n setRedirectObjects() {\r\n if (this.gridAllData.length > 0 && this._commonService.hasSearchedObject()) {/*Search Redirection*/\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this._commonService.getSessionStorageItem('searchedObject')));\r\n let inputdocNo = searchedObject['searchDocNo'];\r\n let inputRevNo = searchedObject['searchRevNo'];\r\n if (inputdocNo && inputRevNo) {\r\n this._commonService.checkAndDeleteSearchedObject();\r\n let _data = this.gridAllData.filter(x => x.doc_No == inputdocNo && x.revision_No == inputRevNo);\r\n if (_data.length > 0) {\r\n this.viewDocumentClick(_data[0]);\r\n }\r\n else {\r\n this._notificationService.showToast(\"You are not authorized to view the document\", \"Warning\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n createSearchFieldsForm() {\r\n this.schSeachFieldsConfig = this.getSchSearchConfig();\r\n this.schSearchDynamicForm.fields = this.schSeachFieldsConfig;\r\n this.schSearchDynamicForm.createControl();\r\n }\r\n\r\n createdocument() {\r\n let dialogRef = this.dialog.open(BulkScheduleUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { num: 1, isStdDCI: false }\r\n });\r\n let _dialogRef = dialogRef.afterClosed().subscribe((res: any) => {\r\n //If save and add new means, show the dialog again\r\n if (res)\r\n this.createdocument();\r\n else\r\n this.loadscheduleDocumnets();\r\n });\r\n this.UnsubscribeArray.push(_dialogRef);\r\n }\r\n\r\n public advanceSearch() {\r\n this.isSearch = !this.isSearch;\r\n if (this.isSearch)\r\n this.createSearchFieldsForm();\r\n }\r\n\r\n onHover(event: Event): void {\r\n if ((event.target as HTMLElement).closest('div.k-grid-content')) {\r\n const newscrollLeft = (event.target as HTMLElement).closest('div.k-grid-content')?.scrollLeft;\r\n if (this.lastscrollLeft !== newscrollLeft) {\r\n for (let i = 0; i < this.divIconHover.length; i++) {\r\n this.divIconHover['_results'][i]['nativeElement']['style'].right = (0 - newscrollLeft) + 'px';\r\n }\r\n this.lastscrollLeft = newscrollLeft;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Multiple select of listed documents for approval or reject\r\n * @param event\r\n *\r\n */\r\n onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: any) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: any) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n let count = this.gridData.filter(x => x.isSelected).length;\r\n if (count > 1)\r\n this.enableRowWiseWFIcon = false;\r\n if (count <= 1)\r\n this.enableRowWiseWFIcon = true;\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Get Schedule document serach fields\r\n * @returns FieldConfig[]\r\n */\r\n getSchSearchConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'eipdatepicker',\r\n name: 'fromDate',\r\n label: 'From'\r\n },\r\n {\r\n type: 'eipdatepicker',\r\n name: 'toDate',\r\n label: 'To'\r\n }];\r\n }\r\n\r\n\r\n public handleSelection(value?: any) {\r\n if (value != false) {\r\n this.treeFilter = value;\r\n }\r\n let DisciplineId!: number;\r\n let structureObj!: number;\r\n this.docSetHierarchy.forEach(data => {\r\n if (data.dedId == this.treeFilter.dataItem.dedId) {\r\n DisciplineId = this.treeFilter.dataItem.dedId;\r\n }\r\n else if (this.treeFilter.dataItem.documentSet) {\r\n DisciplineId = this.treeFilter.dataItem.documentSet.disc_DED_Id;\r\n structureObj = this.treeFilter.dataItem.documentSet.structure_DED_Id;\r\n }\r\n else {\r\n data.items.forEach((element: any) => {\r\n if (element.dedId == this.treeFilter.dataItem.dedId) {\r\n let indexarray = value.index.split('_');\r\n DisciplineId = this.docSetHierarchy[indexarray[0]].dedId;\r\n structureObj = element;\r\n }\r\n });\r\n }\r\n })\r\n let selectedItem: INavigationTree = this.treeFilter.dataItem;\r\n // let test = this.getGridAllData();\r\n if (!!selectedItem && selectedItem.documentSet == null) {\r\n let GridData = this.getGridAllData();\r\n if (DisciplineId) {\r\n this.gridData = GridData.filter(doc => {\r\n return !!doc.dciScheduleElementDetails?.some(data => data.deD_Id == DisciplineId)\r\n });\r\n if (structureObj) {\r\n this.gridData = this.gridData.filter(doc => {\r\n return !!doc.dciScheduleElementDetails?.some(data => data.deD_Id == this.treeFilter.dataItem.dedId)\r\n });\r\n }\r\n }\r\n this.selectedDocSet = value;\r\n //this.searchDci(true); \r\n return;\r\n }\r\n if (selectedItem && selectedItem.documentSet) {\r\n this.gridData = this.getGridAllData().filter(x => x.doc_Set_Name == selectedItem.documentSet.document_Set_Name);\r\n //Retain the last selected docset value for search filter\r\n this.selectedDocSet = value;\r\n this.searchDci(true);\r\n }\r\n }\r\n\r\n public closeAdvSearch(event: any) {\r\n this.isSearch = false;\r\n }\r\n\r\n onHoverTrigger(event: any) {\r\n this.hoverClass = 'open';\r\n this.IsShowSection = !this.IsShowSection;\r\n if (!this.IsShowSection && this.selectedDocSet) {\r\n this.selectedDocSet = null;\r\n this.searchDci(false);\r\n }\r\n }\r\n\r\n createMessageClick() {\r\n let selectedDocuments = this.gridData.filter(data => data.isSelected == true)[0];\r\n let selectedDocumentsList = [];\r\n if (selectedDocuments != undefined && selectedDocuments != null) {\r\n selectedDocumentsList = this.gridData.filter(val => val.isSelected == true).map(x => {\r\n return {\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorized_By,\r\n createdByName: x.created_By\r\n }\r\n });\r\n }\r\n else {\r\n selectedDocumentsList = this.gridData.filter(val => val.isSelected).map(x => {\r\n return {\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorized_By,\r\n createdByName: x.created_By\r\n }\r\n });\r\n }\r\n if (!!selectedDocuments) {\r\n const dialogRef = this.dialog.open(CreateMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createDocumentMail', selectedList: selectedDocumentsList }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please Select Atleast One Document\", \"Warning\");\r\n }\r\n }\r\n\r\n searchDci(isFromNavTree: boolean) {\r\n this.directive.skip = 0;\r\n\r\n let dynamicForm: FormGroup;\r\n if (this.schSearchDynamicForm)\r\n dynamicForm = this.schSearchDynamicForm.value;\r\n\r\n let fromDateValue: any;\r\n let toDateValue: any;\r\n if (dynamicForm) {\r\n fromDateValue = dynamicForm.get('fromDate').value;\r\n toDateValue = dynamicForm.get('toDate').value;\r\n }\r\n let fromDate: Date;\r\n let toDate: Date;\r\n //Reset the grid collection before filtering\r\n if (!isFromNavTree) {\r\n if (this.selectedDocSet)\r\n this.handleSelection(this.selectedDocSet);\r\n else\r\n this.gridData = this.getGridAllData();\r\n }\r\n if (fromDateValue && toDateValue) {\r\n fromDate = moment(fromDateValue.value).toDate();\r\n toDate = moment(toDateValue.value).toDate();\r\n this.gridData = this.gridData.filter(x => {\r\n let createdOn: Date = new Date(this.datepipe.transform(x.created_On, \"dd-MMM-yyyy\"));\r\n return createdOn && new Date(createdOn) >= fromDate && new Date(createdOn) <= toDate;\r\n });\r\n }\r\n if (fromDateValue) {\r\n fromDate = moment(fromDateValue.value).toDate();\r\n this.gridData = this.gridData.filter(x => {\r\n let createdOn: Date = new Date(this.datepipe.transform(x.created_On, \"dd-MMM-yyyy\"));\r\n return createdOn && new Date(createdOn) >= fromDate\r\n });\r\n }\r\n if (toDateValue) {\r\n toDate = moment(toDateValue.value).toDate();\r\n this.gridData = this.gridData.filter(x => {\r\n let createdOn: Date = new Date(this.datepipe.transform(x.created_On, \"dd-MMM-yyyy\"));\r\n return createdOn && new Date(createdOn) <= toDate\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Reset the search fields\r\n */\r\n resetSearch() {\r\n this.createSearchFieldsForm();\r\n this.searchDci(false);\r\n }\r\n\r\n receviewData(data: any) {\r\n let inputModel: IPorjectInputModel = {\r\n project_Id: this.projectId\r\n , group_Id: this.groupId\r\n , disc_Id: data.disc_Id\r\n , struct_Id: data.struct_Id\r\n , drg_Type: data.drg_Type\r\n , stages: data.stages\r\n , transmittal_no: data.transmittal_no\r\n , schedule_Type: (data.schedule_Type && data.schedule_Type.length > 0 ? data.schedule_Type.toString() : null)\r\n , docNo: data.doc_no\r\n , docset_id: data.docset_id\r\n , schedule_from: this.datepipe.transform(data.from_Date, \"yyyy-MM-dd\")\r\n , schedule_to: this.datepipe.transform(data.to_Date, \"yyyy-MM-dd\")\r\n };\r\n this.loadscheduleDocumnets(inputModel)\r\n }\r\n\r\n AdvanceSearch() {\r\n this.ADSearchComponent = !this.ADSearchComponent\r\n if (!this.ADSearchComponent)\r\n this.refreshGrid()\r\n }\r\n /**\r\n * Status tab click for Approve,Reject and All Documents\r\n * @param event \r\n */\r\n\r\n tabClick(event: any) {\r\n //this.ADSearchComponent = false;\r\n this.directive.skip = 0;\r\n //Reset the selection while tab changes\r\n this.dciGrid.defaultSelection.selectedKeys = [];\r\n //Reset the isselected flag as false\r\n this.gridAllData.forEach(x => x.isSelected = false);\r\n\r\n this.enableFilter = false;\r\n this.directive.filter = undefined;\r\n\r\n //Reset the skip count\r\n this.skip = 0;\r\n //Whenever tab change event raised,trigger the searc DCI method\r\n this.searchDci(false);\r\n\r\n this.IslatestShow = false;\r\n this.isLatest = true;\r\n this.isCanApprove = true\r\n this.isCanReject = true;\r\n this.isShowWFIcon = false;\r\n this.isShowSupersedeIcon = false;\r\n this.completeEditHide = true;\r\n\r\n if (event.tab.textLabel.toUpperCase() == \"FOR ACTION\") {\r\n this.IslatestShow = false;\r\n this.isLatest = true;\r\n this.isCanApprove = true\r\n this.isCanReject = true;\r\n this.isShowWFIcon = false;\r\n this.isShowSupersedeIcon = false;\r\n this.completeEditHide = true;\r\n }\r\n else if (event.tab.textLabel.toUpperCase() == \"APPROVED\") {\r\n this.IslatestShow = false;\r\n this.isLatest = true;\r\n this.isCanApprove = false\r\n this.isCanReject = false;\r\n this.isShowWFIcon = true;\r\n this.isShowSupersedeIcon = true\r\n this.completeEditHide = true;\r\n }\r\n else if (event.tab.textLabel.toUpperCase() == \"REJECTED\") {\r\n this.IslatestShow = false;\r\n this.isLatest = true;\r\n this.isCanApprove = true;\r\n this.isCanReject = false;\r\n this.isShowWFIcon = false;\r\n this.isShowSupersedeIcon = false;\r\n this.completeEditHide = true;\r\n }\r\n else if (event.tab.textLabel.toUpperCase() == \"IN PROGRESS\") {\r\n this.IslatestShow = false;\r\n this.isLatest = true;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n this.isShowWFIcon = false;\r\n this.isShowSupersedeIcon = false;\r\n this.completeEditHide = true;\r\n }\r\n else if (event.tab.textLabel.toUpperCase() == \"ON HOLD\") {\r\n this.IslatestShow = false;\r\n this.isLatest = true;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n this.isShowWFIcon = false;\r\n this.isShowSupersedeIcon = false;\r\n this.completeEditHide = true;\r\n }\r\n else if (event.tab.textLabel.toUpperCase() == \"COMPLETED\") {\r\n this.IslatestShow = true;\r\n this.isLatest = true;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n this.isShowWFIcon = false;\r\n this.isShowSupersedeIcon = true;\r\n this.completeEditHide = false;\r\n }\r\n else if (event.tab.textLabel.toUpperCase() == \"ALL\") {\r\n this.IslatestShow = true;\r\n this.isLatest = true;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n this.isShowWFIcon = true;\r\n this.isShowSupersedeIcon = false;\r\n this.completeEditHide = true;\r\n }\r\n }\r\n\r\n refreshGrid() {\r\n if (this.isLatest) {\r\n this.gridAllData = this.gridAllRevisionData.filter(doc => doc.is_Latest == true);\r\n this.gridData = this.getGridAllData();\r\n if (!!this.treeFilter && this.IsShowSection == true) {\r\n this.handleSelection(false);\r\n }\r\n } else {\r\n this.gridAllData = this.gridAllRevisionData;\r\n this.gridData = this.getGridAllData();\r\n }\r\n if (!!this.treeFilter && this.IsShowSection == true) {\r\n this.handleSelection(false);\r\n }\r\n }\r\n\r\n getGridAllData(): IScheduleDocInfo[] {\r\n let gridDataArr: IScheduleDocInfo[] = [];\r\n this.approvedCount = this.gridAllData.filter(x => x.approved_Tag == true && x.approved_On != null && !x.is_WF_Started && !x.isCompleted).length;\r\n this.rejectedCount = this.gridAllData.filter(x => x.approved_Tag == false && x.approved_On != null).length;\r\n this.forActionCount = this.gridAllData.filter(x => x.approved_Tag == false && x.approved_On == null).length;\r\n this.inprogressCount = this.gridAllData.filter(x => x.approved_Tag == true && x.approved_On != null && x.is_WF_Started && !x.isCompleted && x.hold == false).length;\r\n this.holdedCount = this.gridAllData.filter(x => x.hold == true).length;\r\n this.completedCount = this.gridAllData.filter(x => x.isCompleted == true && x.hold == false).length;\r\n this.totalCount = this.gridAllData.length;\r\n switch (this.selectedRootIndex) {\r\n case 0:\r\n gridDataArr = this.gridAllData.filter(x => x.approved_Tag == false && x.approved_On == null && x.is_Latest == true);\r\n this.forActionCount = gridDataArr.length;\r\n this.isCanApprove = true;\r\n this.isCanReject = true;\r\n break;\r\n case 1:\r\n gridDataArr = this.gridAllData.filter(x => x.approved_Tag == true && x.approved_On != null && !x.is_WF_Started && !x.isCompleted && x.is_Latest == true);\r\n this.approvedCount = gridDataArr.length;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n break;\r\n case 2:\r\n gridDataArr = this.gridAllData.filter(x => x.approved_Tag == false && x.approved_On != null && x.is_Latest == true);\r\n this.rejectedCount = gridDataArr.length;\r\n this.isCanApprove = true;\r\n this.isCanReject = false;\r\n break;\r\n case 3:\r\n gridDataArr = this.gridAllData.filter(x => x.approved_Tag == true && x.approved_On != null && x.is_WF_Started && !x.isCompleted && x.is_Latest == true && x.hold == false);\r\n this.inprogressCount = gridDataArr.length;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n break;\r\n case 4:\r\n gridDataArr = this.gridAllData.filter(x => x.hold == true);\r\n this.holdedCount = gridDataArr.length;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n break;\r\n case 5:\r\n gridDataArr = this.gridAllData.filter(x => x.isCompleted == true && x.hold == false);\r\n this.completedCount = gridDataArr.length;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n break;\r\n default:\r\n gridDataArr = this.gridAllData;\r\n this.totalCount = gridDataArr.length;\r\n this.isCanApprove = false;\r\n this.isCanReject = false;\r\n break;\r\n }\r\n return gridDataArr;\r\n }\r\n\r\n GetSupercedeDCIDetails() {\r\n this.SupercedeDCIDetails = [];\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n this.SupercedeDCIDetails.push(y);\r\n })\r\n if (this.SupercedeDCIDetails && this.SupercedeDCIDetails.length > 0) {\r\n\r\n if (this.SupercedeDCIDetails.length > 20) {\r\n this._notificationService.showPopup(\"No of documents should not exceed 20 !!!\", \"Warning\");\r\n return;\r\n }\r\n\r\n this._notificationService.showPopup('Are you sure to Supersede the Selected Documents ?', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let dialogRef = this.dialog.open(BulkDCISupersedeComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: this.SupercedeDCIDetails,\r\n autoFocus: false\r\n });\r\n let _DciSupersedeComponent = dialogRef.afterClosed().subscribe(res => {\r\n this.loadscheduleDocumnets();\r\n });\r\n this.UnsubscribeArray.push(_DciSupersedeComponent);\r\n }\r\n });\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Kindly Select Documents to Supersede!!!\", \"Warning\");\r\n }\r\n }\r\n\r\n /**\r\n * Approve or Reject Multi or Single Document\r\n * @param isApproved \r\n */\r\n approveDCIDocs(isApproved: boolean) {\r\n this.scheduleApprovalDocDetails = [];\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n this.scheduleApprovalDocDetails.push({ doc_Id: y.doc_Id, revision_No: y.revision_No });\r\n })\r\n this.approveDciDocuments(isApproved);\r\n }\r\n\r\n /**\r\n * Approve or Reject Document inline hover\r\n * @param isApproved \r\n * @param dataItem \r\n */\r\n approveDCI(isApproved: boolean, dataItem: IScheduleDocInfo) {\r\n this.scheduleApprovalDocDetails = [];\r\n this.scheduleApprovalDocDetails.push({ doc_Id: dataItem.doc_Id, revision_No: dataItem.revision_No });\r\n this.approveDciDocuments(isApproved);\r\n }\r\n\r\n /**\r\n * Approve or Reject DCI Documents\r\n * @param isApproved \r\n */\r\n approveDciDocuments(isApproved: boolean) {\r\n if (this.scheduleApprovalDocDetails.length > 0) {\r\n let inputModel: IScheduleDocApprovalDetails = {\r\n DocSchApproveDetails: this.scheduleApprovalDocDetails,\r\n approved_Tag: isApproved,\r\n userId: this.memberId\r\n };\r\n let _InsertUpdateScheduleApprovalDetails = this._scheduleDocService.InsertUpdateScheduleApprovalDetails(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 205) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.loadscheduleDocumnets();\r\n });\r\n this.UnsubscribeArray.push(_InsertUpdateScheduleApprovalDetails);\r\n }\r\n else {\r\n this._notificationService.showToast(\"No document is selected\", \"Warning\");\r\n }\r\n }\r\n\r\n viewTabClick(event: MatTabChangeEvent) {\r\n this.viewSchDoc = null;\r\n if (this.selectedTabIndex != 0) {\r\n this.viewSchDoc = this.viewDciTabList[this.selectedTabIndex - 1];\r\n }\r\n }\r\n\r\n /**\r\n * View DCI Document\r\n * @param data \r\n */\r\n viewDocumentClick(data: IScheduleDocInfo) {\r\n let index = this.viewDciTabList.indexOf(data);\r\n if (index == -1) {\r\n this.viewDciTabList.push(data);\r\n this.selectedTabIndex = this.viewDciTabList.length;\r\n }\r\n this.ADSearchComponent = false;\r\n }\r\n\r\n onClick_Compare() {\r\n let dialogRef = this.dialog.open(FileCompareComponent, {\r\n panelClass: 'mat-dialog-primary'\r\n });\r\n }\r\n\r\n closeViewTab(tab: IScheduleDocInfo) {\r\n this.viewDciTabList.forEach((value, index) => {\r\n if (value.doc_Id == tab.doc_Id)\r\n this.viewDciTabList.splice(index, 1);\r\n });\r\n if (this.viewDciTabList.length == 0) {\r\n this.selectedTabIndex = 0;\r\n }\r\n this.loadscheduleDocumnets();\r\n }\r\n\r\n /**\r\n * View Multi or Single Document\r\n */\r\n viewDCIDocumentsClick() {\r\n this.gridData.filter(x => x.isSelected).forEach(element => {\r\n let index = this.viewDciTabList.indexOf(element);\r\n if (index == -1) {\r\n this.viewDciTabList.push(element);\r\n this.selectedTabIndex = 1;\r\n }\r\n });\r\n if (this.viewDciTabList.length == 0) {\r\n this._notificationService.showToast(\"No document is selected\", \"Warning\");\r\n }\r\n this.ADSearchComponent = false;\r\n }\r\n\r\n public downloadDCIExcelTemplate() {\r\n this.loaderService.isLoading.next(true);\r\n let projectModel: ProjectViewModel = this._commonService.getCurrentProjectDetails();\r\n let inputData: IPorjectInputModel = { project_Id: this.projectId, group_Id: this.groupId, startDate: projectModel.startDate, endDate: projectModel.endDate }\r\n let fileName = \"DCI_Excel_Template-\" + this.projectCode + \".xlsx\";\r\n let _GetDCIExcelTemplate = this._scheduleDocService.GetDCIExcelTemplate(inputData).subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n },\r\n (err: any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading Template\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(_GetDCIExcelTemplate);\r\n }\r\n\r\n private processFile = async (inputFile: any) => {\r\n const temporaryFileReader = new FileReader();\r\n return new Promise((resolve, reject) => {\r\n temporaryFileReader.readAsArrayBuffer(inputFile);\r\n temporaryFileReader.onload = (event) => {\r\n resolve(event && event.target && event.target['readyState'] == FileReader.DONE ? (new Uint8Array(event.target['result'])) : null);\r\n };\r\n });\r\n };\r\n\r\n private async UploadISOExcel(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n if (event.target.files[0].type != this.acceptFileTypes) {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showPopup(\"File type is incorrect(*.xlsx file type expected)\", \"Warning\");\r\n this.excelISOUpload.nativeElement.value = null;\r\n return;\r\n }\r\n let _file = event.target.files[0];\r\n const formData: FormData = new FormData();\r\n let _filedetails: any = [].slice.call(await this.processFile(_file))\r\n formData.append('ISOExcel', event.target.files[0], event.target.files[0].name);\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('GroupId', this.groupId.toString());\r\n formData.append('MemberId', this.memberId.toString());\r\n if (_filedetails)\r\n formData.append('fileAsByteArray', _filedetails);\r\n\r\n let _UploadISOExcel = this._scheduleDocService.UploadISOExcel(formData).subscribe((res: IScheduleISODocUploadDetailsModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n //this._notificationService.showToast(\"Excel Uploaded Successfully..\", \"Success\");\r\n let dialogRef = this.dialog.open(ISODCIUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: res,\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.loadscheduleDocumnets();\r\n });\r\n this.UnsubscribeArray.push(_UploadISOExcel);\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.excelISOUpload.nativeElement.value = null;\r\n }, (err: any) => {\r\n this.loaderService.isLoading.next(false);\r\n this.excelISOUpload.nativeElement.value = null;\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n })\r\n this.UnsubscribeArray.push(_UploadISOExcel);\r\n }\r\n\r\n UploadISOClick() {\r\n if (this.isDocSetRequired)\r\n this._notificationService.showPopup(\"ISO DCI Upload is not applicable for Document Set Enabled Projects!!!\", \"Warning\");\r\n else\r\n this.excelISOUpload.nativeElement.click();\r\n }\r\n\r\n uploadDCIClick() {\r\n this.excelDCIUpload.nativeElement.click();\r\n }\r\n\r\n uploadDCITemplate(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n if (event.target.files[0].type != this.acceptFileTypes) {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showPopup(\"File type is incorrect(*.xlsx file type expected)\", \"Warning\");\r\n this.excelDCIUpload.nativeElement.value = '';\r\n return;\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('DCIExcelTemplate', event.target.files[0], event.target.files[0].name);\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('GroupId', this.groupId.toString());\r\n formData.append('MemberId', this.memberId.toString());\r\n let _UploadDCIExcelTemplate = this._scheduleDocService.UploadDCIExcelTemplate(formData).subscribe((res: IScheduleDocUploadStatusModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n //this._notificationService.showToast(\"Excel Uploaded Successfully..\", \"Success\");\r\n let dialogRef = this.dialog.open(ScheduleExcelUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: res,\r\n });\r\n let _ScheduleExcelUploadComponent = dialogRef.afterClosed().subscribe((res: any) => {\r\n this.loadscheduleDocumnets();\r\n });\r\n this.UnsubscribeArray.push(_ScheduleExcelUploadComponent);\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.excelDCIUpload.nativeElement.value = '';\r\n }, (err: any) => {\r\n this.loaderService.isLoading.next(false);\r\n this.excelDCIUpload.nativeElement.value = '';\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n })\r\n this.UnsubscribeArray.push(_UploadDCIExcelTemplate);\r\n }\r\n\r\n viewDci(dataItem: IScheduleDocInfo) {\r\n let dialogRef = this.dialog.open(ScheduleEditComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { dataItem: dataItem, isSuperEdit: this._isSuperEdit },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n let __dialogRef = dialogRef.afterClosed().subscribe((res: any) => {\r\n this.loadscheduleDocumnets();\r\n })\r\n this.ADSearchComponent = false;\r\n this.UnsubscribeArray.push(__dialogRef);\r\n }\r\n\r\n deleteDci(dataItem: IScheduleDocInfo) {\r\n this._notificationService.showPopup('Are you sure you want to delete?', 'Confirm').then(msg => {\r\n if (msg == 'yes') {\r\n let reaData = {\r\n \"docId\": dataItem.doc_Id,\r\n \"revisionNo\": dataItem.revision_No,\r\n \"userId\": this._commonService.getLoggedInUserId()\r\n };\r\n let _DeleteDoc = this._docService.DeleteDoc(reaData).subscribe((res: any) => {\r\n if (res.successCode == 200) {\r\n this.refreshGrid();\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_DeleteDoc);\r\n }\r\n });\r\n }\r\n\r\n\r\n public onClick_WorkflowSupersede(dataItem: IScheduleDocInfo) {\r\n this._notificationService.showPopup('Are you sure to supersede the selected Document?', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let dialogRef = this.dialog.open(DciSupersedeComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: dataItem,\r\n autoFocus: false\r\n });\r\n let _DciSupersedeComponent = dialogRef.afterClosed().subscribe((res: any) => {\r\n this.loadscheduleDocumnets();\r\n });\r\n this.UnsubscribeArray.push(_DciSupersedeComponent);\r\n }\r\n });\r\n }\r\n sameDiscipline!: boolean;\r\n ccnsameDiscipline!: boolean;\r\n public onClick_StartWorkflow(dataItem: IScheduleDocInfo, currentDoc: any) {\r\n this.sameDiscipline = false;\r\n this.ccnsameDiscipline = false;\r\n let dciToStartWorkflow: any = [];\r\n let hasError = false;\r\n if (dataItem) {\r\n if (dataItem.is_WF_Started && !dataItem.can_Restart_WF) {\r\n hasError = true;\r\n this._notificationService.showToast(\"Workflow has been initiated for the selected document\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.is_WF_Started && dataItem.can_Restart_WF) {\r\n dciToStartWorkflow.push({ isSelected: false, documentId: dataItem.doc_Id, documentNumber: dataItem.doc_No, documentTitle: dataItem.doc_Title, revisionNumber: dataItem.revision_No, workflowId: dataItem.workflow_Id, DciScheduleElementDetails: dataItem.dciScheduleElementDetails });\r\n }\r\n else if (dciToStartWorkflow.filter((x: { documentId: number; }) => x.documentId == dataItem.doc_Id).length == 0)\r\n dciToStartWorkflow.push({ isSelected: false, documentId: dataItem.doc_Id, documentNumber: dataItem.doc_No, documentTitle: dataItem.doc_Title, revisionNumber: dataItem.revision_No, workflowId: dataItem.workflow_Id, DciScheduleElementDetails: dataItem.dciScheduleElementDetails });\r\n }\r\n if (!dataItem) {\r\n let selected_data = this.gridData.filter(x => x.isSelected);\r\n if (selected_data.length > 0) {\r\n let checkApprove = selected_data.some(doc => doc.approved_Tag == false);\r\n if (checkApprove) {\r\n hasError = true;\r\n this._notificationService.showToast(\"Approval is pending for some of the selected document(s), please exclude\", \"Warning\");\r\n return;\r\n }\r\n }\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n if (y.is_WF_Started && !y.can_Restart_WF) {\r\n hasError = true;\r\n dciToStartWorkflow = [];\r\n this._notificationService.showToast(\"Workflow has been initiated for some of the selected document(s), please exclude\", \"Warning\");\r\n return;\r\n }\r\n if (!y.is_WF_Started && y.can_Restart_WF) {\r\n dciToStartWorkflow.push({ isSelected: false, documentId: y.doc_Id, documentNumber: y.doc_No, documentTitle: y.doc_Title, revisionNumber: y.revision_No, workflowId: y.workflow_Id, DciScheduleElementDetails: y.dciScheduleElementDetails });\r\n return;\r\n }\r\n if (dciToStartWorkflow.filter((x: { documentId: number; }) => x.documentId == y.doc_Id).length == 0)\r\n dciToStartWorkflow.push({ isSelected: false, documentId: y.doc_Id, documentNumber: y.doc_No, documentTitle: y.doc_Title, revisionNumber: y.revision_No, workflowId: y.workflow_Id, DciScheduleElementDetails: y.dciScheduleElementDetails });\r\n });\r\n const distinctThings = dciToStartWorkflow.filter(\r\n (thing: { workflowId: any; }, i: any, arr: any[]) => arr.findIndex(t => t.workflowId === thing.workflowId) === i\r\n );\r\n let Doc_discipline: any;\r\n if (dciToStartWorkflow.length > 0) {\r\n Doc_discipline = dciToStartWorkflow[0].DciScheduleElementDetails.filter((val: any) => val.dE_Description == \"Discipline\")[0];\r\n }\r\n if (distinctThings.length > 1) {\r\n hasError = true;\r\n this._notificationService.showToast(\"Selected document number contains different workflows\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (dciToStartWorkflow.length > 0) {\r\n dciToStartWorkflow.forEach((val: any) => {\r\n this.sameDiscipline = val.DciScheduleElementDetails.some((doc: any) => {\r\n\r\n //return doc.dE_Description == \"Discipline\" && doc.deD_Id != doc_discipline.deD_Id\r\n if (doc.dE_Description == \"Discipline\") {\r\n if (doc.deD_Id != Doc_discipline.deD_Id) {\r\n return true;\r\n }\r\n }\r\n })\r\n })\r\n }\r\n if (this.sameDiscipline) {\r\n hasError = true;\r\n this._notificationService.showToast(\"Selected document number contains different discipline\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (this.ccnsameDiscipline) {\r\n hasError = true;\r\n this._notificationService.showToast(\"Selected document number contains different discipline\", \"Warning\");\r\n return;\r\n }\r\n }\r\n\r\n if (dciToStartWorkflow.length == 0) {\r\n this._notificationService.showPopup(\"Kindly Select Documents to Start Workflow!!!\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (!hasError && dciToStartWorkflow.length > 0) {\r\n let dialogRef = this.dialog.open(ScheduleStartWorkflowComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { dciToStartWorkflow, currentDoc },\r\n autoFocus: false\r\n });\r\n let _ScheduleStartWorkflowComponent = dialogRef.afterClosed().subscribe(() => {\r\n dciToStartWorkflow = [];\r\n hasError = false;\r\n this.loadscheduleDocumnets();\r\n this.dciGrid.defaultSelection.selectedKeys = [];\r\n this.gridAllData.forEach(x => x.isSelected = false);\r\n this.isShowWFIcon = true;\r\n this.enableRowWiseWFIcon = true;\r\n });\r\n this.UnsubscribeArray.push(_ScheduleStartWorkflowComponent);\r\n }\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.loadGridItems();\r\n }\r\n\r\n private loadGridItems(): void {\r\n this.gridView = {\r\n data: this.gridData.slice(this.skip, this.skip + this.pageSize),\r\n total: this.gridData.length,\r\n };\r\n }\r\n\r\n public onClick_WorkflowHistory(dataItem: IScheduleDocInfo) {\r\n let dialogRef = this.dialog.open(ScheduleWorkflowhistoryComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: dataItem\r\n });\r\n\r\n let _ScheduleWorkflowhistoryComponent = dialogRef.afterClosed().subscribe((data: any) => {\r\n });\r\n this.UnsubscribeArray.push(_ScheduleWorkflowhistoryComponent);\r\n }\r\n\r\n viewMessageList(category: number, data: any) {\r\n let inputModel: IDocumentMailInputModel = {\r\n DocId: data.doc_Id,\r\n DocumentNo: data.doc_No,\r\n Category: category,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n MemberId: this.memberId,\r\n TransType: \"\",\r\n revisionNo: data.revision_No\r\n };\r\n this.dialog.open(ScheduleDocumentMailListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: inputModel\r\n });\r\n }\r\n\r\n viewAttachmentClick(data: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectId, docId: data.doc_Id, revisionNo: data.revision_No, libraryName: [FileUploadLibrary.WorkflowDocument, FileUploadLibrary.SignedDocuments], createdBy: this.memberId, isDeleteEnable: false, documentNo: data.doc_No },\r\n });\r\n }\r\n\r\n public openRevHistory(event: any, docId: number) {\r\n this.showRevHistory = !this.showRevHistory;\r\n if (this.showRevHistory) {\r\n this.revHistory = {\r\n docId: docId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: \"Project\"\r\n };\r\n }\r\n else {\r\n this.revHistory = null;\r\n }\r\n this.anchorElementPopup = event.target;\r\n }\r\n\r\n public closeRevHistory() {\r\n this.showRevHistory = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const isClickOutsidePopup = !this.elementRef.nativeElement.contains(event.target);\r\n if (isClickOutsidePopup) {\r\n this.closeRevHistory();\r\n }\r\n }\r\n\r\n\r\n /**Lastviewrecords change */\r\n public lastviewingrecordsmethod(event: any) {\r\n if (event == \"All\") {\r\n this.lastViewingRecords = 0;\r\n this.loadscheduleDocumnets();\r\n this.lastViewingRecord = \"All\";\r\n }\r\n else {\r\n this.lastViewingRecords = event;\r\n this.lastViewingRecord = event;\r\n this.loadscheduleDocumnets();\r\n }\r\n this.enableFilter = false;\r\n this.directive.filter = undefined;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n getDateValue(selectedText: any) {\r\n this.RevisedScheduleDate = selectedText.value;\r\n }\r\n\r\n async updateReviseDate() {\r\n this.reviseScheduleDateDetails = [];\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n this.reviseScheduleDateDetails.push({ docId: y.doc_Id, revisionNo: y.revision_No, stageId: y.dciScheduleStageDetails ? y.dciScheduleStageDetails[0].stage_Id : undefined });\r\n })\r\n if (this.reviseScheduleDateDetails.length > 0) {\r\n let inputModel: IScheduleDateUpdateDetails = {\r\n docSchDateDetail: this.reviseScheduleDateDetails,\r\n revisedDate: this.RevisedScheduleDate,\r\n userId: this.memberId\r\n };\r\n this.loaderService.isLoading.next(true);\r\n let _UpdateScheduleDateToDocuments = this._scheduleDocService.UpdateScheduleDateToDocuments(inputModel).subscribe(async (res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n await this.loadscheduleDocumnets();\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 205) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.loaderService.isLoading.next(false);\r\n });\r\n this.UnsubscribeArray.push(_UpdateScheduleDateToDocuments);\r\n this.dciGrid.defaultSelection.selectedKeys = [];\r\n }\r\n else {\r\n this._notificationService.showToast(\"No document is selected\", \"Warning\");\r\n }\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projInfoService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let isDocSetRequiredElement = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequiredElement) {\r\n this.isDocSetRequired = isDocSetRequiredElement.isMandatory;\r\n }\r\n }\r\n }, (err: any) => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n\r\n }\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.gridData.map(doc => ({\r\n ...doc,\r\n scheduled_On: doc.dciScheduleStageDetails ? (doc.dciScheduleStageDetails.filter(l => { return l.stage_Short_Desc == doc.current_Stage }).length > 0 ? formatDate(doc.dciScheduleStageDetails.filter(l => { return l.stage_Short_Desc == doc.current_Stage })[0].scheduled_On, 'dd-MMM-yyyy', 'en-US') : null) : null,\r\n submission_Date: doc.submission_Date ? formatDate(doc.submission_Date, 'dd-MMM-yyyy', 'en-US') : '',\r\n created_On: doc.created_On ? formatDate(doc.created_On, 'dd-MMM-yyyy', 'en-US') : '',\r\n approval_Date: doc.approval_Date ? formatDate(doc.approval_Date, 'dd-MMM-yyyy', 'en-US') : ''\r\n }))\r\n };\r\n return result;\r\n }\r\n\r\n public downloadTransmittalClick(data: IScheduleDocInfo) {\r\n if (!!data.message_Id) {\r\n let _GetTransmittalList = this._transmittalService.GetTransmittalList({ project_id: this.projectId, message_Id: data.message_Id }).subscribe((res: ITransmittalDetailsModel[]) => {\r\n if (res && res.length > 0) {\r\n this.pushTransmittalTemplateModel(res[0]);\r\n }\r\n });\r\n this.UnsubscribeArray.push(_GetTransmittalList);\r\n }\r\n }\r\n\r\n pushTransmittalTemplateModel(data: ITransmittalDetailsModel) {\r\n this.viewTransmittalData = null;\r\n let groupDetails: Observable = this._transmittalService.GetTransmittalGroupMemberDetails(data.message_Id);\r\n let docDetails: Observable = this._transmittalService.GetTransmittalDocumentDetails(data.message_Id);\r\n let receiverDetails: Observable = this._transmittalService.GetTransmittalReceiverDetails(data.message_Id);\r\n let _membersList: Observable = this.transmittalService.getProjectMembers();\r\n let _pushTransmittalTemplateModel = forkJoin(groupDetails, docDetails, receiverDetails, _membersList).subscribe((res: any[]) => {\r\n let receiverDetails: ITransmittalMsgReceiverInput = res[2];\r\n let docDetails: ITransmittalDocumentInput = res[1];\r\n let transDocDetails: ITransmittalDocumentDetails[] = [];\r\n if (!!docDetails && !!docDetails.transmittalDocumentDetails) {\r\n transDocDetails = docDetails.transmittalDocumentDetails;\r\n }\r\n let to = receiverDetails.transmittalToDetails[0].member_Id;\r\n let toWithAddress;\r\n if (to && res[3]) {\r\n let toMember = res[3].filter((x: { memberId: number; }) => x.memberId == to)\r\n toWithAddress = (toMember[0].address) ? toMember[0].memberName + '
' + toMember[0].address : toMember[0].memberName\r\n }\r\n else {\r\n toWithAddress = receiverDetails.transmittalToDetails.map(x => x.member_Name).join(',')\r\n }\r\n let transmittalTemplate: TransmittalTemplateComponent = {\r\n templateName: 'common',\r\n projName: this.projectName,\r\n edrcRef: data.message_Number,\r\n cusRef: '',\r\n docDetails: transDocDetails,\r\n distributionDetails: res[0],\r\n subject: data.message_Subject,\r\n attention: receiverDetails.transmittalToDetails.map(x => x.member_Name).join(','),\r\n to: toWithAddress,\r\n date: formatDate(data.created_On, 'dd-MMM-yyyy', 'en-US'),\r\n message_No: data.message_Number,\r\n message_id: data.message_Id,\r\n cc: receiverDetails.transmittalCcDetails.map(x => x.member_Name).join(','),\r\n From: receiverDetails.transmittalFromDetails.map(x => x.member_Name).join(','),\r\n message_Note: data.message_Note\r\n }\r\n this.viewTransmittalData = transmittalTemplate;\r\n setTimeout(() => {\r\n this.loaderService.isLoading.next(true);\r\n this.exportToWord(data);\r\n this.loaderService.isLoading.next(false);\r\n }, 1000);\r\n });\r\n this.UnsubscribeArray.push(_pushTransmittalTemplateModel);\r\n }\r\n\r\n exportToWord(data: ITransmittalDetailsModel) {\r\n //To check and remove \"Signed Copies\" column from Work document\r\n let rootElement: any = document.getElementById('TransmittalComponent')?.cloneNode(true) as HTMLCanvasElement;\r\n let documentGrid: HTMLElement = rootElement.children[0].children[\"documentGrid\"];\r\n if (documentGrid) {\r\n let tHead: HTMLCollection = documentGrid.children[0].children[0].children;\r\n if (tHead && tHead.length > 1) {\r\n tHead[1].remove();\r\n }\r\n for (let i = 0; i < documentGrid.children[1].children.length; i++) {\r\n let tBody: HTMLCollection = documentGrid.children[1].children[i].children;\r\n if (tBody && tBody.length > 1) {\r\n tBody[1].remove();\r\n }\r\n }\r\n }\r\n let docName: string = data.message_Number;\r\n var header = \"Export Word Document
\";\r\n var footer = \"\";\r\n var html = header + rootElement.innerHTML + footer;\r\n var blob = new Blob(['\\ufeff', html], {\r\n type: 'application/msword'\r\n });\r\n // Specify link url\r\n var url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html);\r\n // Specify file name\r\n let filename = docName + '.doc';\r\n // Create download link element\r\n var downloadLink = document.createElement(\"a\");\r\n document.body.appendChild(downloadLink);\r\n\r\n if (blob) {\r\n saveAs(blob, filename);\r\n // return;\r\n }\r\n else {\r\n // Create a link to the file\r\n downloadLink.href = url;\r\n // Setting the file name\r\n downloadLink.download = filename;\r\n //triggering the function\r\n downloadLink.click();\r\n }\r\n document.body.removeChild(downloadLink);\r\n }\r\n\r\n public HelpUrlClick() {\r\n let x = JSON.parse(this._commonService.getSessionStorageItem(\"Menu\"))\r\n let url = x.filter((y: { menuDesc: string; }) => y.menuDesc == \"Schedule Documents\")[0].helpUrl\r\n if (url) {\r\n window.open(url);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n getStartDateValue(selectedText) {\r\n this.start = selectedText;\r\n\r\n }\r\n getEndDateValue(selectedText) {\r\n this.end = selectedText;\r\n\r\n }\r\n selectedScheduleType(value: any) {\r\n let docdata\r\n if (value && value.emittingList)\r\n docdata = value.emittingList.map((x: {\r\n value: any;\r\n }) => +x.value);\r\n\r\n if (docdata && docdata.length > 0)\r\n this.Doc_typeid = docdata;\r\n else\r\n this.Doc_typeid = null;\r\n }\r\n\r\n selectedStage(value: any) {\r\n if (value.value != \"-2\") {\r\n this.stages = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.stages = null;\r\n }\r\n }\r\n search() {\r\n let resForm: FormGroup | undefined | null = this.dynamicForm.form;\r\n let elementInp: IProjectElementDetailsOutput[] = this.projectElements.map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription).value;\r\n if (selectedValue == null) {\r\n return null;\r\n } else {\r\n let result: IProjectElementDetailsOutput = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n };\r\n return result;\r\n }\r\n }).filter(x => x !== null) as IProjectElementDetailsOutput[];\r\n\r\n let inputModel: IPorjectInputModel = {\r\n project_Id: this.projectId\r\n , group_Id: this.groupId\r\n , stages: this.stages\r\n , transmittal_no: this.searchForm.get('ctrlTransNo').value\r\n , schedule_Type: this.Doc_typeid?.join(',')\r\n , docNo: this.searchForm.get('ctrlDocNo').value\r\n , schedule_from: this.datepipe.transform(this.start, \"yyyy-MM-dd\")\r\n , schedule_to: this.datepipe.transform(this.end, \"yyyy-MM-dd\")\r\n , projDynamicElements: JSON.stringify(elementInp)\r\n };\r\n this.loadscheduleDocumnets(inputModel)\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Document No\r\n \r\n \r\n
\r\n
\r\n \r\n Transmittal No\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{tab.doc_No}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n For Action\r\n {{forActionCount}}\r\n \r\n \r\n Approved\r\n {{approvedCount}}\r\n \r\n \r\n Rejected\r\n {{rejectedCount}}\r\n \r\n \r\n In Progress\r\n {{inprogressCount}}\r\n \r\n \r\n On Hold\r\n {{holdedCount}}\r\n \r\n \r\n Completed\r\n {{completedCount}}\r\n \r\n \r\n All {{totalCount}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n  \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Details -

\r\n
\r\n

Viewing last

\r\n \r\n

days records

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

Revised ScheduledOn -

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Latest Revision\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' :\r\n 'Collapse'}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.stages}}\" eipTooltipPosition=\"auto\" style=\"display: block;word-wrap:break-word;white-space: normal;\">{{dataItem.workflow_Name}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.current_Stage + \" - \"}}\r\n {{dataItem.doc_Status}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.print_Size}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.scheduled_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisedScheduled_On |\r\n date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.submission_Date | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.message_Number}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.approval_Date | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.current_Status}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
★ Document(s) are listing based on logged-in member's element details mapping.
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Inject, QueryList, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FormGroup, FormControl, Validators, FormArray } from '@angular/forms';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { StartWFsaveInputModel } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { IProjectElementDetailsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { MemberElementDetailLinkService } from \"src/app/Service/member-element-detail-link/member-element-detail-link.service\";\r\nimport { EIPMultiSelectAutoCompleteComponent } from \"eipmulti-select-auto-complete\";\r\n\r\n@Component({\r\n selector: 'app-schedule-startworkflow',\r\n templateUrl: './schedule-startworkflow.component.html',\r\n styleUrls: ['./schedule-startworkflow.component.css']\r\n})\r\nexport class ScheduleStartWorkflowComponent {\r\n //roles: FormArray[] = [];\r\n roleMemberForm: FormGroup = new FormGroup({\r\n roles: new FormArray([])\r\n });\r\n dciToStartWorkflow: any[] = [];\r\n rolesToStartWorkflow!: any[];\r\n DciWorkflowStage: any[] = [];\r\n projectSelectedMembers!: any[];\r\n disciplineId!: number;\r\n members: any[] = [];\r\n gridData: any[] = [];\r\n CopyAllmember: any[] = [];\r\n member: any[] = [];\r\n selectedKey: any[] = [];\r\n roleID: any[] = [];\r\n autoSelectKey: any[] = [];\r\n SelectedID: any[] = [];\r\n isShowCopyBtn: boolean = false;\r\n userMappedObject = new Map();\r\n discipline!: IProjectElementDetailsOutput[];\r\n public enableFullscreen: boolean = false;\r\n @ViewChild('dciToStartWorkflowGrid') grid: any;\r\n @ViewChildren(EIPMultiSelectAutoCompleteComponent) select!: QueryList;\r\n\r\n constructor(private _notificationService: NotificationService,\r\n private _scheduleDocService: ScheduleDocumentService, public _workflowTemplateService: WorkflowTemplateService,\r\n public _dialogRef: MatDialogRef,\r\n public commonService: CommonService,\r\n private _projService: ProjectInfoService,\r\n public memberElementDetailLinkService: MemberElementDetailLinkService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.dciToStartWorkflow = this.data.dciToStartWorkflow;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAllRoleMember();\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n get RoleControls() {\r\n return (this.roleMemberForm.get('roles')).controls;\r\n }\r\n\r\n async callApis(getDocDiscipline: any[]) {\r\n let Doc_Discipline: any[] = [];\r\n this.dciToStartWorkflow.forEach(element => {\r\n element.DciScheduleElementDetails.forEach((data: { dE_Description: string; }) => {\r\n if (data.dE_Description == \"Discipline\") {\r\n Doc_Discipline.push(data);\r\n }\r\n });\r\n });\r\n Doc_Discipline.forEach(element => {\r\n this.memberElementDetailLinkService.getSelectedMembers(this.commonService.getProjectId(), this.commonService.getLoggedInUserGroupId(), element.dE_Id, element.deD_Id, Module.ScheduleDocument).subscribe((data) => {\r\n if (!!data) {\r\n this.disciplineId = element.deD_Id;\r\n this.projectSelectedMembers = data;\r\n this.populateGrid(this.projectSelectedMembers);\r\n\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n async getAllRoleMember(projectSelectedMembers?: any) {\r\n this.rolesToStartWorkflow = await this._scheduleDocService.GetStartWorkflowDetails(this.dciToStartWorkflow).toPromise();\r\n this.callApis(this.dciToStartWorkflow);\r\n window.sessionStorage.setItem(\"members\", JSON.stringify(this.rolesToStartWorkflow));\r\n this.CopyAllmember = JSON.parse(sessionStorage.getItem(\"members\"));//no brackets\r\n }\r\n\r\n getmembers(): string {\r\n let x = sessionStorage.getItem(\"members\");\r\n return x ? x : \"\";\r\n }\r\n\r\n populateGrid(projectSelectedMembers?: any) {\r\n\r\n this.rolesToStartWorkflow = JSON.parse(sessionStorage.getItem(\"members\"));\r\n let memberCopy: any[] = [];\r\n memberCopy = this.rolesToStartWorkflow.filter(x => x);\r\n this.rolesToStartWorkflow = this.rolesToStartWorkflow.filter(x => x.roleId != 0);\r\n for (let i = 0; i <= this.rolesToStartWorkflow.length; i++) {\r\n if (this.rolesToStartWorkflow[i].roleMembersMapping.length > 0) {\r\n if (this.projectSelectedMembers.length > 0) {\r\n let Discipline_base_Member = this.rolesToStartWorkflow[i].roleMembersMapping.filter((data: { memberId: any; }) => {\r\n return this.projectSelectedMembers.some(member => data.memberId == member.memberId);\r\n })\r\n if (Discipline_base_Member != 0) {\r\n this.rolesToStartWorkflow[i].roleMembersMapping = Discipline_base_Member;\r\n this.dciToStartWorkflow.forEach(element => {\r\n if (element.DciScheduleElementDetails.some((x: { deD_Id: number; }) => x.deD_Id == this.disciplineId)) {\r\n element[\"roleMembersMapping\"] = this.rolesToStartWorkflow;\r\n };\r\n })\r\n } else {\r\n this.dciToStartWorkflow.forEach(element => {\r\n if (element.DciScheduleElementDetails.some((x: { deD_Id: number; }) => x.deD_Id == this.disciplineId)) {\r\n element[\"roleMembersMapping\"] = JSON.parse(sessionStorage.getItem(\"members\"));\r\n };\r\n })\r\n }\r\n } else {\r\n this.dciToStartWorkflow.forEach(element => {\r\n if (element.DciScheduleElementDetails.some((x: { deD_Id: number; }) => x.deD_Id == this.disciplineId)) {\r\n element[\"roleMembersMapping\"] = JSON.parse(sessionStorage.getItem(\"members\"));\r\n };\r\n })\r\n }\r\n }\r\n let Dci_lengthCount = this.dciToStartWorkflow.filter(x => !!x.roleMembersMapping);\r\n if (Dci_lengthCount.length == this.dciToStartWorkflow.length) {\r\n let stage: any[] = []\r\n let stageName: any[] = [];\r\n stage.push(this.dciToStartWorkflow[0]);\r\n if (this.DciWorkflowStage.length = 1) {\r\n stage.forEach(x => {\r\n if (!!x.roleMembersMapping) {\r\n x.roleMembersMapping.map((y: { roleDescription: any; }) => {\r\n if (!!y) {\r\n let obj: any = {};\r\n obj[\"roleDescription\"] = \" \";\r\n obj[\"roleDescription\"] = y.roleDescription;\r\n stageName.push(obj)\r\n }\r\n })\r\n }\r\n })\r\n this.DciWorkflowStage = stageName.filter(x => !!x.roleDescription);\r\n }\r\n this.dciToStartWorkflow.forEach(x => {\r\n if (!!x.roleMembersMapping) {\r\n if (this.members.length != this.dciToStartWorkflow.length) {\r\n let obj: any = {};\r\n obj[\"roleMembersMapping\"] = [];\r\n obj[\"docId\"] = 0;\r\n obj[\"revesion\"] = x.revisionNumber;\r\n obj[\"roleMembersMapping\"] = x.roleMembersMapping;\r\n obj[\"docId\"] = x.documentId;\r\n x.roleMembersMapping.forEach((element: any) => {\r\n element[\"DefaultselectedmemberId\"] = [];\r\n if (element.roleMembersMapping.length == 1) {\r\n let revesion = x.revisionNumber;\r\n let documentId = x.documentId;\r\n let roleId = element.roleId;\r\n let key = `${documentId}_${x.revisionNumber}_${roleId}`;\r\n let obj1 = {\r\n \"roleId\": roleId,\r\n \"key\": key\r\n }\r\n this.autoSelectKey.push(obj1);\r\n element[\"selectedMemberId\"] = [];\r\n element.DefaultselectedmemberId.push(element.roleMembersMapping[0].memberId);\r\n element.selectedMemberId.push(element.roleMembersMapping[0].memberId);\r\n this.onChange_Member(null, documentId, revesion, roleId, element.DefaultselectedmemberId,);\r\n }\r\n });\r\n this.members.push(obj);\r\n if (this.members.length > 1) {\r\n this.isShowCopyBtn = true;\r\n }\r\n this.members.forEach((data, index) => {\r\n data[\"index\"] = index;\r\n })\r\n this.member = JSON.parse(JSON.stringify(this.members[0].roleMembersMapping));\r\n this.member.forEach(data => {\r\n data[\"index\"] = 0;\r\n })\r\n }\r\n }\r\n })\r\n }\r\n // this.gridData = [...this.dciToStartWorkflow];\r\n\r\n if (this.rolesToStartWorkflow[i].roleMembersMapping.length <= 0) {\r\n this.closeDialog();\r\n this._notificationService.showToast(\"'\" + this.rolesToStartWorkflow[i].roleDescription + \"' role does not mapped to any member(s)\", \"Warning\");\r\n return;\r\n }\r\n }\r\n this.rolesToStartWorkflow.forEach(x => x.roleMembersMapping);\r\n for (let i = 0; i < this.rolesToStartWorkflow.length; i++) {\r\n let _role = this.rolesToStartWorkflow[i];\r\n this.RoleControls.push(new FormControl('', [Validators.required]));\r\n _role.formControl = this.RoleControls[i];\r\n }\r\n }\r\n\r\n onChange_Member(event: { emittingList: any[]; } | null, documentId: any, revisionNumber: any, roleId: any, defaultselectedMemberId?: any[], roleDescription?: any, index?: any, type?: any) {\r\n let key = `${documentId}_${revisionNumber}_${roleId}`;\r\n if (this.userMappedObject.has(key))\r\n this.userMappedObject.delete(key);\r\n let selectedMemberIds: number[] = [];\r\n if (!!event) {\r\n selectedMemberIds = event.emittingList.map(x => x.value);\r\n let obj = {\r\n \"roleId\": roleId,\r\n \"key\": key\r\n }\r\n this.selectedKey.push(obj);\r\n this.selectedKey = this.getUnique(this.selectedKey, 'key');\r\n }\r\n if (!!defaultselectedMemberId)\r\n selectedMemberIds = defaultselectedMemberId.map(Id => Id);\r\n\r\n if (selectedMemberIds.length == 0 && type == 'manual') {\r\n let obj = {\r\n \"roleId\": roleId,\r\n \"key\": key\r\n }\r\n this.roleID.push(obj);\r\n this.roleID = this.getUnique(this.roleID, 'key');\r\n }\r\n this.userMappedObject.set(key, selectedMemberIds);\r\n let selectedID = Array.from(this.userMappedObject.values());\r\n let SelectedID = selectedID.pop();\r\n if (roleDescription) {\r\n this.getMemberValue(roleDescription, SelectedID, index)\r\n }\r\n }\r\n\r\n\r\n getMemberValue(roleDescription: any, SelectedID: any, index?: any) {\r\n // copy everything from original \r\n this.member.forEach(element => {\r\n if (element.roleDescription == roleDescription && index == element.index) {\r\n element[\"DefaultselectedmemberId\"] = SelectedID;\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n copyMembers() {\r\n this.member.forEach((val, i) => {\r\n this.members.forEach(element => {\r\n element.roleMembersMapping.forEach((data: { [x: string]: any; roleDescription: any; roleId: any; }) => {\r\n if (data.roleDescription == val.roleDescription) {\r\n this.select.forEach((component, i) => {\r\n if (component.setId == data.roleId) {\r\n if (val.DefaultselectedmemberId.length > 0) {\r\n component.emittedList = [];\r\n this.onChange_Member(null, element.docId, element.revesion, data.roleId, val.DefaultselectedmemberId, data.roleDescription, element.index)\r\n component.selCountText = \"Selected Count : \" + val.DefaultselectedmemberId.length;\r\n } else {\r\n if (this.roleID.length > 0) {\r\n this.roleID.forEach(obj => {\r\n if (obj.roleId == component.setId) {\r\n component.clearValue = \"Y\";\r\n }\r\n if (this.selectedKey.length > 0) {\r\n this.selectedKey.forEach(x => {\r\n if (obj.roleId == x.roleId) {\r\n if (this.userMappedObject.has(x.key)) {\r\n this.userMappedObject.delete(x.key);\r\n }\r\n }\r\n })\r\n }\r\n if (this.autoSelectKey.length > 0) {\r\n this.autoSelectKey.forEach(obj2 => {\r\n if (obj.roleId == obj2.roleId) {\r\n if (this.userMappedObject.has(obj2.key)) {\r\n this.userMappedObject.delete(obj2.key);\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n data[\"selectedMemberId\"] = val.DefaultselectedmemberId;\r\n }\r\n });\r\n })\r\n })\r\n }\r\n\r\n getUnique(arr: any[], comp: string) {\r\n // store the comparison values in array\r\n const unique = arr.map(e => e[comp])\r\n // store the indexes of the unique objects\r\n .map((e, i, final) => final.indexOf(e) === i && i)\r\n // eliminate the false indexes & return unique objects\r\n .filter((e: any) => arr[e]).map((e: any) => arr[e]);\r\n return unique;\r\n }\r\n\r\n onClick_Save() {\r\n if (this.userMappedObject.size <= 0) {\r\n this._notificationService.showToast(\"Member selection is mandatory for all the roles\", \"Warning\");\r\n return;\r\n }\r\n let uniqueRolesMapped: any[] = [];\r\n let memberInput: StartWFsaveInputModel[] = [];\r\n this.userMappedObject.forEach((memberIds, key) => {\r\n let splitData = key.split('_');\r\n let docId: number = Number(splitData[0]);\r\n let revNo: string = splitData[1].toString();\r\n let roleId: number = Number(splitData[2]);\r\n\r\n if (uniqueRolesMapped.filter(y => y == roleId).length == 0)\r\n uniqueRolesMapped.push(roleId);\r\n\r\n memberIds.forEach(memberId => {\r\n memberInput.push(this.convertData(docId, revNo, roleId, memberId));\r\n })\r\n });\r\n\r\n\r\n if (this.userMappedObject.size == 0 && memberInput.length == 0) {\r\n this.dciToStartWorkflow.forEach((data) => {\r\n memberInput.push(this.convertData(data.documentId, data.revisionNumber, 0, 0));\r\n });\r\n }\r\n\r\n for (let i = 0; i < this.dciToStartWorkflow.length; i++) {\r\n let currentDocument = this.dciToStartWorkflow[i].documentId;\r\n let rolesForCurrentDocument = memberInput.filter(x => x.documentId == currentDocument);\r\n const distinctThings = rolesForCurrentDocument.filter(\r\n (thing, i, arr) => arr.findIndex(t => t.roleId === thing.roleId) === i\r\n );\r\n\r\n if (this.rolesToStartWorkflow.length != distinctThings.length) {\r\n this._notificationService.showToast(\"Member selection is mandatory for all the roles\", \"Warning\");\r\n return;\r\n }\r\n }\r\n if (memberInput.length > 0) {\r\n this._notificationService.showPopup('Are you sure to start workflow for the selected Document(s)?', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this._scheduleDocService.PostStartWorkflowDetails(this.dciToStartWorkflow, memberInput).subscribe((data) => {\r\n if (data[\"successCode\"] === 200) {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\")\r\n this._dialogRef.close();\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Warning\")\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n convertData = (documentId: number, revisionNumber: string, roleId: number, memberId: number) => ({ documentId, revisionNumber, roleId, memberId })\r\n\r\n onClick_Reset() {\r\n this._notificationService.showPopup('Are you sure to reset the selected value(s)?', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.members = [];\r\n this.userMappedObject.clear();\r\n this.populateGrid();\r\n }\r\n });\r\n }\r\n\r\n}","
\r\n
\r\n

Start Workflow

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentTitle}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{role.roleDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Workflow\r\n associated for the selected document(s) has been\r\n configured for members only, hence no role(s) to be\r\n displayed here.
Please click \"Save\" to start\r\n workflow.
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
★ Member(s) are listing based on their role and\r\n discipline mapping.
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { DatePipe, formatDate } from \"@angular/common\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Component, Input, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormBuilder } from \"@angular/forms\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ScheduleDefinitionService } from \"src/app/Service/scheduledefintion/scheduledefintion.service\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { IDCIViewModel } from \"src/app/ViewModel/DCIViewModels\";\r\nimport { IScheduleDocInfo, IRevisionCategory, IScheduleType, IScheduleDocApprovalDetails, IScheduleDocApprovalDocId } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { ScheduleWorkflowhistoryComponent } from \"../schedule-workflowhistory/schedule-workflowhistory.component\";\r\nimport { DciSupersedeComponent } from \"../dci-supersede/dci-supersede.component\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { IProjectMasterViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { RowArgs } from \"@progress/kendo-angular-grid\";\r\nimport { FileListComponent } from \"src/app/CommonComponents/file-list/file-list.component\";\r\nimport { FileUploadLibrary } from \"src/app/Service/file/file.service\";\r\nimport { ITransmittalDetailsModel, ITransmittalDocumentDetails, ITransmittalDocumentInput, ITransmittalMsgReceiverInput } from \"src/app/ViewModel/TransmittalModel\";\r\nimport { TransmittalMsgService } from \"src/app/Service/transmittal/transmittal.service\";\r\nimport { TransmittalTemplateComponent } from \"../../transmittal/transmittal-template/transmittal-template.component\";\r\nimport { LoaderService } from \"src/app/Service/Loader/loader.service\";\r\nimport { ProjectMemberModel } from \"src/app/ViewModel/ProjectMemberModel\";\r\nimport { TransmittalService } from \"src/app/Service/transmittal-template/transmittal-template.service\";\r\nimport { ProjectViewModel } from \"src/app/ViewModel/ProjectModel\";\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { saveAs } from 'file-saver';\r\nimport { IProjectElementsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\n\r\n@Component({\r\n selector: 'app-schedule-view',\r\n templateUrl: './schedule-view.component.html',\r\n styles: [` \r\n ::ng-deep .k-radio:checked, .k-radio.k-checked {\r\n border-color: #065497;\r\n color: white;\r\n background-color: #065497;\r\n }\r\n\r\n ::ng-deep .k-grid .k-hierarchy-col {\r\n width: 15px;\r\n }\r\n\r\n ::ng-deep .k-grid .k-grid-filter,::ng-deep .k-grid .k-header-column-menu,::ng-deep .k-grid .k-hierarchy-cell .k-icon {\r\n color: white !important;\r\n }\r\n\r\n ::ng-deep .k-grid-header .k-grid-filter,::ng-deep .k-grid-header .k-header-column-menu {\r\n padding: 0px !important;\r\n width: 5px !important;\r\n height: 15px !important;\r\n }\r\n `]\r\n})\r\nexport class ScheduleViewComponent implements OnInit, OnDestroy {\r\n subscriptions: Subscription[] = []\r\n private _schDoc!: IScheduleDocInfo;\r\n private _dciViewModel!: IDCIViewModel;\r\n projectId!: number;\r\n memberId!: number;\r\n groupId!: number;\r\n isShowStartWF: boolean = false;\r\n isShowWFHistory: boolean = false;\r\n isShowEdit: boolean = false;\r\n isShowSuperEdit: boolean = false;\r\n isShowSupersede: boolean = false;\r\n isShowApprove: boolean = false;\r\n isRejected:boolean = false;\r\n get schDoc(): IScheduleDocInfo {\r\n return this._schDoc;\r\n }\r\n @Input() set schDoc(value: IScheduleDocInfo) {\r\n this.isRejected = value.approval_Date !== null && !value.approved_Tag;\r\n if (!!value && typeof value == \"object\") {\r\n this._schDoc = value;\r\n this.fetchDciViewDocDetails();\r\n }\r\n }\r\n\r\n @Input() set ViewOnly(value: boolean | undefined) {\r\n if (!!value) {\r\n this._ViewOnly = value;\r\n }\r\n }\r\n\r\n _ViewOnly: boolean = false;\r\n\r\n schTypeOptions: IScheduleType[] = [{ schType_Id: 1, schType_Name: \"DCI\" }, { schType_Id: 2, schType_Name: \"Ext DCI\" }, { schType_Id: 3, schType_Name: \"Std DCI\" }, { schType_Id: 4, schType_Name: \"Vendor DCI\" }];\r\n revCategoryList: IRevisionCategory[] = [{ revCategoryId: 1, revCategory: 'Minor' }, { revCategoryId: 2, revCategory: 'Major' }, { revCategoryId: 3, revCategory: 'First Release' }];\r\n\r\n @ViewChild('dciElementDetailsForm') dciElementDetailsForm!: DynamicFormComponent;\r\n @ViewChild('dciNoForm') dciNoDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciTitleForm') dciTitleDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciMHdetailsForm') dciMHDetailsDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciApprovalBy') dciApprovalByDynamicForm!: DynamicFormComponent;\r\n @ViewChild('dciDocsetAndStages') dciDocsetAndStagesForm!: DynamicFormComponent;\r\n @ViewChild('dciRevision') dciRevisionForm!: DynamicFormComponent;\r\n\r\n public isCanApprove: boolean = false;\r\n public JOBCode!: string;\r\n public wbsList: any = [];\r\n public dvcodeList: any = [];\r\n public panelOpenState = true;\r\n public enableFullscreen = false;\r\n public GridAenableFullscreen = false;\r\n public GridA1enableFullscreen = false;\r\n public GridBenableFullscreen = false;\r\n public GridB1enableFullscreen = false;\r\n public GridB2enableFullscreen = false;\r\n public skip = 0;\r\n public GridAskip = 0;\r\n public GridA1skip = 0;\r\n public GridBskip = 0;\r\n public GridB1skip = 0;\r\n public GridB2skip = 0;\r\n public PageSize = 15;\r\n public GridAPageSize = 15;\r\n public GridA1PageSize = 15;\r\n public GridBPageSize = 15;\r\n public GridB1PageSize = 15;\r\n public GridB2PageSize = 15;\r\n public EnableFilter = false;\r\n public GridAEnableFilter = false;\r\n public GridA1EnableFilter = false;\r\n public GridBEnableFilter = false;\r\n public GridB1EnableFilter = false;\r\n public GridB2EnableFilter = false;\r\n\r\n public documentRevisionSummaryDetails!: any[];\r\n public documentRevisionDetailedDetails: any;\r\n public projectName!: string;\r\n public membersList: ProjectMemberModel[] = [];\r\n public viewTransmittalData!: TransmittalTemplateComponent | null;\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n SetDCIMaxProgressLevel: IProjectElementsOutput;\r\n\r\n constructor(private _projService: ProjectInfoService,\r\n private _projectService: ProjectMasterService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private _notificationService: NotificationService,\r\n private _commonService: CommonService,\r\n private _formBuilder: FormBuilder,\r\n private _scheDefService: ScheduleDefinitionService,\r\n public _datepipe: DatePipe, public dialog: MatDialog,\r\n private _transmittalService: TransmittalMsgService,\r\n private loaderService: LoaderService,\r\n private transmittalService: TransmittalService) {\r\n\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n ngOnInit(): void {\r\n this.projectId = this._commonService.getProjectId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.enableMemberRoleFeatures();\r\n this.getProjectName();\r\n this.getProjectMembers();\r\n this.getProjectStaticElements();\r\n }\r\n\r\n getProjectName() {\r\n let x: ProjectViewModel = this._commonService.getCurrentProjectDetails();\r\n this.projectName = x.projectCode + ' - ' + x.projectDescription;\r\n }\r\n\r\n getProjectMembers() {\r\n this.subscriptions.push(this.transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.membersList = res;\r\n }));\r\n }\r\n\r\n enableMemberRoleFeatures() {\r\n this.subscriptions.push(this._commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.isShowStartWF = res.some(data => data.feature_Desc == 'Start Workflow');\r\n this.isShowWFHistory = res.some(data => data.feature_Desc == 'Workflow History');\r\n this.isShowEdit = res.some(data => data.feature_Desc == 'Edit');\r\n this.isShowSuperEdit = res.some(data => data.feature_Desc == 'Super Edit');\r\n this.isShowSupersede = res.some(data => data.feature_Desc == 'Supersede');\r\n this.isShowApprove = res.some(data => data.feature_Desc == 'Approve');\r\n }));\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let SetDCIMaxProgressLevel: IProjectElementsOutput = this.projectStaticElements.filter(x => x.elementDescription == \"Set DCI Max Progress Level\")[0];\r\n if (!!SetDCIMaxProgressLevel)\r\n if (SetDCIMaxProgressLevel.isVisible)\r\n this.SetDCIMaxProgressLevel = SetDCIMaxProgressLevel;\r\n }\r\n }, err => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n }\r\n\r\n fetchDciViewDocDetails() {\r\n this.subscriptions.push(this._scheduleDocService.GetDCIDocumentViewDetails({\r\n project_Id: this._commonService.getProjectId(), group_Id: this._commonService.getLoggedInUserGroupId(),\r\n doc_Id: this.schDoc.doc_Id, revision_No: this.schDoc.revision_No\r\n }).subscribe((x: any) => {\r\n this._dciViewModel = x;\r\n\r\n this.documentRevisionSummaryDetails = x.documentRevisionDetailsOutputModel.documentRevisionSummaryDetails.map((obj: { doc_Id: any; revSequence: any; }) => ({ ...obj, documentCCNDetails: x.documentCCNDetailsOutputModel.filter((k: { doc_Id: any; rev_Sno: any; }) => k.doc_Id === obj.doc_Id && k.rev_Sno === obj.revSequence) }));\r\n\r\n const map2 = x.documentChecklistDetailsOutputModel.documentChecklistSummaryDetails.map((obj: { doc_Id: any; doc_Rev_No: any; task_Sl_No: any; cL_Id: any; cL_Rev_No: any; }) => ({ ...obj, objDocumentChecklistDetailedDetails: x.documentChecklistDetailsOutputModel.documentChecklistDetailedDetails.filter((k: { doc_Id: any; doc_Rev_No: any; task_Sl_No: any; cL_Id: any; cL_Rev_No: any; }) => k.doc_Id == obj.doc_Id && k.doc_Rev_No == obj.doc_Rev_No && k.task_Sl_No == obj.task_Sl_No && k.cL_Id == obj.cL_Id && k.cL_Rev_No == obj.cL_Rev_No) }))\r\n\r\n this.documentRevisionDetailedDetails = x.documentRevisionDetailsOutputModel.documentRevisionDetailedDetails.map((obj: { doc_Id: any; revisionNo: any; wfTaskSlno: any; }) => ({ ...obj, objDocumentChecklistSummaryDetails: map2.filter((k: { doc_Id: any; doc_Rev_No: any; task_Sl_No: any; }) => k.doc_Id == obj.doc_Id && k.doc_Rev_No == obj.revisionNo && k.task_Sl_No == obj.wfTaskSlno) }))\r\n\r\n this.getWBSAndDeliverableCodes();\r\n this.getElementDetailsForm();\r\n this.getDocumentNoInformationForm();\r\n this.getDocumentTitleForm();\r\n this.getApprovedByAndWorkflowForm();\r\n this.getDocSetAndStagesForm();\r\n this.getDciRevisionForm();\r\n this.isCanApprove = this._dciViewModel.approved_Tag;\r\n }))\r\n }\r\n\r\n getWBSAndDeliverableCodes() {\r\n if (!!this._dciViewModel.wbS_Code) {\r\n this.subscriptions.push(this._projectService.getProjects(this.projectId, this.memberId).subscribe((data: IProjectMasterViewModel[]) => {\r\n this.JOBCode = data[0].job_Code;\r\n this.subscriptions.push(this._scheduleDocService.GetWBSCodes({ job_Code: this.JOBCode }).subscribe((res: any) => {\r\n this.wbsList = res;\r\n this.subscriptions.push(this._scheduleDocService.GetDeliverableCodes({ job_Code: this.JOBCode, wBS_Code: this._dciViewModel.wbS_Code }).subscribe((res: any) => {\r\n this.dvcodeList = res;\r\n this.getDocumentMHDetailsForm();\r\n }));\r\n }));\r\n }));\r\n } else {\r\n this.getDocumentMHDetailsForm();\r\n }\r\n }\r\n\r\n getElementDetailsForm() {\r\n let elementsConfig: FieldConfig[] = [];\r\n elementsConfig = this._dciViewModel.dciScheduleElementDetails.map(x => {\r\n let field: FieldConfig = { type: \"label\", label: x.dE_Description, de_id: x.dE_Id, value: new BehaviorSubject(x.deD_Short_Description + \"-\" + x.deD_Description) }\r\n return field;\r\n })\r\n this.dciElementDetailsForm.fields = [];\r\n this.dciElementDetailsForm.fields = elementsConfig;\r\n this.dciElementDetailsForm.createControl();\r\n }\r\n\r\n getDocumentNoInformationForm() {\r\n let documentNoConfig: FieldConfig[] = [];\r\n documentNoConfig.push(\r\n { type: \"label\", label: \"Doc Serial No\", value: new BehaviorSubject(this._dciViewModel.doc_No) },\r\n );\r\n this.dciNoDynamicForm.fields = [];\r\n this.dciNoDynamicForm.fields = documentNoConfig;\r\n this.dciNoDynamicForm.createControl();\r\n\r\n }\r\n onClick_WorkflowHistory() {\r\n\r\n let dialogRef = this.dialog.open(ScheduleWorkflowhistoryComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: this._schDoc,\r\n maxHeight: '100%'\r\n });\r\n\r\n this.subscriptions.push(dialogRef.afterClosed().subscribe((data: any) => { }));\r\n }\r\n\r\n getDocumentTitleForm() {\r\n let documentTitleConfig: FieldConfig[] = [];\r\n documentTitleConfig.push(\r\n { type: \"label\", label: \"Title\", value: new BehaviorSubject(this._dciViewModel.doc_Title) }\r\n );\r\n this.dciTitleDynamicForm.fields = [];\r\n this.dciTitleDynamicForm.fields = documentTitleConfig;\r\n this.dciTitleDynamicForm.createControl();\r\n }\r\n\r\n getDocumentMHDetailsForm() {\r\n let documentMHDetailsConfig: FieldConfig[] = [];\r\n documentMHDetailsConfig.push(\r\n { type: \"label\", label: \"Engg Man Hours\", value: new BehaviorSubject(this._dciViewModel.e_Man_Hours) },\r\n { type: \"label\", label: \"Drafting Man Hours\", value: new BehaviorSubject(this._dciViewModel.d_Man_Hours) },\r\n { type: \"label\", label: \"Weightage\", value: new BehaviorSubject(this._dciViewModel.weightage) },\r\n /*Input Required is removed temporarily since it has has been disabled in UI also\r\n { type: \"label\", label: \"Input Required\", value: new BehaviorSubject(this._dciViewModel.is_Input_Required ? \"Required\" : \"Not Required\") },*/\r\n { type: \"label\", label: \"Schedule Type\", value: new BehaviorSubject(this.schTypeOptions.filter(x => x.schType_Id == this._dciViewModel.schedule_Type)[0].schType_Name) },\r\n { type: \"label\", label: \"WBS Code\", value: new BehaviorSubject(this.wbsList.length > 0 ? this.wbsList.filter((x: { pbS_CODE: string; }) => x.pbS_CODE == this._dciViewModel.wbS_Code)[0].wbS_Description : '') },\r\n { type: \"label\", label: \"Deliverable Code\", value: new BehaviorSubject(this.dvcodeList.length > 0 ? this.dvcodeList.filter((x: { deliverable_Code: number; }) => x.deliverable_Code == this._dciViewModel.deliverable_Code)[0].topsheet_Desc : '') }\r\n );\r\n this.dciMHDetailsDynamicForm.fields = [];\r\n this.dciMHDetailsDynamicForm.fields = documentMHDetailsConfig;\r\n this.dciMHDetailsDynamicForm.createControl();\r\n }\r\n\r\n getApprovedByAndWorkflowForm() {\r\n let documentApprovedByWorkflowConfig: FieldConfig[] = [];\r\n documentApprovedByWorkflowConfig.push(\r\n { type: \"label\", label: \"Approved By\", value: new BehaviorSubject(this._dciViewModel.to_Group_Desc) },\r\n { type: \"label\", label: \"Workflow\", value: new BehaviorSubject(this._dciViewModel.workflow_Name) },\r\n { type: \"label\", label: \"Document Set\", value: new BehaviorSubject(this._dciViewModel.doc_Set_Name) });\r\n\r\n if (!!this.SetDCIMaxProgressLevel)\r\n documentApprovedByWorkflowConfig.push(\r\n { type: \"label\", label: \"Max Progress Level\", value: new BehaviorSubject(this._dciViewModel.max_ProgressLevel) });\r\n\r\n this.dciApprovalByDynamicForm.fields = [];\r\n this.dciApprovalByDynamicForm.fields = documentApprovedByWorkflowConfig;\r\n this.dciApprovalByDynamicForm.createControl();\r\n }\r\n\r\n getDocSetAndStagesForm() {\r\n let dciDocsetAndStages: FieldConfig[] = [];\r\n\r\n this._dciViewModel.dciScheduleStageDetails.forEach(y => {\r\n dciDocsetAndStages.push({ type: \"label\", label: y.stage_Desc + \"(\" + y.stage_Short_Desc + \")\", value: new BehaviorSubject(this._datepipe.transform(y.scheduled_On, \"dd-MMM-yyyy\")) });\r\n })\r\n\r\n this.dciDocsetAndStagesForm.fields = [];\r\n this.dciDocsetAndStagesForm.fields = dciDocsetAndStages;\r\n this.dciDocsetAndStagesForm.createControl();\r\n }\r\n\r\n getDciRevisionForm() {\r\n let dciRevisionConfig: FieldConfig[] = [];\r\n dciRevisionConfig.push(\r\n { type: \"label\", label: \"Revision\", value: new BehaviorSubject(this._dciViewModel.revision_No) },\r\n { type: \"label\", label: \"Released For\", value: new BehaviorSubject(this._dciViewModel.doc_Status) },\r\n { type: \"label\", label: \"Revision Category\", value: new BehaviorSubject(this.revCategoryList.filter(x => x.revCategoryId == this._dciViewModel.revision_Category)[0].revCategory) },\r\n { type: \"label\", label: \"Authorised By\", value: new BehaviorSubject(this._dciViewModel.authorized_By) },\r\n { type: \"label\", label: \"Print Size\", value: new BehaviorSubject(this._dciViewModel.print_Size) },\r\n { type: \"label\", label: \"No Of Sheets\", value: new BehaviorSubject(this._dciViewModel.noOfSheets) },\r\n { type: \"label\", label: \"QR Code Tag\", value: new BehaviorSubject(this._dciViewModel.qrCodeStatus ? \"Yes\" : \"No\") },\r\n { type: \"label\", label: \"Document Properties(Opt)\", value: new BehaviorSubject(this._dciViewModel.is_Confidential ? \"Confidential\" : \"Non-Confidential\") },\r\n { type: \"label\", label: \"Reference\", value: new BehaviorSubject(this._dciViewModel.reference) },\r\n { type: \"label\", label: \"Comments\", value: new BehaviorSubject(this._dciViewModel.comments) }\r\n );\r\n this.dciRevisionForm.fields = [];\r\n this.dciRevisionForm.fields = dciRevisionConfig;\r\n this.dciRevisionForm.createControl();\r\n\r\n }\r\n\r\n /**\r\n * Approve or Reject DCI Document\r\n * @param isApproved \r\n */\r\n approveDciDocuments(isApproved: boolean) {\r\n let dciDocApproveDetails: IScheduleDocApprovalDocId[] = [];\r\n dciDocApproveDetails.push({ doc_Id: this.schDoc.doc_Id, revision_No: this.schDoc.revision_No });\r\n let inputModel: IScheduleDocApprovalDetails = {\r\n DocSchApproveDetails: dciDocApproveDetails,\r\n approved_Tag: isApproved,\r\n userId: this.memberId\r\n };\r\n\r\n this.subscriptions.push(this._scheduleDocService.InsertUpdateScheduleApprovalDetails(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 205) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.fetchDciViewDocDetails();\r\n }));\r\n }\r\n\r\n public onClick_WorkflowSupersede() {\r\n this._notificationService.showPopup('Are you sure to supersede the selected Document', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let dialogRef = this.dialog.open(DciSupersedeComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: this.schDoc,\r\n autoFocus: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen(element: any) {\r\n if (element == 'GridA')\r\n this.GridAenableFullscreen = !this.GridAenableFullscreen;\r\n else if (element == 'GridA1')\r\n this.GridA1enableFullscreen = !this.GridA1enableFullscreen;\r\n else if (element == 'GridB')\r\n this.GridBenableFullscreen = !this.GridBenableFullscreen;\r\n else if (element == 'GridB1')\r\n this.GridB1enableFullscreen = !this.GridB1enableFullscreen;\r\n else if (element == 'GridB2')\r\n this.GridB2enableFullscreen = !this.GridB2enableFullscreen;\r\n else\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n public expandGridBDetails({ dataItem }: RowArgs): boolean {\r\n return dataItem.isCheckListAvaliable;\r\n }\r\n\r\n public expandGridADetails({ dataItem }: RowArgs): boolean {\r\n return dataItem.isCCNAvaliable;\r\n }\r\n\r\n public expandGridB1Details({ dataItem }: RowArgs): boolean {\r\n return true;\r\n }\r\n\r\n public viewAttachmentClick(dataItem: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectId, docId: dataItem.doc_Id, revisionNo: dataItem.revisionNo, libraryName: [FileUploadLibrary.WorkflowDocument, FileUploadLibrary.SignedDocuments], createdBy: this.memberId, isDeleteEnable: false, documentNo: null },\r\n });\r\n }\r\n\r\n public viewstepAttachmentClick(dataItem: any) {\r\n if (dataItem.integrationType == \"DTN Preparation\") {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectId, docId: dataItem.doc_Id, revisionNo: dataItem.revisionNo, libraryName: FileUploadLibrary.SignedDocuments, createdBy: this.memberId, isDeleteEnable: false, documentNo: null },\r\n });\r\n }\r\n else {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectId, docId: dataItem.doc_Id, revisionNo: dataItem.revisionNo, libraryName: FileUploadLibrary.WorkflowDocument, createdBy: this.memberId, isDeleteEnable: false, documentNo: null, task_SNo: dataItem.wfTaskSlno },\r\n });\r\n }\r\n }\r\n\r\n pushTransmittalTemplateModel(data: ITransmittalDetailsModel) {\r\n this.viewTransmittalData = null;\r\n let groupDetails: Observable = this._transmittalService.GetTransmittalGroupMemberDetails(data.message_Id);\r\n let docDetails: Observable = this._transmittalService.GetTransmittalDocumentDetails(data.message_Id);\r\n let receiverDetails: Observable = this._transmittalService.GetTransmittalReceiverDetails(data.message_Id);\r\n this.subscriptions.push(forkJoin(groupDetails, docDetails, receiverDetails).subscribe((res: any[]) => {\r\n let receiverDetails: ITransmittalMsgReceiverInput = res[2];\r\n let docDetails: ITransmittalDocumentInput = res[1];\r\n let transDocDetails: ITransmittalDocumentDetails[] = [];\r\n if (!!docDetails && !!docDetails.transmittalDocumentDetails) {\r\n transDocDetails = docDetails.transmittalDocumentDetails;\r\n }\r\n let to = receiverDetails.transmittalToDetails[0].member_Id;\r\n let toWithAddress;\r\n if (to) {\r\n let toMember = this.membersList.filter(x => x.memberId == to)\r\n if (toMember[0].address) {\r\n toWithAddress = toMember[0].memberName + '
' + toMember[0].address;\r\n }\r\n else {\r\n toWithAddress = toMember[0].memberName\r\n }\r\n }\r\n else {\r\n toWithAddress = receiverDetails.transmittalToDetails.map(x => x.member_Name).join(',')\r\n }\r\n let transmittalTemplate: TransmittalTemplateComponent = {\r\n templateName: 'common',\r\n projName: this.projectName,\r\n edrcRef: data.message_Number,\r\n cusRef: '',\r\n docDetails: transDocDetails,\r\n distributionDetails: res[0],\r\n subject: data.message_Subject,\r\n attention: receiverDetails.transmittalToDetails.map(x => x.member_Name).join(','),\r\n to: toWithAddress,\r\n date: formatDate(data.created_On, 'dd-MMM-yyyy', 'en-US'),\r\n message_No: data.message_Number,\r\n message_id: data.message_Id,\r\n cc: receiverDetails.transmittalCcDetails.map(x => x.member_Name).join(','),\r\n From: receiverDetails.transmittalFromDetails.map(x => x.member_Name).join(','),\r\n message_Note: data.message_Note\r\n }\r\n this.viewTransmittalData = transmittalTemplate;\r\n\r\n setTimeout(() => {\r\n this.loaderService.isLoading.next(true);\r\n this.exportToWord(data);\r\n this.loaderService.isLoading.next(false);\r\n }, 1000);\r\n }))\r\n }\r\n\r\n exportToWord(data: ITransmittalDetailsModel) {\r\n //To check and remove \"Signed Copies\" column from Work document\r\n let rootElement: HTMLElement = document.getElementById('TransmittalComponent')?.cloneNode(true) as HTMLCanvasElement;\r\n let documentGrid: HTMLElement = rootElement.children[0].children[\"documentGrid\"];\r\n\r\n if (documentGrid) {\r\n let tHead: HTMLCollection = documentGrid.children[0].children[0].children;\r\n\r\n if (tHead && tHead.length > 1) {\r\n tHead[1].remove();\r\n }\r\n for (let i = 0; i < documentGrid.children[1].children.length; i++) {\r\n let tBody: HTMLCollection = documentGrid.children[1].children[i].children;\r\n if (tBody && tBody.length > 1) {\r\n tBody[1].remove();\r\n }\r\n }\r\n }\r\n\r\n let docName: string = data.message_Number;\r\n var header = \"Export Word Document
\";\r\n var footer = \"\";\r\n var html = header + rootElement.innerHTML + footer;\r\n\r\n var blob = new Blob(['\\ufeff', html], {\r\n type: 'application/msword'\r\n });\r\n\r\n // Specify link url\r\n var url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html);\r\n\r\n // Specify file name\r\n let filename = docName + '.doc';\r\n\r\n // Create download link element\r\n var downloadLink = document.createElement(\"a\");\r\n\r\n document.body.appendChild(downloadLink);\r\n\r\n if (blob) {\r\n saveAs(blob, filename);\r\n // return;\r\n }\r\n else {\r\n // Create a link to the file\r\n downloadLink.href = url;\r\n\r\n // Setting the file name\r\n downloadLink.download = filename;\r\n\r\n //triggering the function\r\n downloadLink.click();\r\n }\r\n\r\n document.body.removeChild(downloadLink);\r\n }\r\n\r\n public downloadTransmittalClick(data: any) {\r\n if (!!data.transmittalNo) {\r\n this.subscriptions.push(this._transmittalService.GetTransmittalList({ project_id: this.projectId, message_Id: data.message_Id }).subscribe((res: ITransmittalDetailsModel[]) => {\r\n if (res && res.length > 0) {\r\n this.pushTransmittalTemplateModel(res[0]);\r\n }\r\n }));\r\n }\r\n }\r\n}","
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n

Document

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

Document Schedule

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

Document Revision

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

Document History

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Revisions\r\n
\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n CCN\r\n
\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.ccN_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ccN_Title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ccN_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ccN_Date}}\r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n {{dataItem.orginator}}\r\n \r\n \r\n \r\n \r\n {{dataItem.man_Hour}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.revSequence}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisionCategory}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workFlow}}\r\n \r\n \r\n \r\n \r\n {{dataItem.wfStage}}\r\n \r\n \r\n \r\n \r\n {{dataItem.releasedFor}}\r\n \r\n \r\n \r\n \r\n {{dataItem.printSize}}\r\n \r\n \r\n \r\n \r\n {{dataItem.noOfSheets}}\r\n \r\n \r\n \r\n \r\n {{dataItem.comments}}\r\n \r\n \r\n \r\n \r\n {{dataItem.scheduledOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisedSchedule}}\r\n \r\n \r\n \r\n \r\n {{dataItem.isApproved ? 'Yes' : 'No'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedBy}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvalStatus}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n WorkFlow History\r\n
\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Checklists\r\n
\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Checklist Items\r\n
\r\n
\r\n

Show

\r\n of\r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.checklistItem}}\r\n \r\n {{dataItem.checklistItem}}\r\n \r\n * \r\n \r\n \r\n \r\n \r\n \r\n \r\n   \r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.remarks}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.checklist}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n {{dataItem.wfTaskSlno}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workFlow}}\r\n \r\n \r\n \r\n \r\n {{dataItem.wfStage}}\r\n \r\n \r\n \r\n \r\n {{dataItem.wfTask}}\r\n \r\n \r\n \r\n \r\n {{dataItem.integrationType}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assignedBy}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assignedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assignedTo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n \r\n {{dataItem.holdedBy}}\r\n \r\n \r\n \r\n \r\n {{dataItem.holdedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.holdedFor}}\r\n \r\n \r\n \r\n \r\n {{dataItem.completedBy}}\r\n \r\n \r\n \r\n \r\n {{dataItem.completedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.progressLevel}}\r\n \r\n \r\n \r\n \r\n {{dataItem.actionPerformed}}\r\n \r\n \r\n \r\n \r\n {{dataItem.comments}}\r\n \r\n \r\n \r\n \r\n {{dataItem.transmittalNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.delayReason}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { IDeleteWorkflowInputModel } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n\r\n@Component({\r\n selector: 'app-schedule-workflowhistory',\r\n templateUrl: './schedule-workflowhistory.component.html',\r\n styleUrls: ['./schedule-workflowhistory.component.css']\r\n})\r\nexport class ScheduleWorkflowhistoryComponent implements OnInit {\r\n\r\n dciToWorkflowHistory: any;\r\n getworkflowHistoryvalue!: any[];\r\n workflowList: WorkflowTemplateModel[] = [];\r\n rowsCount!: number;\r\n pageSize = 10;\r\n public enableFilter = false;\r\n public enableFullscreen = false;\r\n public SerialNo!: number;\r\n public FromDeleteDocument: boolean = false;\r\n public user_id!: number;\r\n public projectid!: number;\r\n\r\n constructor(public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,\r\n private ScheduleDocumentService: ScheduleDocumentService, private commonService: CommonService, private _notificationService: NotificationService, private dialog: MatDialog,) {\r\n if (!!this.data && !!this.data.documentId) {\r\n this.data[\"doc_Id\"] = this.data.documentId;\r\n this.dciToWorkflowHistory = this.data;\r\n } else {\r\n this.dciToWorkflowHistory = this.data;\r\n }\r\n if (this.data && this.data.FromDeleteDocument)\r\n this.FromDeleteDocument = this.data.FromDeleteDocument;\r\n }\r\n\r\n async ngOnInit() {\r\n this.workflowList = await this.ScheduleDocumentService.GetWorkflowList().toPromise();\r\n this.user_id = this.commonService.getLoggedInUserId();\r\n this.projectid = this.commonService.getProjectId();\r\n this.populateGrid();\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n populateGrid() {\r\n this.ScheduleDocumentService.getWorkflowHistory(this.dciToWorkflowHistory.doc_Id).subscribe(data => {\r\n data.forEach((element: any, i: number) => {\r\n element.actionPerformedName = element.actionPerformedName.replace(/\\s/g, \"\");\r\n let value = element.actionPerformedName.split(',');\r\n data[i][\"actionPerformedDisplayName\"] = value;\r\n let splitTxt = element.taskName.split(\" \");\r\n });\r\n this.getworkflowHistoryvalue = data;\r\n this.rowsCount = this.getworkflowHistoryvalue.length;\r\n });\r\n }\r\n\r\n public viewAttachmentClick() {\r\n if(this.getworkflowHistoryvalue[0].schedule_Type == 3)\r\n {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectid, docId: this.getworkflowHistoryvalue[0].documentId, revisionNo: this.getworkflowHistoryvalue[0].revisionNumber, libraryName: [FileUploadLibrary.WorkflowDocument, FileUploadLibrary.SignedDocuments], createdBy: this.user_id, isDeleteEnable: false, documentNo: this.getworkflowHistoryvalue[0].documentNumber },\r\n });\r\n }\r\n else\r\n {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectid, docId: this.getworkflowHistoryvalue[0].documentId, revisionNo: null, libraryName: [FileUploadLibrary.WorkflowDocument, FileUploadLibrary.SignedDocuments], createdBy: this.user_id, isDeleteEnable: false, documentNo: this.getworkflowHistoryvalue[0].documentNumber },\r\n });\r\n }\r\n }\r\n\r\n public viewstepAttachmentClick(dataItem: any) {\r\n if(dataItem.integration_Type == \"DTN Preparation\" && dataItem.schedule_Type !=3 )\r\n {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectid, docId: dataItem.documentId, revisionNo: dataItem.revisionNumber, libraryName: FileUploadLibrary.SignedDocuments, createdBy: this.user_id, isDeleteEnable: false, documentNo: dataItem.documentNumber },\r\n });\r\n }\r\n else {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectid, docId: dataItem.documentId, revisionNo: dataItem.revisionNumber, libraryName: FileUploadLibrary.WorkflowDocument, createdBy: this.user_id, isDeleteEnable: false, documentNo: dataItem.documentNumber, task_SNo: dataItem.taskSerialNumber },\r\n });\r\n }\r\n }\r\n\r\n getWorkflowName(workflowId: number) {\r\n let workflow = this.workflowList.find(x => x.workflowId == workflowId);\r\n if (!!workflow)\r\n return workflow.workflowDescription;\r\n return \"\";\r\n }\r\n\r\n checkGridHeight() {\r\n if (this.getworkflowHistoryvalue.length > 0)\r\n return 350;\r\n else\r\n return 182;\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n DeleteOrUpdateWorkflow(tran_Type: string) {\r\n if (tran_Type == 'Delete' && !this.SerialNo) {\r\n this._notificationService.showToast('Please Enter Step.Id', 'Warning');\r\n return;\r\n }\r\n\r\n let input: IDeleteWorkflowInputModel = {\r\n doc_id: this.dciToWorkflowHistory.doc_Id,\r\n task_sl_no: (tran_Type == 'Update') ? 0 : this.SerialNo,\r\n tran_type: tran_Type,\r\n user_id: this.user_id\r\n }\r\n\r\n let inputforCheck: IDeleteWorkflowInputModel = {\r\n doc_id: this.dciToWorkflowHistory.doc_Id,\r\n task_sl_no: this.SerialNo,\r\n tran_type: 'Check',\r\n user_id: this.user_id\r\n }\r\n\r\n this.ScheduleDocumentService.DeleteOrUpdateWorkflow(inputforCheck).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.ScheduleDocumentService.DeleteOrUpdateWorkflow(input).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this.populateGrid();\r\n }\r\n });\r\n } else if (res.successCode == 201) {\r\n this._notificationService.showPopup(res.successMessage, 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.ScheduleDocumentService.DeleteOrUpdateWorkflow(input).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this.populateGrid();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Workflow History |\r\n {{dciToWorkflowHistory.doc_Title ? dciToWorkflowHistory.doc_Title : dciToWorkflowHistory.documentTitle}}\r\n ( {{dciToWorkflowHistory.doc_No ? dciToWorkflowHistory.doc_No:dciToWorkflowHistory.documentNumber}} )\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.taskSerialNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getWorkflowName(dataItem.workflowId)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.taskName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.integration_Type}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{value}}\r\n \r\n \r\n {{value}},\r\n {{value}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.assignedOn}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.assignedToName}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Yes\r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n \r\n \r\n \r\n {{dataItem.holded_On}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.reason_for_Hold}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.completedOn}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.completedByName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.comment_Sheet_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.comments}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.delayReason}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-standard-drawing-dialog',\r\n templateUrl: './standard-drawing-dialog.component.html',\r\n styleUrls: ['./standard-drawing-dialog.component.css']\r\n})\r\nexport class StandardDrawingDialogComponent implements OnInit {\r\n\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n public Response: any[] = [];\r\n\r\n constructor(public _dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) \r\n {\r\n if (this.data) \r\n {\r\n this.Response=this.data;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getCodeColor(code: number) \r\n {\r\n if(code == 200)\r\n {\r\n return '#33ae10';\r\n }\r\n else if(code == 205)\r\n {\r\n return '#FBC02D';\r\n }\r\n else if(code!=200 && code!=205)\r\n {\r\n return '#c57a7a';\r\n }\r\n else \r\n return \r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Document Link Response\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_no}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.successmessage}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { BusinessGroupModel } from \"src/app/ViewModel/BusinessGroupModel\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\n\r\n@Component({\r\n selector: 'app-standard-drawing-link',\r\n templateUrl: './standard-drawing-link.component.html',\r\n styleUrls: ['./standard-drawing-link.component.css']\r\n})\r\nexport class StandardDrawingLinkComponent implements OnInit {\r\n\r\n @ViewChild(\"docSetForm\") dynamicForm: DynamicFormComponent;\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n projectElements: IProjectElementsOutput[];\r\n searchTypeList: any = [];\r\n public regConfig: FieldConfig[] = [];\r\n UnsubscribeArray: Subscription[] = [];\r\n schSeachFieldsConfig: FieldConfig[] = [];\r\n elementsConfig: FieldConfig[] = [];\r\n numElements: Map = new Map();\r\n workflowList: WorkflowTemplateModel[] = [];\r\n selectedWorkflownumber: number = 0;\r\n selectedgroup_Id: number = 0;\r\n selectedReleaseId: number = 0;\r\n eleValue: IProjectElementDetailsOutput[] = [];\r\n projBusinessGroups: BusinessGroupModel[] = [];\r\n dciStatusList: IProjectElementDetailsOutput[] = [];\r\n\r\n @ViewChild('schSearchForm') schSearchDynamicForm!: DynamicFormComponent;\r\n\r\n constructor( @Inject(MAT_DIALOG_DATA) public data: any,public _dialogRef: MatDialogRef, \r\n private _commonService: CommonService, private _projInfoService: ProjectInfoService, private _scheduleDocService: ScheduleDocumentService,\r\n private _notificationService: NotificationService,)\r\n { }\r\n\r\n ngOnInit(): void {\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.projectId = this._commonService.getProjectId();\r\n this.getDynamicForm();\r\n this.getWorkflowDetails();\r\n this.getProjectBusinessGroups();\r\n this.getElementDetails(\"Status\", Module.ScheduleDocument);\r\n\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n getDynamicForm() {\r\n let GetprojectElements = this._projInfoService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.projectElements.forEach(element => {\r\n if (element.elementDescription != 'Project Code') {\r\n this.searchTypeList.push({ value: element.elementId, description: element.elementDescription });\r\n }\r\n });\r\n this.regConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select'\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.regConfig;\r\n this.dynamicForm.createControl();\r\n });\r\n this.UnsubscribeArray.push(GetprojectElements);\r\n}\r\n\r\ngetProjectBusinessGroups() {\r\n let _getProjectBusinessGroups = this._commonService.getProjectBusinessGroups(this._commonService.getProjectId()).subscribe(res => \r\n {\r\n this.projBusinessGroups = res.filter(x => x.is_Active);\r\n });\r\n this.UnsubscribeArray.push(_getProjectBusinessGroups);\r\n\r\n}\r\n\r\npublic getElementDetails(elementName: string, moduleId?: number) \r\n{\r\n if (!moduleId)\r\n moduleId = Module.ScheduleDocument\r\n let _getProjectElementDetails = this._projInfoService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: moduleId, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Status\":\r\n this.dciStatusList = res;\r\n break;\r\n }\r\n }, err => { });\r\n this.UnsubscribeArray.push(_getProjectElementDetails);\r\n}\r\n\r\n\r\ncreateSearchFieldsForm() {\r\n this.schSeachFieldsConfig = this.getSchSearchConfig();\r\n this.schSearchDynamicForm.fields = this.schSeachFieldsConfig;\r\n this.schSearchDynamicForm.createControl();\r\n}\r\ngetSchSearchConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'eipdatepicker',\r\n name: 'fromDate',\r\n label: 'From'\r\n },\r\n {\r\n type: 'eipdatepicker',\r\n name: 'toDate',\r\n label: 'To'\r\n }];\r\n}\r\n\r\ngetWorkflowDetails() {\r\n let getWfDetails = this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x;\r\n this.workflowList = this.workflowList.filter(x => x.scheduleType == 3);\r\n });\r\n this.UnsubscribeArray.push(getWfDetails);\r\n}\r\n\r\nselectedworkflowvalue(event: any) {\r\n this.selectedWorkflownumber = event.additionalValues.additionalValues.workflowId;\r\n}\r\n\r\nselectedApprovalby(event: any)\r\n{\r\n this.selectedgroup_Id = event.additionalValues.additionalValues.group_Id;\r\n}\r\n\r\nselectedReleasedfor(event: any)\r\n{\r\n this.selectedReleaseId = event.additionalValues.additionalValues.dedId;\r\n}\r\n\r\ncloseworkflowTab(event: any) {\r\n this.selectedWorkflownumber = 0;\r\n}\r\npostElementdetails() \r\n{\r\n if(this.dynamicForm.form.valid && this.selectedWorkflownumber!=0 && this.selectedgroup_Id!=0 && this.selectedReleaseId!=0)\r\n { \r\n let resForm: FormGroup | undefined | null = this.dynamicForm.form;\r\n let elementInp: IProjectElementDetailsOutput[] = this.projectElements.map(x => \r\n {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription).value;\r\n if (selectedValue == null) {\r\n return null;\r\n } else {\r\n let result: IProjectElementDetailsOutput = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n };\r\n return result;\r\n }\r\n }).filter(x => x !== null) as IProjectElementDetailsOutput[];\r\n this.eleValue = elementInp;\r\n\r\n // Return the selected Impact details\r\n let obj: any = {};\r\n obj[\"eleValue\"] = this.eleValue;\r\n obj[\"selectedWorkflownumber\"] = this.selectedWorkflownumber;\r\n obj[\"selectedgroup_Id\"] = this.selectedgroup_Id;\r\n obj[\"selectedReleaseId\"] = this.selectedReleaseId;\r\n this._dialogRef.close(obj);\r\n }\r\n else\r\n {\r\n this._notificationService.showToast(\"Fill all the fields\", \"Warning\");\r\n }\r\n}\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n

Fill the details to Link Document

\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { StdDciGridOutputModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { SDLinkModel, StrjsonDocIDModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { GetSDListforGrid } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { FileUploadLibrary } from \"src/app/Service/file/file.service\";\r\nimport { BulkScheduleUploadComponent } from \"../bulk_schedule_upload/bulk-schedule-upload.component\";\r\nimport { StandardDrawingDialogComponent } from '../standard-drawing-dialog/standard-drawing-dialog.component';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { Subscription } from \"rxjs\";\r\nimport { StandardDrawingLinkComponent } from './standard-drawing-link/standard-drawing-link.component';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\n\r\n@Component({\r\n selector: 'app-standard-drawing',\r\n templateUrl: './standard-drawing.component.html',\r\n styleUrls: ['./standard-drawing.component.css']\r\n})\r\n\r\nexport class StandardDrawingComponent implements OnInit, OnDestroy {\r\n projectId: number = 0;\r\n enableFilter = false;\r\n groupId!: number;\r\n public selectedfiles: any[] = [];\r\n public standardList: any[] = [];\r\n public stdDciListforGrid: any[] = [];\r\n memberId!: number;\r\n selectedOption: string = 'standard';\r\n public linkedList: StdDciGridOutputModel[] = [];\r\n public alllinkedList: StdDciGridOutputModel[] = [];\r\n selectionAction: any[] = [];\r\n public selectedworkflow = [];\r\n workflowList: WorkflowTemplateModel[] = [];\r\n selectedWorkflownumber: number = 0;\r\n selectedgroup_Id: number = 0;\r\n selectedReleaseId: number = 0;\r\n public addeddata: any[] = [];\r\n public isCommonProject: boolean = false;\r\n SDdocIDforLink: StrjsonDocIDModel[] = [];\r\n UnsubscribeArray: Subscription[] = [];\r\n public skip: number = 0;\r\n eleValue: IProjectElementDetailsOutput[] = [];\r\n\r\n constructor(private _notificationService: NotificationService, private dialog: MatDialog, private _commonService: CommonService,\r\n private _scheduleDocService: ScheduleDocumentService, public datepipe: DatePipe,) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n if (this.projectId == 0) {\r\n this.isCommonProject = true;\r\n }\r\n this.loadStandardDrawingList();\r\n this.getWorkflowDetails();\r\n }\r\n\r\n loadStandardDrawingList() {\r\n let inputstddraw: GetSDListforGrid = { intProjectID: this.projectId, intGroupID: this.groupId, strSearchFor: \"NOT-LINKED-DOCS\" };\r\n let getStdDciList = this._scheduleDocService.GetStdDciListForGrid(inputstddraw).subscribe((res: StdDciGridOutputModel[]) => {\r\n this.standardList = res;\r\n });\r\n this.UnsubscribeArray.push(getStdDciList);\r\n }\r\n\r\n loadLinkedList() {\r\n let inputstddraw: GetSDListforGrid = { intProjectID: this.projectId, intGroupID: this.groupId, strSearchFor: \"LINKED-DOCS\" };\r\n let getStdDciLinkedlist = this._scheduleDocService.GetStdDciListForGrid(inputstddraw).subscribe((res: StdDciGridOutputModel[]) => {\r\n this.linkedList = res;\r\n this.alllinkedList = res;\r\n });\r\n this.UnsubscribeArray.push(getStdDciLinkedlist);\r\n }\r\n\r\n viewAttachmentClick(data: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: {\r\n projectId: 0,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId,\r\n isDeleteEnable: false,\r\n documentNo: data.doc_No\r\n },\r\n });\r\n }\r\n\r\n public uploadattachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: 0,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n moduleName: 'EDMS',\r\n libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId,\r\n documents: [{\r\n value: data.doc_Id,\r\n text: data.doc_No,\r\n revisionNo: data.revision_No,\r\n task_SNo: 1\r\n }],\r\n isEditable: false,\r\n isStdDCI: true\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n });\r\n }\r\n\r\n viewLinkedAttachment(data: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: {\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId,\r\n isDeleteEnable: false,\r\n documentNo: data.doc_No\r\n },\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n getWorkflowDetails() {\r\n let getWfDetails = this._scheduleDocService.GetWorkflowList().subscribe((x: WorkflowTemplateModel[]) => {\r\n this.workflowList = x;\r\n this.workflowList = this.workflowList.filter(x => x.scheduleType == 3);\r\n });\r\n this.UnsubscribeArray.push(getWfDetails);\r\n }\r\n\r\n selectedworkflowvalue(event: any) {\r\n this.selectedWorkflownumber = event.additionalValues.additionalValues.workflowId;\r\n }\r\n\r\n closeworkflowTab(event: any) {\r\n this.selectedWorkflownumber = 0;\r\n }\r\n\r\n onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem);\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { doc_Id: any; revision_No: any; }; }) => {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (element.dataItem.doc_Id == this.selectionAction[i].doc_Id && element.dataItem.revision_No == this.selectionAction[i].revision_No) {\r\n this.selectionAction.splice(i, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.selectionAction = [];\r\n this.selectedfiles = [];\r\n }\r\n\r\n get isStandardDraw(): boolean {\r\n return this.selectedOption === 'standard';\r\n };\r\n\r\n changeButtonToggle(event: { value: string; }) {\r\n this.selectedOption = event.value;\r\n this.enableFilter = false;\r\n if (this.selectedOption == 'standard') {\r\n this.loadStandardDrawingList();\r\n\r\n }\r\n else {\r\n this.loadLinkedList();\r\n }\r\n }\r\n\r\n createdocument() {\r\n let dialogRef = this.dialog.open(BulkScheduleUploadComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { num: 1, isStdDCI: true }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n if (res)\r\n this.createdocument();\r\n else\r\n this.loadStandardDrawingList();\r\n })\r\n }\r\n\r\npublic eleobj: any[]=[];\r\n addDocFromGrid() \r\n {\r\n if(this.selectionAction.length > 0)\r\n {\r\n let dialogRef = this.dialog.open(StandardDrawingLinkComponent, {\r\n panelClass: 'mat-dialog-content',\r\n width: '100%'\r\n })\r\n dialogRef.afterClosed().subscribe((data) => \r\n {\r\n if (data) \r\n {\r\n this.eleValue = data.eleValue;\r\n this.selectedWorkflownumber = data.selectedWorkflownumber;\r\n this.selectedgroup_Id = data.selectedgroup_Id;\r\n this.selectedReleaseId = data.selectedReleaseId;\r\n \r\n this.eleValue.forEach(x=>\r\n {\r\n let i = this.eleValue.indexOf(x);\r\n let eleobj = {\r\n \"DE_Id\" : this.eleValue[i].deId,\r\n \"DED_Id\" : this.eleValue[i].dedId,\r\n \"Is_Active\" : true,\r\n \"Created_By\" : this.memberId,\r\n \"Created_On\" : new Date(),\r\n \"Modified_By\" : null,\r\n \"Modified_On\" : null,\r\n \"Is_System_Data\" : true\r\n };\r\n this.eleobj.push(eleobj);\r\n });\r\n \r\n this.selectedfiles = [];\r\n this.SDdocIDforLink = [];\r\n if (this.selectionAction.length > 0) \r\n {\r\n this.selectionAction.forEach(element => {\r\n if (element.isSelected) {\r\n this.selectedfiles.push(element);\r\n }\r\n });\r\n this.selectedfiles.forEach(element => {\r\n \r\n let i = this.selectedfiles.indexOf(element);\r\n let obj = {\r\n \"doc_id\": this.selectedfiles[i].doc_Id\r\n };\r\n this.SDdocIDforLink.push(obj);\r\n });\r\n if (this.selectedWorkflownumber != 0) {\r\n let docIdinput: SDLinkModel =\r\n {\r\n intProjectId: this.projectId,\r\n intGroupID: this.groupId,\r\n strjsonDocID: JSON.stringify(this.SDdocIDforLink),\r\n strjsonElement: JSON.stringify(this.eleobj),\r\n intWFID: this.selectedWorkflownumber,\r\n intApproval: this.selectedgroup_Id,\r\n intReleaseId: this.selectedReleaseId,\r\n intUID: this.memberId\r\n }\r\n let linkStdDci = this._scheduleDocService.LinkStdDciDoc(docIdinput).subscribe((result) => {\r\n if (result) {\r\n result.forEach((element: { std_Doc_No: any; }) => {\r\n let suceessdoc = {\r\n doc_no: element.std_Doc_No,\r\n successcode: 200,\r\n successmessage: \"Document Linked Successfully\"\r\n }\r\n this.addeddata.push(suceessdoc);\r\n });\r\n this.selectionAction = [];\r\n this.eleValue = [];\r\n this.eleobj = [];\r\n this.selectedWorkflownumber = 0;\r\n this.selectedgroup_Id = 0;\r\n this.selectedReleaseId = 0;\r\n this.Responce(this.addeddata);\r\n this.loadStandardDrawingList();\r\n }\r\n else {\r\n let errordoc = {\r\n doc_no: null,\r\n successcode: 500,\r\n successmessage: \"Error - Documents Not Linked\"\r\n }\r\n this.addeddata.push(errordoc);\r\n this.selectionAction = [];\r\n this.eleValue = [];\r\n this.eleobj = [];\r\n this.selectedWorkflownumber = 0;\r\n this.selectedgroup_Id = 0;\r\n this.selectedReleaseId = 0;\r\n this.Responce(this.addeddata);\r\n this.loadStandardDrawingList();\r\n }\r\n });\r\n this.UnsubscribeArray.push(linkStdDci);\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please Select Workflow\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this._notificationService.showToast(\"No Documents Selected\", \"Warning\");\r\n }\r\n \r\n }\r\n });\r\n }\r\n else\r\n {\r\n this._notificationService.showToast(\"No Documents Selected\", \"Warning\");\r\n }\r\n\r\n \r\n\r\n // this.selectedfiles = [];\r\n // this.SDdocIDforLink = [];\r\n // if (this.selectionAction.length > 0) {\r\n // this.selectionAction.forEach(element => {\r\n // if (element.isSelected) {\r\n // this.selectedfiles.push(element);\r\n // }\r\n // });\r\n // this.selectedfiles.forEach(element => {\r\n\r\n // let i = this.selectedfiles.indexOf(element);\r\n // let obj = {\r\n // \"doc_id\": this.selectedfiles[i].doc_Id\r\n // };\r\n // this.SDdocIDforLink.push(obj);\r\n // });\r\n // if (this.selectedWorkflownumber != 0) {\r\n // let docIdinput: SDLinkModel =\r\n // {\r\n // intProjectId: this.projectId,\r\n // intGroupID: this.groupId,\r\n // strjsonDocID: JSON.stringify(this.SDdocIDforLink),\r\n\r\n // intWFID: this.selectedWorkflownumber,\r\n // intUID: this.memberId\r\n // }\r\n // let linkStdDci = this._scheduleDocService.LinkStdDciDoc(docIdinput).subscribe((result) => {\r\n // if (result) {\r\n // result.forEach((element: { std_Doc_No: any; }) => {\r\n // let suceessdoc = {\r\n // doc_no: element.std_Doc_No,\r\n // successcode: 200,\r\n // successmessage: \"Document Linked Successfully\"\r\n // }\r\n // this.addeddata.push(suceessdoc);\r\n // });\r\n // this.selectionAction = [];\r\n // this.Responce(this.addeddata);\r\n // this.loadStandardDrawingList();\r\n // }\r\n // else {\r\n // let errordoc = {\r\n // doc_no: null,\r\n // successcode: 500,\r\n // successmessage: \"Error - Documents Not Linked\"\r\n // }\r\n // this.addeddata.push(errordoc);\r\n // this.selectionAction = [];\r\n // this.Responce(this.addeddata);\r\n // this.loadStandardDrawingList();\r\n // }\r\n // });\r\n // this.UnsubscribeArray.push(linkStdDci);\r\n // }\r\n // else {\r\n // this._notificationService.showToast(\"Please Select Workflow\", \"Warning\");\r\n // }\r\n // }\r\n // else {\r\n // this._notificationService.showToast(\"No Documents Selected\", \"Warning\");\r\n // }\r\n }\r\n\r\n Responce(result: any[]) {\r\n let dialogRef = this.dialog.open(StandardDrawingDialogComponent,\r\n {\r\n panelClass: 'mat-dialog-content',\r\n data: result,\r\n maxHeight: '100%'\r\n });\r\n dialogRef.afterClosed().subscribe((data) => {\r\n this.loadStandardDrawingList();\r\n this.addeddata = [];\r\n this.selectionAction = [];\r\n });\r\n }\r\n\r\n super_doc(dataItem: any)\r\n {\r\n this._notificationService.showPopup(\"Are you sure you want to Supersede this Document\", 'Confirm').then(data => {\r\n if (data == 'yes') \r\n {\r\n let obj = {\r\n \"doc_Id\" : dataItem.doc_Id\r\n };\r\n this._scheduleDocService.PostSupersedeStdDraw(obj).subscribe(res => {\r\n if(res[0].doc_Id != null)\r\n {\r\n this._notificationService.showToast(\"Document Superseded Successfully\", \"Success\");\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: 0,\r\n docId: res[0].doc_Id ,\r\n revisionNo: res[0].revision_No ,\r\n moduleName: 'EDMS',\r\n libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId,\r\n documents: [{\r\n value: res[0].doc_Id,\r\n text: dataItem.doc_No,\r\n revisionNo: res[0].revision_No,\r\n task_SNo: 1\r\n }],\r\n isEditable: false\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.loadStandardDrawingList();\r\n });\r\n }\r\n else\r\n {\r\n this._notificationService.showToast(\"Error in Superseding the Document\", \"Warning\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Standard Drawing List\r\n Linked Document\r\n \r\n
\r\n
\r\n \r\n Standard Drawing List\r\n Linked Document\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.print_Size}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.print_Size}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { groupBy } from 'lodash';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { configurationRoutes } from '../../configuration/configuration-routing.module';\r\nimport { engineeringScheduleRoutes } from '../../engineering-schedule/engineering-schedule-routing.module';\r\nimport { masterRoutes } from '../../master/master-routing.module';\r\nimport { repositoryDocumentRoutes } from '../../repositorydocument/repositorydocument-routing';\r\nimport { workflowRoutes } from '../../workflow/workflow-routing.module';\r\nimport { transmittalRoutes } from '../../transmittal/transmittal-routing.module';\r\nimport { authenticationRoutes } from '../../authentication/authentication-routing.module';\r\nimport { communicationRoutes } from '../../communication/communication-routing';\r\nimport { dashboardRoutes } from '../../dashboard/dashboard-routing.module';\r\nimport { ReportRoutes } from '../../report/report-routing.module';\r\nimport { EdmsCommonHeaderComponent } from 'src/app/CommonComponents/edms-common-header/edms-common-header.component';\r\nimport { IElasticProjRedirectModel } from 'src/app/ViewModel/ElasticSearch.Model';\r\nimport { peereviewRoutes } from '../../peer-review/peer-review-routing.module';\r\nimport { FeedbackRoutes } from '../../feedback/feedback-routing';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-home-layout',\r\n templateUrl: './app-home-layout.component.html'\r\n})\r\n\r\nexport class AppHomeLayoutComponent implements OnInit {\r\n public title = 'EIP Document Management System';\r\n /** Show project list (Child component data) */\r\n public showProjectList: boolean|null = null;\r\n /** Show date detail (Child component data) */\r\n public showDateDetails: boolean|null = null;\r\n /** Common header component page title (Child component data) */\r\n public pageTitle:string|null = null;\r\n /** Grouped all routes by subpath */\r\n public grpdSecondPath = {\r\n ...groupBy(authenticationRoutes, 'path'),\r\n ...groupBy(communicationRoutes, 'path'),\r\n ...groupBy(configurationRoutes, 'path'),\r\n ...groupBy(dashboardRoutes, 'path'),\r\n ...groupBy(engineeringScheduleRoutes, 'path'),\r\n ...groupBy(masterRoutes, 'path'),\r\n ...groupBy(ReportRoutes, 'path'),\r\n ...groupBy(repositoryDocumentRoutes, 'path'),\r\n ...groupBy(transmittalRoutes, 'path'),\r\n ...groupBy(workflowRoutes, 'path'),\r\n ...groupBy(peereviewRoutes, 'path')\r\n // ,\r\n // ...groupBy(FeedbackRoutes,'path')\r\n };\r\n @ViewChild('edmsprojectheader') edmsProjHeader!: EdmsCommonHeaderComponent;\r\n constructor(private commonService: CommonService,\r\n private notificationService: NotificationService,\r\n public _router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n //this.handleRoute();\r\n }\r\n /**\r\n * Router outlet event\r\n * Get component's data and set page title\r\n */\r\n handleRoute() {\r\n let currentUrl = this._router.url;\r\n\r\n if (currentUrl == '/dashboard/home') {\r\n this.pageTitle = \"\";\r\n\r\n\r\n this.commonService.selectedProjectId.subscribe(async (data:any) => {\r\n if (data && data == 9999999) {\r\n this.showDateDetails = false;\r\n }\r\n else {\r\n this.showDateDetails = true;\r\n }\r\n });\r\n\r\n this.showProjectList = true;\r\n } else {\r\n let\r\n urlSplit = currentUrl.split('/'),\r\n firstPath = urlSplit[1],\r\n secondPath = urlSplit[2],\r\n componentData:any = (this.grpdSecondPath && this.grpdSecondPath[secondPath] && this.grpdSecondPath[secondPath][0]) ? this.grpdSecondPath[secondPath][0]['data'] : {};\r\n this.pageTitle = componentData['title'];\r\n\r\n // if project code not required for this component\r\n if (componentData.hasOwnProperty('isProjectCodeRequired') && !componentData['isProjectCodeRequired']) {\r\n this.showProjectList = this.showDateDetails = false;\r\n\r\n } else {\r\n if (this.commonService.isProjectCodeSelected()) {\r\n this.showProjectList = this.showDateDetails = true;\r\n // this.showProjectList = true;\r\n\r\n // hide date details for this modules\r\n // if (firstPath == 'configuration') {\r\n // this.showDateDetails = false;\r\n // } else {\r\n // this.showDateDetails = true;\r\n // }\r\n\r\n } else {\r\n this.notificationService.showToast(\"Select project\", \"Warning\");\r\n this.redirectToHome();\r\n }\r\n }\r\n }\r\n }\r\n\r\n redirectToHome() {\r\n this.pageTitle = \"\";\r\n this.showProjectList = this.showDateDetails = true;\r\n this._router.navigate(['/dashboard/home']);\r\n }\r\n\r\n selectedProjectChanged(elasticProjModel: IElasticProjRedirectModel) {\r\n this.edmsProjHeader.changeProjectFromES(elasticProjModel);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector:'app-auth-layout',\r\n templateUrl:'./auth-layout.component.html'\r\n})\r\nexport class AuthLayoutComponent{\r\n\r\n}","\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'dashboard-layout',\r\n templateUrl: './dashboard-layout.component.html'\r\n})\r\n\r\nexport class DashboardLayoutComponent implements OnInit {\r\n \r\n ngOnInit(){}\r\n\r\n}","\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MenuService } from 'src/app/Service/application-menu/menu.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { menuModel } from 'src/app/ViewModel/ApplicationMenu.Model';\r\n\r\n@Component({\r\n selector: 'app-edit-menu',\r\n templateUrl: './edit-menu.component.html',\r\n styleUrls: ['./edit-menu.component.css']\r\n})\r\nexport class EditMenuComponent implements OnInit {\r\n\r\n public data: any| menuModel[];\r\n\r\n constructor(public _notificationService: NotificationService, @Inject(MAT_DIALOG_DATA) public _data: any, public dialogRef: MatDialogRef, private menuService: MenuService) {\r\n this.data = this._data;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n postData() {\r\n if (!this.data['displayName']) {\r\n this._notificationService.showToast(\"Menu name is required\", 'Warning');\r\n return;\r\n }\r\n if (!this.data['icon']) {\r\n this._notificationService.showToast(\"Menu icon is required\", 'Warning');\r\n return;\r\n }\r\n if (!this.data['routeUrl']) {\r\n this._notificationService.showToast(\"Menu URI is required\", 'Warning');\r\n return;\r\n }\r\n if (!this.data['menuOrder']) {\r\n this._notificationService.showToast(\"Menu order is required\", 'Warning');\r\n return;\r\n }\r\n this.menuService.postApplicationMenulist(this.data).subscribe(data => {\r\n if (data[\"successCode\"] == 200) {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n this.closeDialog();\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Warning\")\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Add or Edit - Menu\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Menu Name\r\n \r\n \r\n
\r\n
\r\n \r\n Menu Icon\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Menu URI\r\n \r\n \r\n
\r\n
\r\n \r\n Menu Order\r\n \r\n \r\n
\r\n
\r\n \r\n Help URI\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Active Status:\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Admin Menu:\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Project Code :\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MenuService } from 'src/app/Service/application-menu/menu.service';\r\nimport { menuModel } from 'src/app/ViewModel/ApplicationMenu.Model';\r\nimport { EditMenuComponent } from '../add/edit-menu/edit-menu.component';\r\n\r\n@Component({\r\n selector: 'app-application-menu',\r\n templateUrl: './application-menu.component.html',\r\n styleUrls: ['./application-menu.component.css']\r\n})\r\nexport class ApplicationMenuComponent implements OnInit {\r\n\r\n public responseData: menuModel[] = [];\r\n\r\n constructor(private menuService: MenuService, private dialog: MatDialog,) { }\r\n\r\n ngOnInit() {\r\n this.getMenuData();\r\n }\r\n\r\n getMenuData() {\r\n this.menuService.getApplicationMenulist().subscribe(data => { \r\n this.responseData = [];\r\n data.forEach((value:any) => {\r\n if (value.parentMenuId == null) {\r\n let _menu: menuModel = value;\r\n _menu.subMenu = data.filter((x: { parentMenuId: number; }) => x.parentMenuId == _menu.menuId);\r\n this.responseData.push(_menu);\r\n }\r\n });\r\n this.responseData= this.responseData.sort(function(a:any, b:any) { return a.menuOrder - b.menuOrder}); \r\n this.responseData.forEach((val:any) =>val.subMenu.sort(function(a: { menuOrder: number; }, b: { menuOrder: number; }) { return a.menuOrder - b.menuOrder }));\r\n });\r\n }\r\n\r\n onClick_manageMenu(dataItem: menuModel, parentMenuId: number, isParentCall: boolean) {\r\n let menuData: menuModel;\r\n if (dataItem) {\r\n menuData = dataItem;\r\n }\r\n else {\r\n menuData = {\r\n displayName: \"\",\r\n icon: \"\",\r\n isActive: true,\r\n isAdminMenu: true,\r\n isProjectCodeRequired: true,\r\n menuId: null,\r\n menuOrder: null,\r\n parentMenuId: isParentCall ? null : parentMenuId,\r\n routeUrl: \"\",\r\n help_url:\"\",\r\n subMenu: null\r\n }\r\n }\r\n\r\n let dialogRef = this.dialog.open(EditMenuComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n data: menuData\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(data => {\r\n this.getMenuData();\r\n });\r\n }\r\n\r\n}","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.displayName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.icon}}\r\n \r\n \r\n \r\n \r\n {{dataItem.routeUrl}}\r\n \r\n \r\n \r\n \r\n {{dataItem.menuOrder}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Action\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.displayName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.icon}}\r\n \r\n \r\n \r\n \r\n {{dataItem.routeUrl}}\r\n \r\n \r\n \r\n \r\n {{dataItem.menuOrder}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators, FormBuilder } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { IProjectCreateModel, IProjectMasterViewModel, IEnableSimilarProjectViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\n\r\n@Component({\r\n selector: 'app-enable-similar-project',\r\n templateUrl: './Enable_Similar_Project.component.html'\r\n})\r\nexport class EnableSimilarProject implements OnInit {\r\n projStartDate = new Date();\r\n projEndDate = new Date();\r\n projectList: any | IProjectMasterViewModel[] = [];\r\n businessGroups: BusinessGroupModel[] = [];\r\n FrombusinessGroups: BusinessGroupModel[] = [];\r\n TobusinessGroups: undefined| BusinessGroupModel[] = [];\r\n EnableSimProjForm: FormGroup | undefined;\r\n selectedFromProject: any;\r\n public actionButtonText: string = \"Submit\";\r\n memberId: number | undefined;\r\n public projectForm: FormGroup = new FormGroup({\r\n\r\n Fromproject: new FormControl(),\r\n Toproject: new FormControl(),\r\n TobusinessGroup: new FormControl(),\r\n FrombusinessGroup: new FormControl(),\r\n });\r\n\r\n constructor(private _projService: ProjectMasterService,\r\n public projectMemberLinkService: ProjectMemberLinkService, private _orgService: OrganizationService, private formBuilder: FormBuilder, private projectInfoService: ProjectInfoService, private _commonService: CommonService, public _dialogRef: MatDialogRef,\r\n private _notificationService: NotificationService,\r\n @Inject(MAT_DIALOG_DATA) public _data: any) {\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n if (!!this._data.project)\r\n this.setFormValues();\r\n\r\n }\r\n\r\n FromProjectChange(event: ProjectViewModel) {\r\n this.FrombusinessGroups=[]; \r\n this.projectForm.get('FrombusinessGroup')?.setValue(\"\");\r\n if (this.getFormValue('Fromproject').project_Id)\r\n this.projectMemberLinkService.getProjectBusinessGroup(this.getFormValue('Fromproject').project_Id).subscribe((response: BusinessGroupModel[]) => {\r\n this.FrombusinessGroups = response.filter(each => each.is_Active);\r\n if (!this.FrombusinessGroups || this.FrombusinessGroups.length == 0)\r\n this._notificationService.showToast(\"business group not available against\" + this.getFormValue('Fromproject').projCodeDesc, \"Warning\");\r\n });\r\n }\r\n\r\n async ToProjectchange(event: ProjectViewModel) {\r\n this.TobusinessGroups =[];\r\n this.projectForm.get('TobusinessGroup')?.setValue(\"\");\r\n \r\n if (this.getFormValue('Toproject').project_Id){\r\n this.TobusinessGroups = await this.projectMemberLinkService.getProjectBusinessGroup(this.getFormValue('Toproject').project_Id).toPromise();\r\n if (!this.TobusinessGroups || this.TobusinessGroups.length == 0)\r\n this._notificationService.showToast(\"business group not available against\" + this.getFormValue('Toproject').projCodeDesc, \"Warning\");\r\n else\r\n this.TobusinessGroups = this.TobusinessGroups.filter(each => each.is_Active);\r\n }\r\n \r\n }\r\n\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n\r\n this.projectList = this._data.IprojectList;\r\n for (let i = 0; i < this.projectList.length; i++) {\r\n this.projectList[i]['projCodeDesc'] = this.projectList[i].project_Code + ' - ' + this.projectList[i].project_Description;\r\n }\r\n this.selectedFromProject = this.projectList.filter((x: { project_Id: any; }) => x.project_Id == this._data.project.project_Id)[0];\r\n this.projectForm.get('Fromproject')?.setValue(this.selectedFromProject);\r\n this.FromProjectChange(this.selectedFromProject);\r\n }\r\n\r\n /**\r\n * Save project\r\n */\r\n saveProject() {\r\n\r\n let EnableSimilarProject: IEnableSimilarProjectViewModel = {\r\n From_Project_Id: this.getFormValue('Fromproject').project_Id,\r\n To_Project_Id: this.getFormValue('Toproject').project_Id,\r\n From_Group_Id: this.getFormValue('FrombusinessGroup').group_Id,\r\n To_Group_Id: this.getFormValue('TobusinessGroup').group_Id,\r\n Member_Id: this.memberId,\r\n };\r\n\r\n this._projService.InsertUpdateEnableSimilarProject(EnableSimilarProject).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n //if (this._data == null)\r\n //projMaster.project_Id = +res.result;\r\n this._dialogRef.close({ response: res, project: EnableSimilarProject });\r\n }\r\n else {\r\n this._dialogRef.close({ response: res });\r\n }\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Get GroupForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.projectForm.get(controlName)?.value;\r\n }\r\n\r\n getStartDateValue(selectedText: any) {\r\n this.projectForm.get('projStartDate')?.setValue(selectedText);\r\n }\r\n\r\n getEndDateValue(selectedText: any) {\r\n this.projectForm.get('projEndDate')?.setValue(selectedText);\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n}","
\r\n
\r\n Enable Similar Project\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n   Cancel\r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { ElementdetailsService } from \"src/app/Service/elementdetails/elementdetails.service\";\r\nimport { IElementDetailsViewModel } from \"src/app/ViewModel/ElementDetailsModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { IElementsViewModel } from 'src/app/ViewModel/ElementsModel';\r\n\r\n@Component({\r\n selector: 'app-master-elementdetails-dialog',\r\n templateUrl: './edit-elementdetails-dialog.component.html',\r\n styleUrls: ['./edit-elementdetails-dialog.component.css']\r\n})\r\nexport class EditElementDetailsComponent implements OnInit {\r\n public actionButtonText: string = \"Save\";\r\n public isEdit: boolean = false;\r\n memberId: number | undefined;\r\n\r\n \r\n\r\n /**Element Details array */\r\n public elementDetailsList?: any | IElementDetailsViewModel;\r\n public elementList: IElementsViewModel[] = [];\r\n /**Element Id */\r\n private elementId: number | undefined;\r\n public Fromelement: string | undefined;\r\n public ToelementId: number | undefined | null;\r\n public selectedElementType: string = \"newelement\";\r\n public elementDetailsForm: FormGroup = new FormGroup({\r\n elementDetailName: new FormControl('', [Validators.required, Validators.maxLength(600)]),\r\n elementDetailShortName: new FormControl('', [Validators.required, Validators.maxLength(100)]),\r\n elementDetailDEDCode: new FormControl(''),\r\n elementDetailStatus: new FormControl(true),\r\n FromElement: new FormControl(''),\r\n ToElement: new FormControl('')\r\n });\r\n\r\n constructor(private _elementDetailsService: ElementdetailsService, private _commonService: CommonService, public _dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public _data: any) {\r\n this.elementDetailsList = _data.elementdetails;\r\n this.elementId = _data.elementId;\r\n this.elementList = _data.elementList;\r\n if (this.elementId) {\r\n this.Fromelement = this.elementList.filter(x => x.dE_Id == this.elementId)[0].dE_Description;\r\n this.elementDetailsForm.get('FromElement')?.setValue(this.Fromelement);\r\n this.elementList = this.elementList.filter(x => x.dE_Id != this.elementId);\r\n }\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n if (this.elementDetailsList != null) {\r\n this.actionButtonText = \"Update\";\r\n this.isEdit = true;\r\n this.setFormValues();\r\n }\r\n }\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n this.elementDetailsForm.get('elementDetailName')?.setValue(this.elementDetailsList.deD_Description);\r\n this.elementDetailsForm.get('elementDetailShortName')?.setValue(this.elementDetailsList.deD_Short_Description);\r\n this.elementDetailsForm.get('elementDetailDEDCode')?.setValue(this.elementDetailsList.deD_CODE);\r\n this.elementDetailsForm.get('elementDetailStatus')?.setValue(this.elementDetailsList.is_Active);\r\n }\r\n\r\n /**\r\n * Save elementdetails \r\n */\r\n saveElementDetails() {\r\n if (this.selectedElementType == 'newelement') {\r\n let elementdetails: IElementDetailsViewModel = {\r\n deD_Description: this.getFormValue('elementDetailName'), deD_Short_Description: this.getFormValue('elementDetailShortName'), deD_CODE: this.getFormValue('elementDetailDEDCode'),\r\n is_Active: this.getFormValue('elementDetailStatus'), deD_Id: this.elementDetailsList != null ? this.elementDetailsList.deD_Id : null, dE_Id: this.elementId, userId: this.memberId\r\n };\r\n this._elementDetailsService.insertUpdateElementDetails(elementdetails).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n if (this.elementDetailsList == null)\r\n elementdetails.deD_Id = +res.result;\r\n this._dialogRef.close({ response: res, elementdetails: elementdetails });\r\n }\r\n else if (res.successCode == 500) {\r\n this._dialogRef.close({ response: res });\r\n }\r\n else if (res.successCode == 205) {\r\n this._dialogRef.close({ response: res });\r\n }\r\n }, err => {\r\n\r\n });\r\n\r\n }\r\n else {\r\n let input: any = {\r\n FromElementID: this.elementId,\r\n ToElementID: this.ToelementId\r\n };\r\n this._elementDetailsService.CopyElementDetails(input).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n\r\n this._dialogRef.close({ response: res });\r\n }\r\n else {\r\n this._dialogRef.close({ response: res });\r\n }\r\n }, err => {\r\n\r\n });\r\n }\r\n }\r\n\r\n\r\n ToElementChange(selectedElement: any) {\r\n if (selectedElement && selectedElement.dE_Id) {\r\n this.ToelementId = selectedElement.dE_Id;\r\n }\r\n else\r\n this.ToelementId = null;\r\n\r\n }\r\n ElementTypeChange(selectedElement: any) {\r\n if (selectedElement.value) {\r\n this.selectedElementType = selectedElement.value;\r\n }\r\n\r\n }\r\n\r\n\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.elementDetailsForm.get(controlName)?.value;\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n}","
\r\n
\r\n Create New Element Detail\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n New Element Detail\r\n Copy Element Details\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Short Description \r\n \r\n \r\n Short Description is required \r\n \r\n \r\n
\r\n
\r\n \r\n Description\r\n \r\n \r\n Description is required\r\n \r\n \r\n
\r\n
\r\n \r\n DED Code\r\n \r\n \r\n
\r\n
\r\n \r\n Active Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n From Element\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n \r\n
\r\n
","import { Component, ElementRef, Inject, OnInit, ViewChild } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Criteria, ExternalMemberService } from \"src/app/Service/member/external-member.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { IEipSessionValue, IEipUserModel, IMemeberloginInputModel, IMemeberloginViewModel, IMemebersViewModel } from 'src/app/ViewModel/MembersModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { EncryptDecryptService } from \"src/app/Service/encrypt-decrypt.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n\r\n@Component({\r\n selector: 'app-master-member-dialog',\r\n templateUrl: './edit-member-dialog.component.html',\r\n styleUrls: ['./edit-member-dialog.component.css']\r\n})\r\nexport class EditMemberComponent implements OnInit {\r\n isValidLntUser: boolean = false;\r\n hide: boolean = true;\r\n criteriaMap: any = new Map();\r\n customValidators: Criteria[] | any = Object.keys(Criteria).map((key: any) => Criteria[key]);\r\n _is8Characters!: boolean;\r\n _isSymbols!: boolean;\r\n _isComplexWord!: boolean;\r\n isEditUser: boolean = false;\r\n selectedOption: string = 'ltMember';\r\n isInternalUser: boolean = true;\r\n public actionButtonText: string = \"Save\";\r\n memberId!: number;\r\n password!: FormControl;\r\n psNo: FormControl = new FormControl('', [Validators.required, Validators.maxLength(15), Validators.pattern('^[0-9]*$')])\r\n public memForm!: FormGroup;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n selectedGroup: any;\r\n\r\n /*\r\n Sheriya changes comment for production issue \r\n */\r\n // placeholder: string = \"Enter for a search (at least three letters)\";\r\n // login_Name = '';\r\n // comment = \"*Weblogin already taken\";\r\n // public searchList!: IMemeberloginViewModel[];\r\n // @ViewChild('searchInput') searchInput!: ElementRef;\r\n \r\n /**Member Details array */\r\n membersList: IMemebersViewModel;\r\n\r\n /*\r\n Sheriya changes comment for production issue\r\n */\r\n // public copymemberList: IMemebersViewModel[] = [];\r\n // isexistUser: boolean = false;\r\n\r\n UnsubscribeArray: Subscription[] = [];\r\n constructor(public _dialogRef: MatDialogRef, public _formBuilder: FormBuilder, private _extMemberService: ExternalMemberService, private _commonService: CommonService,\r\n @Inject(MAT_DIALOG_DATA) public _data: any, private encryptDecryptService: EncryptDecryptService, private _notificationService: NotificationService) {\r\n this.businessGroups = _data.businessGroups;\r\n this.selectedGroup = _data.selectedGroup;\r\n this.membersList = _data.member;\r\n\r\n /*\r\n Sheriya changes comment for production issue\r\n */\r\n //this.copymemberList = _data.memberList;\r\n \r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this._extMemberService.getCriteriaMap(this.criteriaMap);\r\n this.password = new FormControl('',\r\n [...this.customValidators.map((criteria: Criteria) => Validators.pattern(this.criteriaMap.get(criteria)))]);\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.createForm();\r\n // Code revert for production issue\r\n this.memForm.get('psNo').valueChanges.subscribe(res => {\r\n this.fetchEipUserDetails();\r\n })\r\n this.memForm.get('webLogin').valueChanges.subscribe(res => {\r\n this.fetchEipUserDetails();\r\n })\r\n if (this.membersList != null) {\r\n this.isEditUser = true;\r\n this.setFormValues();\r\n this.isInternalUser = this.membersList.is_Internal;\r\n if (this.isInternalUser) {\r\n this.selectedOption = \"ltMember\";\r\n this.setLntMemberFormControls();\r\n }\r\n else {\r\n this.selectedOption = \"othMember\";\r\n this.setOtherMemerFormControls();\r\n }\r\n this.actionButtonText = \"Update\";\r\n }\r\n else\r\n this.setLntMemberFormControls();\r\n }\r\n\r\n setEipUserValues(eipRes: IEipSessionValue[], sessionCode: string, formControlName: string) {\r\n let sessionValue: IEipSessionValue = eipRes.filter(x => x.sessionCode == sessionCode)[0];\r\n if (!!sessionValue)\r\n this.memForm.get(formControlName)?.setValue(sessionValue.sessionValue);\r\n }\r\n\r\n //code reverted for production issue\r\n\r\n fetchEipUserDetails() {\r\n this.isValidLntUser = false;\r\n let psNo: string = this.getFormValue('psNo')\r\n let eccWebLogin: string = this.getFormValue('webLogin')\r\n if (!!psNo && !!eccWebLogin && psNo.length > 0 && eccWebLogin.length > 0) {\r\n let eipUserModel: IEipUserModel = { referenceId: +psNo, username: eccWebLogin };\r\n this._extMemberService.GetEipUserDetails(eipUserModel).subscribe((eipRes: IEipSessionValue[]) => {\r\n if (eipRes.length > 0) {\r\n this.setEipUserValues(eipRes, \"SSUserFullName\", \"memName\");\r\n if (!this.isEditUser) {\r\n this.setEipUserValues(eipRes, \"SSUserMailID\", \"emailId\");\r\n this.setEipUserValues(eipRes, \"SSUserMobileNo\", \"mobileNo\");\r\n }\r\n this.setEipUserValues(eipRes, \"SSUserId\", \"eipUserId\");\r\n this.setEipUserValues(eipRes, \"SSCompanyCode\", \"companyCode\");\r\n this.isValidLntUser = true;\r\n }\r\n else\r\n {\r\n this.isValidLntUser = false;\r\n }\r\n })\r\n }\r\n }\r\n\r\n createForm() {\r\n this.memForm = this._formBuilder.group({\r\n psNo: this.psNo,\r\n memName: new FormControl('', [Validators.required, Validators.maxLength(600)]),\r\n memShortName: new FormControl('', [Validators.required, Validators.maxLength(200)]),\r\n webLogin: new FormControl('', [Validators.required, Validators.maxLength(50)]),\r\n emailId: new FormControl('', [Validators.required, Validators.email, Validators.maxLength(150)]),\r\n mobileNoPrefix: new FormControl('+91', [Validators.pattern('^\\\\+[0-9]{1,4}$')]),\r\n mobileNo: new FormControl('', [Validators.pattern('^\\\\d{8,11}$')]),\r\n designation: new FormControl('', [Validators.maxLength(200)]),\r\n businessGroup: new FormControl('', Validators.required),\r\n status: new FormControl(true),\r\n eipUserId: new FormControl(''),\r\n companyCode: new FormControl(''),\r\n txtAddress: new FormControl('')\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n this.memForm.get('psNo')?.setValue(this.membersList.staff_PSNo);\r\n this.memForm.get('memName')?.setValue(this.membersList.member_Name);\r\n this.memForm.get('memShortName')?.setValue(this.membersList.member_Short_Name);\r\n this.memForm.get('webLogin')?.setValue(this.membersList.ecc_Web_Login);\r\n this.memForm.get('emailId')?.setValue(this.membersList.eMail_Id);\r\n this.memForm.get('mobileNoPrefix')?.setValue(this.membersList.mobile_No_Prefix != '' ? this.membersList.mobile_No_Prefix : '+91');\r\n this.memForm.get('mobileNo')?.setValue(this.membersList.mobile_No);\r\n this.memForm.get('designation')?.setValue(this.membersList.designation);\r\n this.memForm.get('status')?.setValue(this.membersList.is_Active);\r\n this.memForm.get('txtAddress')?.setValue(this.membersList.address);\r\n this.formMarkAsTouched(this.memForm);\r\n }\r\n\r\n formMarkAsTouched(form: any | FormGroup) {\r\n if (form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key).markAsTouched();\r\n });\r\n }\r\n\r\n /**\r\n * setMemberType\r\n * @param event \r\n */\r\n setMemberType(event: { value: string; }) {\r\n this.selectedOption = event.value;\r\n if (this.selectedOption == 'othMember') {\r\n this.setOtherMemerFormControls();\r\n }\r\n else {\r\n this.setLntMemberFormControls()\r\n }\r\n }\r\n\r\n setLntMemberFormControls() {\r\n this.isInternalUser = true;\r\n if (this.memForm.contains('password'))\r\n this.memForm.removeControl('password');\r\n if (!this.memForm.contains('psNo'))\r\n this.memForm.addControl('psNo', this.psNo);\r\n }\r\n\r\n setOtherMemerFormControls() {\r\n this.isInternalUser = false;\r\n if (this.memForm.contains('psNo'))\r\n this.memForm.removeControl('psNo');\r\n if (!this.memForm.contains('password') && !this.isEditUser) {\r\n this.memForm.addControl('password', this.password);\r\n this.passwordChangeIndicator();\r\n }\r\n }\r\n\r\n private passwordChangeIndicator() {\r\n //Capture password changes\r\n let _password: any = this.memForm.get('password')?.valueChanges.subscribe((val: string) => {\r\n if (val) {\r\n this._is8Characters = this._extMemberService.containAtLeastEightChars(val);\r\n this._isSymbols = this._extMemberService.containAtLeastOneSpecialChar(val, this.criteriaMap);\r\n this._isComplexWord = this._extMemberService.containsMixedChars(val, this.criteriaMap);\r\n }\r\n });\r\n this.UnsubscribeArray.push(_password);\r\n }\r\n\r\n /**\r\n * Save member details\r\n */\r\n saveMember() {\r\n if ((this.isInternalUser && this.isValidLntUser) || !this.isInternalUser) {\r\n let member: IMemebersViewModel = {\r\n member_Name: this.getFormValue('memName'),\r\n member_Short_Name: this.getFormValue('memShortName'), ecc_Web_Login: this.getFormValue('webLogin').trim(), eMail_Id: this.getFormValue('emailId'),\r\n is_Active: this.getFormValue('status'), mobile_No_Prefix: this.getFormValue('mobileNoPrefix'), mobile_No: this.getFormValue('mobileNo'), designation: this.getFormValue('designation'),\r\n reporting_To: null, member_Id: this.membersList != null ? this.membersList.member_Id : null, group_Id: this.memForm.get('businessGroup')?.value['group_Id'],\r\n is_Internal: this.isInternalUser, user_Id: this.memberId, address: this.getFormValue('txtAddress'), group_Name: null\r\n };\r\n if (!this.isInternalUser && !this.isEditUser) {\r\n member.password = this.encryptDecryptService.encrypt(this.getFormValue('password'));\r\n }\r\n if (this.isInternalUser && this.isValidLntUser) {\r\n member.staff_PSNo = this.getFormValue('psNo')\r\n member.eIP_UserId = this.getFormValue('eipUserId')\r\n member.company_Code = this.getFormValue('companyCode')\r\n }\r\n let _insertUpdateMemberDetails = this._extMemberService.InsertUpdateMemberDetails(member).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n if (this.membersList == null)\r\n member.member_Id = +res.result;\r\n this._dialogRef.close({ response: res, member: member });\r\n }\r\n else {\r\n this._dialogRef.close({ response: res });\r\n }\r\n }, err => {\r\n\r\n });\r\n this.UnsubscribeArray.push(_insertUpdateMemberDetails);\r\n }\r\n else {\r\n if (this.isInternalUser && !this.isValidLntUser)\r\n this._notificationService.showPopup(\"Please provide valid Staff PS No & ECC Web login\", \"Warning\");\r\n else\r\n this._notificationService.showPopup(\"Mandatory fields are missing\", \"Warning\");\r\n }\r\n }\r\n\r\n /**\r\n * Get MemForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.memForm.get(controlName)?.value;\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n /*\r\n Sheriya changes commented for production issue\r\n */\r\n // searchOnChange() {\r\n // this.isexistUser = false;\r\n // this.searchList = [];\r\n // let searchText: string = this.searchInput.nativeElement.value;\r\n // if (searchText.length <= 2)\r\n // return;\r\n // let filteredList: IMemebersViewModel[] = this.copymemberList.filter(item => item.ecc_Web_Login == searchText);\r\n // if (filteredList.length >= 1) {\r\n // this.isexistUser = true;\r\n // }\r\n // let search: IMemeberloginInputModel = {\r\n // suggestion: searchText\r\n // }\r\n // let _getwebLoginList = this._extMemberService.GetwebLoginList(search).subscribe((data: IMemeberloginViewModel[]) => {\r\n // this.searchList = data;\r\n // })\r\n // this.UnsubscribeArray.push(_getwebLoginList);\r\n // }\r\n // autoCompleteChange(event: any) {\r\n // this.isexistUser = false;\r\n // this.memForm.get('webLogin')?.setValue(event.login_Name);\r\n // }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Create New Member

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n L&T Member\r\n Other Member\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Staff Psno\r\n \r\n \r\n Ps No is required\r\n \r\n \r\n Enter Numbers Only\r\n \r\n \r\n
\r\n
\r\n \r\n ECC Web Login\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Weblogin is required\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Member Name\r\n \r\n \r\n Member name is required\r\n \r\n \r\n
\r\n
\r\n \r\n Member Short Name\r\n \r\n \r\n Member short name is required\r\n \r\n \r\n
\r\n
\r\n \r\n Email Id\r\n \r\n \r\n Email Id is required\r\n \r\n \r\n Please provide valid email\r\n \r\n \r\n
\r\n
\r\n \r\n Password\r\n \r\n \r\n Password is required\r\n \r\n \r\n
\r\n
\r\n 8-16 Characters\r\n Symbols\r\n Mixed Characters\r\n
\r\n
\r\n
\r\n
\r\n \r\n Country Code\r\n \r\n \r\n Country code is required\r\n \r\n \r\n Country code is not valid\r\n \r\n \r\n
\r\n
\r\n \r\n Mobile No\r\n \r\n \r\n Mobile No is required\r\n \r\n \r\n Mobile No is not valid\r\n \r\n \r\n
\r\n
\r\n \r\n Designation\r\n \r\n \r\n Designation is required\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Address\r\n \r\n
\r\n
\r\n \r\n Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n   Cancel\r\n\r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\n\r\n@Component({\r\n selector: 'app-master-organization-dialog',\r\n templateUrl: './edit-organization-dialog.component.html',\r\n styleUrls: ['./edit-organization-dialog.component.css']\r\n})\r\nexport class EditOrganizationComponent implements OnInit {\r\n public actionButtonText: string = \"Save\";\r\n memberId: number | null | undefined;\r\n public groupForm: FormGroup = new FormGroup({\r\n groupName: new FormControl('', [Validators.required, Validators.maxLength(600)]),\r\n groupShortName: new FormControl('', [Validators.required, Validators.maxLength(50)]),\r\n groupCode: new FormControl('', [Validators.maxLength(20)]),\r\n groupLogoUrl: new FormControl(),\r\n groupStatus: new FormControl(true)\r\n });\r\n\r\n constructor(private _orgService: OrganizationService, private _commonService: CommonService, public _dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public _data: IOrganizationViewModel) {\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n if (this._data != null) {\r\n this.actionButtonText = \"Update\";\r\n this.setFormValues();\r\n }\r\n }\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n this.groupForm.get('groupName')?.setValue(this._data.group_Name);\r\n this.groupForm.get('groupShortName')?.setValue(this._data.group_Short_Name);\r\n this.groupForm.get('groupCode')?.setValue(this._data.group_Code);\r\n this.groupForm.get('groupLogoUrl')?.setValue(this._data.group_Logo_URL);\r\n this.groupForm.get('groupStatus')?.setValue(this._data.is_Active);\r\n }\r\n\r\n /**\r\n * Save organization group\r\n */\r\n saveGroup() {\r\n let organization: IOrganizationViewModel = {\r\n group_Code: this.getFormValue('groupCode'),\r\n group_Name: this.getFormValue('groupName'), group_Short_Name: this.getFormValue('groupShortName'), group_Logo_URL: this.getFormValue('groupLogoUrl'),\r\n is_Active: this.getFormValue('groupStatus'), group_Head_Id: null, group_Id: this._data != null ? this._data.group_Id : null, user_Id: this.memberId\r\n };\r\n this._orgService.insertUpdateOrganization(organization).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n if (this._data == null)\r\n organization.group_Id = +res.result;\r\n this._dialogRef.close({ response: res, organization: organization });\r\n }\r\n else {\r\n this._dialogRef.close({ response: res });\r\n }\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Get GroupForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.groupForm.get(controlName)?.value;\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n}","
\r\n
\r\n Create New Organization\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Business Group\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Group Short Name\r\n \r\n \r\n Group short name is required\r\n \r\n \r\n
\r\n
\r\n \r\n Group Name\r\n \r\n \r\n Group name is required\r\n \r\n \r\n
\r\n
\r\n \r\n Group Code\r\n \r\n \r\n
\r\n
\r\n \r\n Group Logo URL\r\n \r\n \r\n
\r\n
\r\n \r\n Active Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { IProjectCreateModel, IProjectMasterViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { IOrganizationViewModel } from 'src/app/ViewModel/OrganizationModel';\r\n\r\n@Component({\r\n selector: 'app-master-project-dialog',\r\n templateUrl: './edit-project.component.html'\r\n})\r\nexport class EditProjectComponent implements OnInit {\r\n projStartDate = new Date();\r\n projEndDate = new Date();\r\n icList: RoleFeatureModel[] = [];\r\n businessGroups: IOrganizationViewModel[] = [];\r\n groupid: number | null | undefined;\r\n public actionButtonText: string = \"Save\";\r\n memberId: number | undefined;\r\n visible_BG: boolean = false;\r\n icid: null | number | undefined;\r\n public numFormat: string | undefined;\r\n public projectForm: FormGroup = new FormGroup({\r\n projDesc: new FormControl('', [Validators.required]),\r\n projShortDesc: new FormControl('', [Validators.required]),\r\n projDisName: new FormControl(''),\r\n projCode: new FormControl('', [Validators.required]),\r\n jobCode: new FormControl('', [Validators.required]),\r\n projUrl: new FormControl('', [Validators.required]),\r\n iC_Id: new FormControl(),\r\n ICId: new FormControl(),\r\n projLogoUrl: new FormControl(),\r\n projStatus: new FormControl(true),\r\n projStartDate: new FormControl(),\r\n projEndDate: new FormControl(),\r\n projIsCloudStorage: new FormControl(false),\r\n Doc_Number_Format: new FormControl(),\r\n businessGroup: new FormControl(),\r\n client: new FormControl(),\r\n consultant: new FormControl(),\r\n isoNo: new FormControl(),\r\n latitude: new FormControl(),\r\n longitude:new FormControl()\r\n });\r\n\r\n constructor(private _projService: ProjectMasterService, private _commonService: CommonService, public _dialogRef: MatDialogRef,\r\n private _notificationService: NotificationService, public mapRoleFeatureService: MapRoleFeatureService,\r\n @Inject(MAT_DIALOG_DATA) public _data: IProjectCreateModel) {\r\n\r\n }\r\n /**\r\n * ngOnInit - Angular Lifecycle hook\r\n */\r\n ngOnInit() {\r\n this.numFormat = 'Auto';\r\n this.projectForm.get('Doc_Number_Format')?.setValue(this.numFormat);\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n if (this._data && this._data.icList)\r\n this.icList = this._data.icList;\r\n if (this._data && this._data.businessGroups)\r\n this.businessGroups = this._data.businessGroups;\r\n if (!!this._data.project)\r\n this.setFormValues();\r\n if (this._data.project != null && !this._data.isImport) {\r\n this.actionButtonText = \"Update\";\r\n }\r\n else\r\n this.visible_BG = true;\r\n\r\n }\r\n /**\r\n * Set form values\r\n */\r\n setFormValues() {\r\n\r\n this.projectForm.get('projDesc')?.setValue(this._data.project.project_Description);\r\n this.projectForm.get('projShortDesc')?.setValue(this._data.project.project_Short_Description);\r\n this.projectForm.get('projCode')?.setValue(this._data.project.project_Code);\r\n this.projectForm.get('jobCode')?.setValue(this._data.project.job_Code);\r\n this.projectForm.get('projUrl')?.setValue(this._data.project.project_URL);\r\n this.projectForm.get('projLogoUrl')?.setValue(this._data.project.project_Logo_URL);\r\n this.projectForm.get('projStatus')?.setValue(this._data.project.is_Active);\r\n this.projectForm.get('projIsCloudStorage')?.setValue(this._data.project.is_Cloud_Storage);\r\n this.projectForm.get('Doc_Number_Format')?.setValue(this._data.project.doc_Number_Format);\r\n this.projectForm.get('iC_Id')?.setValue(this._data.project.iC_Id);\r\n this.projectForm.get('client')?.setValue(this._data.project.client);\r\n this.projectForm.get('consultant')?.setValue(this._data.project.consultant);\r\n this.projectForm.get('isoNo')?.setValue(this._data.project.isoFormatNo);\r\n this.projectForm.get('latitude')?.setValue(this._data.project.latitude);\r\n this.projectForm.get('longitude')?.setValue(this._data.project.longitude);\r\n this.numFormat = this._data.project.doc_Number_Format;\r\n if (this.icList && this.icList.some(x => x.dedId == this._data.project.iC_Id)) {\r\n let objIC = this.icList.filter(x => x.dedId == this._data.project.iC_Id)[0];\r\n this.projectForm.get('ICId')?.setValue(objIC.dedDescription);\r\n this.icid = this._data.project.iC_Id;\r\n }\r\n\r\n if (!!this._data.project.start_Date) {\r\n this.projectForm.get('projStartDate')?.setValue(this._data.project.start_Date);\r\n this.projStartDate = this._data.project.start_Date;\r\n }\r\n if (!!this._data.project.end_Date) {\r\n this.projectForm.get('projEndDate')?.setValue(this._data.project.end_Date);\r\n this.projEndDate = this._data.project.end_Date;\r\n }\r\n }\r\n /**\r\n * Save project\r\n */\r\n saveProject() {\r\n let projMaster: any | IProjectMasterViewModel = {\r\n project_Code: this.getFormValue('projCode'), project_Description: this.getFormValue('projDesc'),\r\n project_Short_Description: this.getFormValue('projShortDesc'), job_Code: this.getFormValue('jobCode'),\r\n project_URL: this.getFormValue('projUrl'), project_Logo_URL: this.getFormValue('projLogoUrl'),\r\n start_Date: this.getFormValue('projStartDate'), end_Date: this.getFormValue('projEndDate'),\r\n is_Cloud_Storage: this.getFormValue('projIsCloudStorage'), is_Active: this.getFormValue('projStatus'),\r\n doc_Number_Format: this.getFormValue('Doc_Number_Format'),\r\n client: this.getFormValue('client'),\r\n consultant: this.getFormValue('consultant'),\r\n isoFormatNo: this.getFormValue('isoNo'),\r\n latitude: this.getFormValue('latitude'),\r\n longitude: this.getFormValue('longitude'),\r\n project_Type: 'Others', user_Id: this.memberId,\r\n iC_Id: this.icid,\r\n group_Id: this.groupid\r\n };\r\n if (!(!!projMaster.start_Date) || !(!!projMaster.end_Date)) {\r\n this._notificationService.showPopup(\"Kindly select project start & end date\", \"Warning\");\r\n return;\r\n }\r\n if (!projMaster.iC_Id) {\r\n this._notificationService.showPopup(\"Kindly select IC\", \"Warning\");\r\n return;\r\n }\r\n if (this._data.project != null && !this._data.isImport)\r\n projMaster.project_Id = this._data.project.project_Id;\r\n if (this._data.isImport) {\r\n projMaster.project_Type = this._data.project.project_Type;\r\n }\r\n this._projService.insertUpdateProject(projMaster).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n if (this._data == null)\r\n projMaster.project_Id = +res.result;\r\n this._dialogRef.close({ response: res, project: projMaster });\r\n }\r\n else {\r\n this._dialogRef.close({ response: res });\r\n }\r\n }, err => {\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Get GroupForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string): any {\r\n return this.projectForm.get(controlName)?.value;\r\n }\r\n\r\n getStartDateValue(selectedText: any) {\r\n this.projectForm.get('projStartDate')?.setValue(selectedText);\r\n }\r\n\r\n getEndDateValue(selectedText: any) {\r\n this.projectForm.get('projEndDate')?.setValue(selectedText);\r\n }\r\n\r\n /**\r\n * Close modal dialog\r\n */\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n changeIc(event: EIPAutoCompleteEventModel) {\r\n //this.clearIcSelected = 'N';\t\t\r\n this.icid = event.value != '-2' ? parseInt(event.value.toString()) : null;\r\n\r\n }\r\n\r\n changebusinessGroup(event: EIPAutoCompleteEventModel) {\r\n //this.clearIcSelected = 'N';\t\t\r\n this.groupid = event.value != '-2' ? parseInt(event.value.toString()) : null;\r\n\r\n }\r\n onKeyPress(event: KeyboardEvent): void {\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n const key = event.key;\r\n const cursorPosition = (event.target as HTMLInputElement).selectionStart;\r\n \r\n if (key === 'Backspace' || key === 'Delete') {\r\n return;\r\n }\r\n if (event.ctrlKey && key === 'a') {\r\n return;\r\n }\r\n if (event.ctrlKey && key === 'c') {\r\n return;\r\n }\r\n if (event.ctrlKey && key === 'v') {\r\n return;\r\n }\r\n\r\n const updatedValue =\r\n inputValue.slice(0, cursorPosition) + key + inputValue.slice(cursorPosition);\r\n \r\n const validCharactersRegex = /^[-]?\\d+(\\.\\d{0,})?$/;\r\n \r\n if (!validCharactersRegex.test(updatedValue)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n}","
\r\n
\r\n Create New Project\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Project Description\r\n \r\n \r\n Project description is required\r\n \r\n \r\n
\r\n
\r\n \r\n Project Short Description\r\n \r\n \r\n Project Short Description is required\r\n \r\n \r\n
\r\n
\r\n \r\n Project Code\r\n \r\n \r\n Project Code is required\r\n \r\n \r\n
\r\n
\r\n \r\n Job Code\r\n \r\n \r\n Job Code is required\r\n \r\n \r\n
\r\n
\r\n \r\n Project URL\r\n \r\n \r\n Project url is required\r\n \r\n \r\n
\r\n
\r\n \r\n Project Logo URL\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n IC is required\r\n \r\n
\r\n
\r\n \r\n Client\r\n \r\n \r\n
\r\n
\r\n \r\n Consultant\r\n \r\n \r\n
\r\n
\r\n \r\n ISOFormatNo\r\n \r\n \r\n
\r\n
\r\n \r\n Latitude\r\n \r\n \r\n
\r\n
\r\n \r\n Longitude\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n BusinessGroup is required\r\n \r\n
\r\n
\r\n \r\n Active Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Cloud Storage\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Numbering Format : \r\n \r\n Semi\r\n Manual\r\n Auto\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n   Cancel\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { IElementsViewModel } from 'src/app/ViewModel/ElementsModel';\r\nimport { ElementsService } from 'src/app/Service/elements/elements.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ElementdetailsService } from 'src/app/Service/elementdetails/elementdetails.service';\r\nimport { IElementDetailsViewModel } from 'src/app/ViewModel/ElementDetailsModel';\r\nimport { EditElementDetailsComponent } from '../dialogs/elementdetails-dialog/edit-elementdetails-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\n\r\n@Component({\r\n selector: 'app-elementdetails',\r\n templateUrl: './elementdetails.component.html',\r\n styleUrls: ['./elementdetails.component.css']\r\n})\r\nexport class ElementdetailsComponent implements OnInit {\r\n\r\n /**Elements array */\r\n public elementList: IElementsViewModel[] = [];\r\n\r\n /**Element Details array */\r\n public elementDetailsList: IElementDetailsViewModel[] = [];\r\n\r\n /**Element Id */\r\n private elementId!: string | number;\r\n\r\n isDisabled = false;\r\n memberId!: number;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n\r\n constructor(private _elementService: ElementsService, private _notificationService: NotificationService, private _elementDetailsService: ElementdetailsService,\r\n private _commonService: CommonService, private _dialog: MatDialog,) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getElementsList();\r\n }\r\n\r\n /**\r\n * Get Elements list\r\n */\r\n getElementsList() {\r\n this._elementService.GetElementsList().subscribe((data: IElementsViewModel[]) => {\r\n this.elementList = data.map(x => {\r\n let result: IElementsViewModel = {\r\n dE_Id: x.dE_Id, dE_Description: x.dE_Description, is_Active: x.is_Active, user_Id: this.memberId\r\n };\r\n return result;\r\n }).filter(x => x.is_Active == true);\r\n });\r\n }\r\n\r\n /**\r\n * Change Element Value\r\n * @param selectedElement \r\n */\r\n changeElement(selectedElement: { value: string | number; }) {\r\n if (selectedElement.value !== '-2') {\r\n this.elementId = selectedElement.value;\r\n this.isDisabled = true;\r\n this.getElementDetailsList(this.elementId);\r\n }\r\n else {\r\n this.isDisabled = false;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Get Element Details List\r\n * @param elementId \r\n */\r\n getElementDetailsList(elementId: any) {\r\n this._elementDetailsService.GetElementDetailsList(elementId).subscribe((data: IElementDetailsViewModel[]) => {\r\n this.elementDetailsList = data.map(x => {\r\n let result: IElementDetailsViewModel = {\r\n dE_Id: x.dE_Id,\r\n deD_Id: x.deD_Id,\r\n deD_Description: x.deD_Description,\r\n deD_Short_Description: x.deD_Short_Description,\r\n deD_CODE: x.deD_CODE,\r\n is_Active: x.is_Active,\r\n created_By: x.created_By,\r\n created_On: x.created_On,\r\n modified_By: x.modified_By,\r\n modified_On: x.modified_On,\r\n userId: this.memberId\r\n };\r\n return result;\r\n });\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Add/Update ElementDetails \r\n * @param elementdetails ElementDetails model \r\n */\r\n addEditElementDetails(elementdetails: any | IElementDetailsViewModel) {\r\n if (elementdetails === undefined)\r\n elementdetails = null;\r\n\r\n const dialogRef = this._dialog.open(EditElementDetailsComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: { elementdetails: elementdetails, elementId: this.elementId, elementList: this.elementList }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n let resElementDetails: IElementDetailsViewModel = res.elementdetails;\r\n if (res.response && res.response.successCode == 200) {\r\n if (resElementDetails) {\r\n let filteredOrg: IElementDetailsViewModel = this.elementDetailsList.filter(x => x.dE_Id == resElementDetails.dE_Id && x.deD_Id == resElementDetails.deD_Id)[0];\r\n if (filteredOrg) {\r\n filteredOrg.deD_Description = resElementDetails.deD_Description;\r\n filteredOrg.deD_Short_Description = resElementDetails.deD_Short_Description;\r\n filteredOrg.deD_CODE = resElementDetails.deD_CODE;\r\n filteredOrg.is_Active = resElementDetails.is_Active;\r\n } else {\r\n this.elementDetailsList = [...this.elementDetailsList, ...[resElementDetails]];\r\n }\r\n }\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n }\r\n\r\n else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n else if (res.response.successCode == 500) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n this.getElementDetailsList(this.elementId);\r\n }, err => { });\r\n }\r\n\r\n /**\r\n * Toggle filter\r\n */\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n /**\r\n * Toggle full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Element :\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.deD_Short_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.deD_Description}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, ViewChild, Renderer2 } from '@angular/core';\r\nimport { IElementsViewModel } from 'src/app/ViewModel/ElementsModel';\r\nimport { ElementsService } from 'src/app/Service/elements/elements.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport * as moment from 'moment';\r\n\r\nconst createFormGroup = (dataItem: { dE_Description: any; is_Active: any; dE_Id: any; }) => new FormGroup({\r\n 'dE_Description': new FormControl(dataItem.dE_Description, Validators.required),\r\n 'is_Active': new FormControl(dataItem.is_Active),\r\n 'dE_Id': new FormControl(dataItem.dE_Id),\r\n});\r\n\r\nconst matches = (el: { matches: any; msMatchesSelector: any; }, selector: string) => (el.matches || el.msMatchesSelector).call(el, selector);\r\n\r\n@Component({\r\n selector: 'app-elements',\r\n templateUrl: './elements.component.html',\r\n styleUrls: ['./elements.component.css']\r\n})\r\nexport class ElementsComponent implements OnInit {\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n public formGroup!: any|FormGroup;\r\n private editedRowIndex!: any | number;\r\n private docClickSubscription: any;\r\n private isNew!: boolean;\r\n memberId!: number;\r\n /**Elements array */\r\n public elementList: IElementsViewModel[] = [];\r\n\r\n constructor(private _elementService: ElementsService, private _notificationService: NotificationService,private _commonService: CommonService, private renderer: Renderer2) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getElementsList();\r\n this.docClickSubscription = this.renderer.listen('document', 'click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n /**\r\n * Get Elements list\r\n */\r\n getElementsList() {\r\n this._elementService.GetElementsList().subscribe((data: IElementsViewModel[]) => {\r\n this.elementList = data.map(x => {\r\n let result: IElementsViewModel = {\r\n dE_Id: x.dE_Id, dE_Description: x.dE_Description, is_Active: x.is_Active, user_Id: this.memberId ,\r\n created_By : x.created_By,\r\n created_On : x.created_On,\r\n modified_By : x.modified_By,\r\n modified_On : x.modified_On\r\n };\r\n return result;\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Add New Element Row\r\n */\r\n public addHandler(): void {\r\n this.closeEditor();\r\n\r\n this.formGroup = createFormGroup({\r\n dE_Description: '',\r\n is_Active: true,\r\n dE_Id: '',\r\n });\r\n this.isNew = true;\r\n\r\n this.grid.addRow(this.formGroup);\r\n }\r\n\r\n /**\r\n * Element Cell Click Handler\r\n */\r\n public cellClickHandler(data:any): void {\r\n if (data.isEdited || (this.formGroup && !this.formGroup.valid)) {\r\n return;\r\n }\r\n this.saveCurrent();\r\n this.formGroup = createFormGroup(data.dataItem);\r\n this.editedRowIndex = data.rowIndex;\r\n this.grid.editRow(data.rowIndex, this.formGroup);\r\n }\r\n\r\n /**\r\n * Close Cell Editor\r\n */\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n /**\r\n * Element Cell Validation Check\r\n */\r\n private onDocumentClick(e: any): void {\r\n if (this.formGroup && this.formGroup.valid &&\r\n !matches(e.target, '#elementsGrid tbody *, #elementsGrid .k-grid-toolbar .k-button')) {\r\n\r\n this.saveCurrent();\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * Add/Update Elements API Call\r\n */\r\n private saveCurrent(): void {\r\n if (this.formGroup) {\r\n let element: IElementsViewModel = {\r\n dE_Description: this.formGroup.get('dE_Description').value,\r\n is_Active: this.formGroup.get('is_Active').value,\r\n dE_Id: this.formGroup.get('dE_Id').value, \r\n user_Id: this.memberId\r\n };\r\n let existingElements: IElementsViewModel[] = this.elementList.filter(x => x.dE_Description == element.dE_Description\r\n && x.is_Active == element.is_Active);\r\n if (existingElements.length > 0) {\r\n //this._notificationService.showToast(\"Element already exists.\", \"Warning\");\r\n }\r\n else {\r\n this._elementService.insertUpdateElements(element).subscribe((res: StandardOutputModel) => {\r\n this.saveElement(res, element);\r\n });\r\n }\r\n\r\n this.closeEditor();\r\n this.getElementsList();\r\n }\r\n }\r\n /**\r\n * Close the row editor\r\n */\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n /**\r\n * Add/Update element\r\n * @param res Result Output\r\n * @param element Element Output\r\n */\r\n public saveElement(res: StandardOutputModel, element: IElementsViewModel) {\r\n if (res.successCode == 200) {\r\n if (element.dE_Id) {\r\n let filteredElement: IElementsViewModel = this.elementList.filter(x => x.dE_Id == element.dE_Id)[0];\r\n filteredElement.dE_Description = element.dE_Description;\r\n filteredElement.is_Active = element.is_Active;\r\n }\r\n else {\r\n let resElement: IElementsViewModel = { dE_Id: +res.result, dE_Description: element.dE_Description, is_Active: element.is_Active, user_Id: this.memberId }\r\n this.elementList.splice(0, 0, resElement);\r\n this.elementList = [...this.elementList];\r\n }\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n this.getElementsList();\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n\r\n }\r\n }\r\n /**\r\n * Toggle filter\r\n */\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n /**\r\n * Toggle full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n /**\r\n * Element active status on change event(Kendo switch)\r\n * @param value True/false\r\n */\r\n public onChange(value: boolean): void {\r\n this.formGroup.get('is_Active').setValue(value);\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.dE_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { OrganizationComponent } from './organization/organization.component';\r\nimport { ElementsComponent } from './elements/elements.component';\r\nimport { ElementdetailsComponent } from './elementdetails/elementdetails.component';\r\nimport { MembersComponent } from './members/members.component';\r\nimport { ProjectsComponent } from './projects/projects.component';\r\nimport { TransmittalTemplateComponent } from './transmittal-template/transmittal-template.component';\r\nimport { ApplicationMenuComponent } from './application-menu/application-menu.component';\r\nimport { TenderQuantityComponent } from './tender-quantity/tender-quantity.component';\r\n\r\n\r\nexport const masterRoutes: Routes = [\r\n { path: 'organization', component: OrganizationComponent, data: { title: 'ORGANIZATION - Business Group', isProjectCodeRequired: false } },\r\n { path: 'elements', component: ElementsComponent, data: { title: 'ELEMENTS', isProjectCodeRequired: false } },\r\n { path: 'elementdetails', component: ElementdetailsComponent, data: { title: 'ELEMENT DETAILS', isProjectCodeRequired: false } },\r\n { path: 'externalmembers', component: MembersComponent, data: { title: 'MEMBERS', isProjectCodeRequired: false } },\r\n { path: 'projects', component: ProjectsComponent, data: { title: 'PROJECTS', isProjectCodeRequired: false } },\r\n { path: 'menu', component: ApplicationMenuComponent, data: { title: 'APPLICATION MENU', isProjectCodeRequired: false } },\r\n { path: 'transmittal-template', component: TransmittalTemplateComponent, data: { title: 'TRANSMITTAL TEMPLATE', isProjectCodeRequired: true } },\r\n { path: 'tenderquantity', component: TenderQuantityComponent, data: { title: 'TENDER QUANTITY', isProjectCodeRequired: false } },\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(masterRoutes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class MasterRoutingModule { }\r\n","import { Component, OnInit, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { OrganizationService } from \"src/app/Service/organization/organization.service\";\r\nimport { IOrganizationViewModel } from \"src/app/ViewModel/OrganizationModel\";\r\nimport { EditMemberComponent } from \"../dialogs/members-dialog/edit-member-dialog.component\";\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { IMemebersViewModel } from 'src/app/ViewModel/MembersModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { DynamickendoService, PageIcons } from 'src/app/CommonComponents/Dynamic-Kendo-UI/Service/Dynamic-kendo.service';\r\nimport { Router } from '@angular/router';\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport * as moment from \"moment\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ɵNullViewportScroller } from \"@angular/common\";\r\n//import {PageIcons} from 'src/app/CommonComponents/Dynamic-Kendo-UI/Model';\r\n\r\n@Component({\r\n selector: 'app-members',\r\n templateUrl: './members.component.html',\r\n styleUrls: ['./members.component.css']\r\n})\r\nexport class MembersComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n Pagename: PageIcons = PageIcons.Members;//\"PageIcons.Members\";\r\n businessGroupForm!: FormGroup;\r\n businessGroups: IOrganizationViewModel[] = [];\r\n grdSettings!: any[];\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Members list against the business group */\r\n public memberList: IMemebersViewModel[] = [];\r\n public _Url: string = \"\";\r\n groupId!: number;\r\n selectedGroup!: IOrganizationViewModel;\r\n public copymemberList: IMemebersViewModel[] = [];\r\n UnsubscribeArray: Subscription[] = [];\r\n selectedOption: string = 'Internal';\r\n is_Internal: boolean = true;\r\n @ViewChildren('grdMemberList') public gridSettingDetails!: GridComponent;\r\n\r\n constructor(private _dialog: MatDialog, private _orgService: OrganizationService, public _formBuilder: FormBuilder,\r\n private _extMemberService: ExternalMemberService, private _notificationService: NotificationService, private _DynamickendoService: DynamickendoService,\r\n private router: Router, private _commonService: CommonService,) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.createBusinessGroupForm();\r\n this.getOrganizationList();\r\n this._Url = this.router.url;\r\n this.GetGridsettigs();\r\n }\r\n\r\n changeButtonToggle(event: any) {\r\n this.selectedOption = event.value;\r\n this.is_Internal = (event.value == 'Internal') ? true : false;\r\n this.getMembersList(this.selectedGroup);\r\n }\r\n\r\n createBusinessGroupForm() {\r\n this.businessGroupForm = this._formBuilder.group({\r\n businessGroup: new FormControl('')\r\n })\r\n }\r\n\r\n selectedOrganization(organization: IOrganizationViewModel) {\r\n this.selectedGroup = organization;\r\n this.getMembersList(organization);\r\n }\r\n\r\n /**\r\n * Get organization list\r\n */\r\n getOrganizationList() {\r\n let _getOrganizationList = this._orgService.getOrganizationList().subscribe((data: IOrganizationViewModel[]) => {\r\n this.businessGroups = data;\r\n this.selectedGroup = this.businessGroups.filter(h => {\r\n return h.group_Id == this.groupId\r\n })[0];\r\n this.businessGroupForm.get('businessGroup')?.setValue(this.selectedGroup);\r\n this.getMembersList(this.businessGroups.filter(h => {\r\n return h.group_Id == this.groupId\r\n })[0]);\r\n });\r\n this.UnsubscribeArray.push(_getOrganizationList);\r\n }\r\n\r\n /**\r\n * Get members list\r\n */\r\n getMembersList(group: IOrganizationViewModel) {\r\n let v: any = (typeof group === \"object\") ? group.group_Id : null\r\n let _getMembersList = this._extMemberService.GetMembersList({\r\n group_Id: v,\r\n member_Id: null\r\n }).subscribe((data: IMemebersViewModel[]) => {\r\n this.memberList = data.filter(i => i.is_Internal == this.is_Internal);\r\n this.copymemberList = this.memberList;\r\n });\r\n this.UnsubscribeArray.push(_getMembersList);\r\n }\r\n\r\n getFormattedMobileNo(mobile_No_Prefix: string, mobile_No: string | null) {\r\n return (mobile_No != '' && mobile_No != null) ? mobile_No_Prefix + ' ' + mobile_No : '';\r\n }\r\n\r\n addEditMember(member?: IMemebersViewModel | null) {\r\n if (member === undefined)\r\n member = null;\r\n const dialogRef = this._dialog.open(EditMemberComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: {\r\n member: member,\r\n businessGroups: this.businessGroups,\r\n selectedGroup: this.businessGroupForm.get('businessGroup')?.value,\r\n memberList: this.copymemberList\r\n }\r\n });\r\n let _dialogRef = dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res) {\r\n let resMember: IMemebersViewModel = res.member;\r\n if (res.response && res.response.successCode == 200 && resMember) {\r\n let selectedGroup: IOrganizationViewModel = this.businessGroupForm.get('businessGroup')?.value;\r\n let filteredMember: IMemebersViewModel = this.memberList.filter(x => x.member_Id == resMember.member_Id)[0];\r\n if (filteredMember && selectedGroup && selectedGroup.group_Id == resMember.group_Id) {\r\n this.copyMemberAttributes(resMember, filteredMember);\r\n } else {\r\n let selectedGroup: IOrganizationViewModel = this.businessGroups.filter(x => x.group_Id == resMember.group_Id)[0];\r\n this.businessGroupForm.get('businessGroup')?.setValue(selectedGroup);\r\n this.memberList = [...this.memberList, ...[resMember]];\r\n }\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n this.getMembersList(selectedGroup);\r\n } else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n }\r\n\r\n }, err => { });\r\n this.UnsubscribeArray.push(_dialogRef);\r\n }\r\n\r\n copyMemberAttributes(source: IMemebersViewModel, destination: IMemebersViewModel) {\r\n destination.member_Name = source.member_Name;\r\n destination.member_Short_Name = source.member_Short_Name;\r\n destination.is_Active = source.is_Active;\r\n destination.staff_PSNo = source.staff_PSNo;\r\n destination.designation = source.designation;\r\n destination.eMail_Id = source.eMail_Id;\r\n destination.ecc_Web_Login = source.ecc_Web_Login;\r\n destination.mobile_No = source.mobile_No;\r\n destination.group_Id = source.group_Id;\r\n destination.is_Internal = source.is_Internal;\r\n destination.mobile_No_Prefix = source.mobile_No_Prefix;\r\n }\r\n\r\n /**\r\n * Toggle filter\r\n */\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n UnlockMember(dataitem: IMemebersViewModel) {\r\n this._notificationService.showPopup(\"Are you sure to unlock the user ? \", 'Confirm').then(data => {\r\n\r\n if (data == 'yes') {\r\n let selectedGroup: IOrganizationViewModel = this.businessGroupForm.get('businessGroup')?.value;\r\n let _UnlockUserDetails = this._extMemberService.UnlockUserDetails(dataitem.member_Id).subscribe((data: StandardOutputModel) => {\r\n if (data.successCode == 200) {\r\n let selectedGroup: IOrganizationViewModel = this.businessGroupForm.get('businessGroup')?.value;\r\n this.getMembersList(selectedGroup);\r\n this._notificationService.showToast(data.successMessage, \"Success\");\r\n\r\n }\r\n });\r\n this.UnsubscribeArray.push(_UnlockUserDetails);\r\n }\r\n });\r\n }\r\n unlock(lock_status: any): boolean {\r\n return lock_status.lock_status\r\n }\r\n gridSettings() {\r\n this._DynamickendoService.gridSettings(this.gridSettingDetails, this._Url);\r\n }\r\n GetGridsettigs() {\r\n let _GetGridSettings = this._DynamickendoService.GetGridSettings(this._Url).subscribe(res => {\r\n this.grdSettings = res;\r\n })\r\n this.UnsubscribeArray.push(_GetGridSettings);\r\n }\r\n\r\n Visible(Itemdata: any): boolean {\r\n return true;\r\n }\r\n ClickEvent(data: {\r\n Icondata: {\r\n Name: string; Isheader: any;\r\n }; Itemdata: IMemebersViewModel;\r\n }) {\r\n if (data.Icondata) {\r\n if (data.Icondata.Name == \"Edit\" && data.Itemdata)\r\n this.addEditMember(data.Itemdata);\r\n else if (data.Icondata.Name == \"Unlock\" && data.Itemdata)\r\n this.UnlockMember(data.Itemdata);\r\n else if (data.Icondata.Name == \"Add Member\" && data.Icondata.Isheader)\r\n this.addEditMember();\r\n\r\n }\r\n }\r\n\r\n myCallbackFunction = (Icondata: any, Itemdata: any): boolean => {\r\n if (Icondata.Name == \"Edit\")\r\n return true;\r\n else\r\n return this.unlock(Itemdata);\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n L&T Members\r\n Other Members\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.member_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.staff_PSNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ecc_Web_Login}}\r\n \r\n \r\n \r\n \r\n {{dataItem.eMail_Id}}\r\n \r\n \r\n \r\n \r\n {{getFormattedMobileNo(dataItem.mobile_No_Prefix, dataItem.mobile_No)}}\r\n \r\n \r\n \r\n \r\n {{dataItem.designation}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { IOrganizationViewModel } from 'src/app/ViewModel/OrganizationModel';\r\nimport { EditOrganizationComponent } from '../dialogs/organization-dialog/edit-organization-dialog.component';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'app-organization',\r\n templateUrl: './organization.component.html',\r\n styleUrls: ['./organization.component.css']\r\n})\r\nexport class OrganizationComponent implements OnInit {\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n masterShow = true;\r\n hoverClass = '';\r\n IsShowSection = false;\r\n configurationShow = false;\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n /**Organization array */\r\n public orgList: IOrganizationViewModel[] = [];\r\n\r\n constructor(private _orgService: OrganizationService, private _dialog: MatDialog, private _notificationService: NotificationService) { }\r\n\r\n ngOnInit() {\r\n this.getOrganizationList();\r\n }\r\n /**\r\n * Get organization list\r\n */\r\n getOrganizationList() {\r\n this._orgService.getOrganizationList().subscribe((data: IOrganizationViewModel[]) => {\r\n this.orgList = data.map(x => {\r\n let result: IOrganizationViewModel = {\r\n group_Id: x.group_Id, group_Code: x.group_Code, group_Name: x.group_Name, group_Short_Name: x.group_Short_Name,\r\n group_Head_Id: x.group_Head_Id, group_Logo_URL: x.group_Logo_URL, is_Active: x.is_Active, user_Id: x.user_Id,\r\n created_By: x.created_By,\r\n created_On: x.created_On,\r\n modified_By: x.modified_By,\r\n modified_On: x.modified_On\r\n };\r\n return result;\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Add/Update Organization \r\n * @param organization Organization model \r\n */\r\n addEditOrganization(organization: any | IOrganizationViewModel) {\r\n if (organization === undefined)\r\n organization = null;\r\n const dialogRef = this._dialog.open(EditOrganizationComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: organization\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n let resOrganization: IOrganizationViewModel = res.organization;\r\n if (res.response && res.response.successCode == 200 && resOrganization) {\r\n let filteredOrg: IOrganizationViewModel = this.orgList.filter(x => x.group_Id == resOrganization.group_Id)[0];\r\n if (filteredOrg) {\r\n filteredOrg.group_Short_Name = resOrganization.group_Short_Name;\r\n filteredOrg.group_Name = resOrganization.group_Name;\r\n filteredOrg.is_Active = resOrganization.is_Active;\r\n filteredOrg.group_Logo_URL = resOrganization.group_Logo_URL;\r\n filteredOrg.group_Code = resOrganization.group_Code;\r\n } else {\r\n this.orgList = [...this.orgList, ...[resOrganization]];\r\n }\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n this.getOrganizationList();\r\n }\r\n else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n }, err => { });\r\n }\r\n /**\r\n * Toggle filter\r\n */\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n onHoverTrigger(e) {\r\n this.hoverClass = 'open';\r\n this.IsShowSection = !this.IsShowSection;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Short_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Code}}\r\n \r\n \r\n \r\n \r\n {{dataItem.group_Logo_URL}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { Align } from \"@progress/kendo-angular-popup\";\r\nimport { EIPAutoCompleteComponent } from \"eipauto-complete\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectMasterService } from \"src/app/Service/projectmaster/projectmaster.service\";\r\nimport { IProjectMasterViewModel } from \"src/app/ViewModel/ProjectMasterModel\";\r\nimport { EditProjectComponent } from \"../dialogs/project-dialog/edit-project.component\";\r\nimport { EnableSimilarProject } from '../dialogs/Enable_Similar_Project/Enable_Similar_Project.component';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { IOrganizationViewModel } from 'src/app/ViewModel/OrganizationModel';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport * as moment from \"moment\";\r\n\r\n@Component({\r\n selector: 'app-projects',\r\n templateUrl: './projects.component.html',\r\n styleUrls: ['./projects.component.css']\r\n})\r\nexport class ProjectsComponent implements OnInit {\r\n public eipAnchorElementPopup: any;\r\n private eipAutoComplete!: EIPAutoCompleteComponent;\r\n private eipAutoCompleteDiv: any;\r\n public edrcAnchorElementPopup: any;\r\n private edrcAutoComplete!: EIPAutoCompleteComponent;\r\n private edrcAutoCompleteDiv: any;\r\n icList: RoleFeatureModel[] = [];\r\n businessGroups: any | IOrganizationViewModel[] = [];\r\n @ViewChild('eipAuotCompleteDiv') set eipAutoCompleteDivElement(contentDiv: any) {\r\n this.eipAutoCompleteDiv = contentDiv;\r\n }\r\n @ViewChild('eipAutoComplete') set eipAutoCompleteElement(content: EIPAutoCompleteComponent) {\r\n if (!!content) {\r\n this.eipAutoComplete = content;\r\n }\r\n }\r\n @ViewChild('edrcAutoCompleteDiv') set edrcAutoCompleteDivElement(contentDiv: any) {\r\n this.edrcAutoCompleteDiv = contentDiv;\r\n }\r\n @ViewChild('edrcAutoComplete') set edrcAutoCompleteElement(content: EIPAutoCompleteComponent) {\r\n if (!!content) {\r\n this.edrcAutoComplete = content;\r\n }\r\n }\r\n popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n IsShowEipList: boolean = false;\r\n IsShowEDRCList: boolean = false;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n public pageSize = [50, 100, 200, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n jobList: any[] = [];\r\n edrcJobList: any[] = [];\r\n memberId!: number;\r\n /**Projects list */\r\n public projectList: IProjectMasterViewModel[] = [];\r\n constructor(private _dialog: MatDialog, private _notificationService: NotificationService, public mapRoleFeatureService: MapRoleFeatureService, public projectMemberLinkService: ProjectMemberLinkService,\r\n private _commonService: CommonService, private _projectService: ProjectMasterService, private _renderer2: Renderer2, private _orgService: OrganizationService) {\r\n\r\n }\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getProjectsList();\r\n this.getIcList();\r\n this.getOrganizationList();\r\n }\r\n\r\n /**\r\n * Get projects list\r\n */\r\n getProjectsList() {\r\n this._projectService.getProjects(undefined || null, this.memberId).subscribe((data: IProjectMasterViewModel[]) => {\r\n this.projectList = data;\r\n });\r\n }\r\n /**\r\n * Get organization list\r\n */\r\n async getOrganizationList() {\r\n this.businessGroups = await this._orgService.getOrganizationList().toPromise();\r\n }\r\n async getIcList() {\r\n this.icList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"IC\").toPromise();\r\n }\r\n\r\n EnableSimilarProject(project: IProjectMasterViewModel) {\r\n if (project.project_Id)\r\n this.projectMemberLinkService.getProjectBusinessGroup(project.project_Id).subscribe((response: BusinessGroupModel[]) => {\r\n response = response.filter(each => each.is_Active);\r\n if (!response || response.length == 0) {\r\n this._notificationService.showToast(\"business group not available against\" + project.project_Description, \"Warning\");\r\n }\r\n else {\r\n const dialogRef = this._dialog.open(EnableSimilarProject, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: { project: project, IprojectList: this.projectList, isImport: false }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res) {\r\n let resproject: IProjectMasterViewModel = res.project;\r\n if (res.response && res.response.successCode == 200) {\r\n\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n }\r\n else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n }\r\n }, err => { });\r\n }\r\n });\r\n\r\n }\r\n addEditProject(project?: null | IProjectMasterViewModel) {\r\n this.IsShowEDRCList = false;\r\n this.IsShowEipList = false;\r\n if (project === undefined)\r\n project = null;\r\n const dialogRef = this._dialog.open(EditProjectComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: { project: project, isImport: false, icList: this.icList, businessGroups: this.businessGroups }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res) {\r\n let resproject: IProjectMasterViewModel = res.project;\r\n if (res.response && res.response.successCode == 200 && resproject) {\r\n this.getProjectsList();\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n }\r\n else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n }\r\n }, err => { });\r\n }\r\n\r\n copyProjectAttributes(source: IProjectMasterViewModel, destination: IProjectMasterViewModel) {\r\n destination.project_Description = source.project_Description;\r\n destination.project_Short_Description = source.project_Short_Description;\r\n destination.is_Active = source.is_Active;\r\n destination.project_Type = source.project_Type;\r\n destination.user_Id = source.user_Id;\r\n destination.is_Cloud_Storage = source.is_Cloud_Storage;\r\n destination.start_Date = source.start_Date;\r\n destination.end_Date = source.end_Date;\r\n destination.project_URL = source.project_URL;\r\n destination.project_Logo_URL = source.project_Logo_URL;\r\n destination.job_Code = source.job_Code;\r\n destination.project_Code = source.project_Code;\r\n }\r\n\r\n /**\r\n * Toggle filter\r\n */\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n /**\r\n * Toggle full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n showEipList(event: any) {\r\n this.IsShowEDRCList = false;\r\n if (this.jobList.length == 0) {\r\n this._projectService.getEipjobList({ doptCode: \"V\", dtCode: 30013, userId: 1120704, searchText: \"\" }).subscribe(res => {\r\n this.jobList = res;\r\n this.IsShowEipList = !this.IsShowEipList;\r\n this.eipAnchorElementPopup = event.target;\r\n });\r\n }\r\n else {\r\n this.IsShowEipList = !this.IsShowEipList;\r\n this.eipAnchorElementPopup = event.target;\r\n }\r\n }\r\n\r\n showEDRCList(event: any) {\r\n this.IsShowEipList = false;\r\n if (this.edrcJobList.length == 0) {\r\n this._projectService.getEDRCjobList({ search_Text: \"\", group_Code: \"\" }).subscribe(res => {\r\n this.edrcJobList = res;\r\n this.IsShowEDRCList = !this.IsShowEDRCList;\r\n this.edrcAnchorElementPopup = event.target;\r\n });\r\n }\r\n else {\r\n this.IsShowEDRCList = !this.IsShowEDRCList;\r\n this.edrcAnchorElementPopup = event.target;\r\n }\r\n }\r\n\r\n setSelectedEDRCJob(selectedJob: any) {\r\n if (selectedJob.value != -2) {\r\n this.IsShowEDRCList = false;\r\n let project: any | IProjectMasterViewModel = {\r\n project_Code: selectedJob.additionalValues.additionalValues.proj_Code,\r\n project_Short_Description: selectedJob.additionalValues.additionalValues.proj_Code,\r\n project_Description: selectedJob.additionalValues.additionalValues.proj_Description,\r\n job_Code: selectedJob.additionalValues.additionalValues.proj_Code,\r\n project_Type: 'EDRC',\r\n is_Active: true,\r\n user_Id: this.memberId,\r\n start_Date: selectedJob.additionalValues.additionalValues.proj_Start_Date,\r\n end_Date: selectedJob.additionalValues.additionalValues.proj_End_Date,\r\n iC_Id: selectedJob.additionalValues.additionalValues.iC_Id,\r\n ic_Description: ''\r\n }\r\n const dialogRef = this._dialog.open(EditProjectComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: { project: project, isImport: true, icList: this.icList }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res) {\r\n let resproject: IProjectMasterViewModel = res.project;\r\n if (res.response && res.response.successCode == 200 && resproject) {\r\n this.getProjectsList();\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n }\r\n else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n }\r\n }, err => { });\r\n }\r\n }\r\n\r\n\r\n\r\n setSelectedJob(selectedJob: any) {\r\n if (selectedJob.value != -2) {\r\n this.IsShowEipList = false;\r\n let project: any | IProjectMasterViewModel = {\r\n project_Code: selectedJob.value,\r\n project_Short_Description: selectedJob.value,\r\n project_Description: selectedJob.desc,\r\n job_Code: selectedJob.value,\r\n project_Type: 'EIP',\r\n is_Active: true,\r\n user_Id: this.memberId,\r\n iC_Id: selectedJob.iC_Id,\r\n ic_Description: ''\r\n }\r\n const dialogRef = this._dialog.open(EditProjectComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '95%',\r\n minWidth: '95vw',\r\n data: { project: project, isImport: true, icList: this.icList }\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n if (res) {\r\n let resproject: IProjectMasterViewModel = res.project;\r\n if (res.response && res.response.successCode == 200 && resproject) {\r\n this.getProjectsList();\r\n this._notificationService.showToast(res.response.successMessage, \"Success\");\r\n }\r\n else if (res.response.successCode == 205) {\r\n this._notificationService.showToast(res.response.successMessage, \"Warning\");\r\n }\r\n }\r\n }, err => { });\r\n }\r\n }\r\n}","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.project_Code}}\r\n \r\n \r\n \r\n \r\n {{dataItem.job_Code}}\r\n \r\n \r\n \r\n \r\n {{dataItem.project_Short_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.project_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ic_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.created_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.modified_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n   \r\n \r\n
\r\n
\r\n
\r\n \r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { TenderQuantityService } from 'src/app/Service/tender-quantity/tender-quantity.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-tender-quantity-add-data',\r\n templateUrl: './tender-quantity-add-data.component.html',\r\n styleUrls: ['./tender-quantity-add-data.component.css']\r\n})\r\n\r\nexport class TenderQuantityAddDataComponent implements OnInit {\r\n \r\n public currentPlaceHolder: string | undefined;\r\n public activeStatus: boolean = true;\r\n public newDescription: any;\r\n public currentActionpage: string | undefined;\r\n public suggestionValue: any[] = [];\r\n public tenderQuantityConfig: FieldConfig[] = [];\r\n public selectedDescription: any={};\r\n public postSelect :any;\r\n public keyword: any; \r\n public elementList: any[] = [];\r\n public itemList: any[] = [];\r\n public elementsearch: any;\r\n public itemsearch: any;\r\n public updatedDescription!: string;\r\n public section1: boolean = true;\r\n public section2: boolean = false;\r\n public setSelectedElementId!: number;\r\n public setSelectedItemId!: number;\r\n public discipline: any;\r\n public selectElement!: string;\r\n public selectitem!: string;\r\n public elementListId: any;\r\n public show :boolean = false;\r\n public editDiscipline!: string;\r\n public Description :any;\r\n public ItemDescription :any;\r\n public elementId: number | null | undefined;\r\n public itemId: number | null | undefined;\r\n public setDisable:boolean = false;\r\n\r\n\r\n private dynamicFormComponent!: DynamicFormComponent;\r\n\r\n\r\n @ViewChild('dynamicFormComponent') set content(content: DynamicFormComponent) { \r\n if (!!content) { \r\n this.dynamicFormComponent = content;\r\n this.getDynamicform();\r\n this.dynamicFormComponent.form.get('Discipline')?.valueChanges.subscribe(data => { \r\n if(!!data){\r\n this.discipline = data.dedId;\r\n }else{\r\n this.discipline = null;\r\n this.elementId = null; \r\n this.itemId = null; \r\n }\r\n }); \r\n }\r\n }\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public _data: any,private _projectService: ProjectInfoService,\r\n private commonService: CommonService,\r\n public dialogRef: MatDialogRef,private tenderQuantityService: TenderQuantityService,\r\n public notificationService: NotificationService){ \r\n \r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnInit() {\r\n this.currentpage();\r\n }\r\n\r\n currentpage() { \r\n switch (this._data.currentpage) {\r\n case \"element\": {\r\n this.currentActionpage = \" Add or Edit New Element\";\r\n this.currentPlaceHolder = \" Enter New Element\";\r\n this.keyword = 'tE_Description';\r\n this.suggestionValue = this._data.existData;\r\n if (!!this._data.value) {\r\n this.newDescription = this._data.value.tE_Description;\r\n this.selectedDescription = this._data.value; \r\n this.activeStatus = (this._data.value.active_Tag.toUpperCase() == \"Y\") ? true : false; \r\n }\r\n break;\r\n }\r\n case \"items\": {\r\n this.currentActionpage = \"Add or Edit New Items\";\r\n this.currentPlaceHolder = \" Enter New Item\";\r\n this.keyword = 'tI_Description';\r\n this.suggestionValue = this._data.existData;\r\n if (!!this._data.value) {\r\n this.newDescription = this._data.value.tI_Description;\r\n this.selectedDescription = this._data.value; \r\n this.activeStatus = (this._data.value.active_Tag.toUpperCase() == \"Y\") ? true : false; \r\n }\r\n break;\r\n }\r\n case \"Configure\": { \r\n this.dynamicFormComponent; \r\n this.elementList = this._data.configureValue.elementList;\r\n this.elementsearch = 'tE_Description';\r\n this.itemsearch = 'tI_Description';\r\n this.section1 = false;\r\n this.section2 = true;\r\n this.currentActionpage = \" Add or Edit New Configure\";\r\n this.itemList = this._data.configureValue.ItemsList;\r\n if (!!this._data.value) {\r\n this.show = true; \r\n this.setDisable = true;\r\n this.elementListId = this._data.value;\r\n this.currentPlaceHolder = \"Select Element Description\";\r\n this.elementId = this._data.value.tE_Id; \r\n this.itemId = this._data.value.tI_Id; \r\n this.activeStatus = (this._data.value.active_Tag.toUpperCase() == \"Y\") ? true : false; \r\n this.editDiscipline = this._data.value.deD_Description;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n addNewValue() { \r\n let existValue:[]=[]; \r\n let status:string;\r\n if(this.activeStatus ==true){\r\n status =\"Y\";\r\n }else{\r\n status =\"N\";\r\n } \r\n let obj = { Id: 0, description: this.updatedDescription, isActive: status }\r\n switch (this._data.currentpage) {\r\n case \"element\": { \r\n if(!this.newDescription){\r\n this.notificationService.showPopup(\"Please \"+this.currentPlaceHolder, \"Warning\");\r\n return;\r\n }\r\n if(!this.updatedDescription){\r\n this.notificationService.showPopup(\"Select Any Description\", \"Warning\");\r\n return;\r\n } \r\n existValue = this.suggestionValue.filter(element =>element.tE_Description == this.updatedDescription )[0];\r\n if(!existValue){ \r\n this.tenderQuantityService.PostOrEditElementDataToDp(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog();\r\n return;\r\n }\r\n });\r\n }else{\r\n this.notificationService.showPopup(\"Description Already Exists\", \"Warning\");\r\n } \r\n break;\r\n }\r\n case \"items\": {\r\n if(!this.newDescription){\r\n this.notificationService.showPopup(\"Please \"+this.currentPlaceHolder, \"Warning\");\r\n return;\r\n }\r\n if(!this.updatedDescription){\r\n this.notificationService.showPopup(\"Select Any Description\", \"Warning\");\r\n return;\r\n }\r\n existValue = this.suggestionValue.filter(element => element.tI_Description == this.updatedDescription )[0];\r\n if(!existValue){ \r\n this.tenderQuantityService.insetorPostOrEditItemDataToDp(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog();\r\n return;\r\n }\r\n });\r\n }else{\r\n this.notificationService.showPopup(\"Description Already Exists\", \"Warning\");\r\n }\r\n break;\r\n }\r\n case \"Configure\": { \r\n if(!this.discipline){\r\n this.notificationService.showPopup(\"Please select any one Discipline\", \"Warning\");\r\n return;\r\n }\r\n if(!this.elementId){\r\n this.notificationService.showPopup(\"Please select any one Element\", \"Warning\");\r\n return;\r\n }\r\n if(!this.itemId){\r\n this.notificationService.showPopup(\"Please select any one Item\", \"Warning\");\r\n return;\r\n }\r\n let obj = {\r\n \"disc_DED_Id\": this.discipline,\r\n \"tE_Id\": this.elementId ,\r\n \"tI_Id\": this.itemId,\r\n \"isActive\": status\r\n } \r\n this.tenderQuantityService.InsetConfigureDiscipline(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog();\r\n return;\r\n }\r\n });\r\n break;\r\n }\r\n } \r\n }\r\n\r\n onChangeSearch(val:any){ \r\n this.updatedDescription = val; \r\n }\r\n\r\n selectEvent(item: any) { \r\n if(!!item.tE_Description)\r\n this.updatedDescription = item.tE_Description; \r\n if(!!item.tI_Description)\r\n this.updatedDescription = item.tI_Description; \r\n }\r\n\r\n \r\n postData(item?: any) {\r\n if (!this._data.value) {\r\n this.addNewValue(); \r\n } else {\r\n this.updateValue();\r\n }\r\n }\r\n\r\n\r\n updateValue() { \r\n let status: string; \r\n if(this.activeStatus == true){\r\n status =\"Y\";\r\n }else{\r\n status =\"N\";\r\n } \r\n switch (this._data.currentpage) { \r\n case \"element\": { \r\n let UpdatedDescription:String; \r\n UpdatedDescription = this._data.value.tE_Description; \r\n if(!!this.updatedDescription){\r\n UpdatedDescription = this.updatedDescription;\r\n } \r\n let existValue = this.suggestionValue.filter(element => element.tE_Description == UpdatedDescription && element.active_Tag == status)[0];\r\n let obj = { tE_Id : this._data.value.tE_Id,description: UpdatedDescription, isActive: status }; \r\n if (!!existValue) {\r\n this.notificationService.showPopup(\"Description Already Exists\", \"Warning\");\r\n } else { \r\n this.tenderQuantityService.PostOrEditElementDataToDp(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog();\r\n return;\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n case \"items\": { \r\n let UpdatedDescription:String;\r\n UpdatedDescription = this._data.value.tI_Description; \r\n if(!!this.updatedDescription){\r\n UpdatedDescription = this.updatedDescription;\r\n } \r\n let existValue: [] = this.suggestionValue.filter(element => element.tI_Description == UpdatedDescription && element.active_Tag == status)[0];\r\n let obj = { tI_Id: this._data.value.tI_Id, description: UpdatedDescription, isActive: status }; \r\n if (!!existValue) {\r\n this.notificationService.showPopup(\"Description Already Exists \", \"Warning\");\r\n } else {\r\n this.tenderQuantityService.insetorPostOrEditItemDataToDp(obj).subscribe(data => { \r\n if (data.successCode == 200) {\r\n this.closeDialog();\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n return;\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n case \"Configure\": { \r\n if(!!this._data && !!this._data.value.disc_DED_Id){\r\n this.discipline = this._data.value.disc_DED_Id;\r\n } \r\n let obj = {\r\n \"disc_DED_Id\": this.discipline,\r\n \"tE_Id\": this._data.value.tE_Id,\r\n \"tI_Id\": this._data.value.tI_Id,\r\n \"isActive\": status\r\n } \r\n this.tenderQuantityService.InsetConfigureDiscipline(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.closeDialog(); \r\n }\r\n });\r\n break;\r\n }\r\n } \r\n }\r\n\r\n \r\n\r\n getTenderQuantitySetFieldsConfig(): FieldConfig[] {\r\n return [\r\n {\r\n type: 'select',\r\n name: 'Discipline',\r\n label: 'Discipline',\r\n deDescription: 'discipline',\r\n module_id: Module.ScheduleDocument,\r\n validations: [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: \"Please select discipline\"\r\n }\r\n ],\r\n value: new BehaviorSubject(null)\r\n }\r\n ]\r\n };\r\n \r\n getDynamicform() {\r\n this.tenderQuantityConfig = this.getTenderQuantitySetFieldsConfig();\r\n this.dynamicFormComponent.fields = this.tenderQuantityConfig;\r\n this.dynamicFormComponent.createControl();\r\n };\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

{{currentActionpage}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Active Status:\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{currentActionpage}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Selected Discipline\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ data.tE_Description }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{data.tI_Description}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Active Status:\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, QueryList, ViewChildren, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TenderQuantityService } from 'src/app/Service/tender-quantity/tender-quantity.service';\r\nimport { TenderQuantityAddDataComponent } from '../tender-quantity-add-data/tender-quantity-add-data.component';\r\n\r\n@Component({\r\n selector: 'app-tender-quantity',\r\n templateUrl: './tender-quantity.component.html',\r\n styleUrls: ['./tender-quantity.component.css']\r\n})\r\nexport class TenderQuantityComponent implements OnInit {\r\n public elementList: any[] = [];\r\n public ItemsList: any[] = [];\r\n public DiscElementItemList: any[] = [];\r\n public suggestionValue : any[] = []; \r\n public enableElementFilter = false;\r\n public enableitemFilter = false;\r\n public enableconfigureFilter = false;\r\n public configureValue : any| any[] =[];\r\n constructor(private dialog: MatDialog, private tenderQuantityService: TenderQuantityService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.getData();\r\n }\r\n\r\n\r\n getData() {\r\n this.tenderQuantityService.getElementDataToDp().subscribe(data => { \r\n this.elementList = data; \r\n this.elementList.forEach((value,i)=>{ \r\n value[\"index\"] = i+1;\r\n if(value.active_Tag ==\"Y\"){\r\n value.active_status = \"Yes\"; \r\n }else{\r\n value.active_status = \"No\";\r\n }\r\n });\r\n });\r\n this.tenderQuantityService.getItemDataToDp().subscribe(data => {\r\n this.ItemsList = data; \r\n this.ItemsList.forEach((value,i)=>{ \r\n value[\"index\"] = i+1;\r\n if(value.active_Tag ==\"Y\"){\r\n value.active_status = \"Yes\"; \r\n }else{\r\n value.active_status = \"No\";\r\n }\r\n });\r\n \r\n })\r\n this.tenderQuantityService.getDiscElementItemData().subscribe(data => {\r\n this.DiscElementItemList = data;\r\n this.DiscElementItemList.forEach((value,i)=>{ \r\n value[\"index\"] = i+1;\r\n if(value.active_Tag ==\"Y\"){\r\n value.active_status = \"Yes\"; \r\n }else{\r\n value.active_status = \"No\";\r\n }\r\n }); \r\n });\r\n }\r\n\r\n AddNewData(currentpage?:String,val?: any ,state?:any) {\r\n switch (currentpage){\r\n case 'element' :{\r\n this.suggestionValue = this.elementList;\r\n break;\r\n }\r\n case 'items' :{\r\n this.suggestionValue = this.ItemsList;\r\n break;\r\n }\r\n default :{ \r\n this.elementList = this.elementList.filter(data=>data.active_Tag == \"Y\");\r\n this.ItemsList = this.ItemsList.filter(data=>data.active_Tag == \"Y\"); \r\n this.configureValue[\"elementList\"] = this.elementList;\r\n this.configureValue[\"ItemsList\"] = this.ItemsList;\r\n break;\r\n }\r\n }\r\n let typeAction = {\r\n \"value\":val,\r\n \"currentpage\":currentpage,\r\n \"existData\" :this.suggestionValue,\r\n \"configureValue\" : this.configureValue,\r\n \"state\":state\r\n } \r\n let dialogRef = this.dialog.open(TenderQuantityAddDataComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw',\r\n data: typeAction\r\n });\r\n dialogRef.afterClosed().subscribe(data => {\r\n this.getData();\r\n });\r\n } \r\n\r\n editHandler(currentpage:string,val:any,) {\r\n let state=\"edit\";\r\n this.AddNewData(currentpage,val,state);\r\n }\r\n\r\n toggleFilter(tap:any) { \r\n switch (tap){\r\n case 'element' :{\r\n this.enableElementFilter = !this.enableElementFilter;\r\n break;\r\n }\r\n case 'items' :{\r\n this.enableitemFilter = !this.enableitemFilter;\r\n break;\r\n }\r\n case 'Configure' :{\r\n this.enableconfigureFilter = !this.enableconfigureFilter;\r\n break;\r\n }\r\n } \r\n }\r\n\r\n tabClick(event:any){\r\n this.enableElementFilter = false;\r\n this.enableitemFilter = false;\r\n this.enableconfigureFilter = false;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { ITransmittalDistributionModel, ITransmittalReceiverDetails } from 'src/app/ViewModel/TransmittalTemplateModel';\r\n\r\n@Component({\r\n selector: 'app-transmittal-template-copy',\r\n templateUrl: './transmittal-template-copy.component.html',\r\n styleUrls: ['./transmittal-template-copy.component.css']\r\n})\r\nexport class TransmittalTemplateCopyComponent implements OnInit {\r\n\r\n\r\n transmittalForm: FormGroup | undefined;\r\n isCheckAction: boolean = false;\r\n Distribution_List: any[] = [];\r\n\r\n constructor(private _formBuilder: FormBuilder, private _notificationService: NotificationService,\r\n private _transmittalService: TransmittalService, @Inject(MAT_DIALOG_DATA) public _data: any, public dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit() {\r\n this.Distribution_List = this._data.DistributionList.map((x: { category: any; copy_Type: any; quantity: any; receiver_Group: any; remarks: any; }) => {\r\n let obj = {\r\n category: x.category,\r\n copy_Type: x.copy_Type,\r\n quantity: x.quantity,\r\n receiver_Group: x.receiver_Group,\r\n remarks: x.remarks\r\n }\r\n return obj;\r\n })\r\n this.transmittalForm = this._formBuilder.group({\r\n TemplateNewName: new FormControl('', [Validators.required])\r\n })\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close(this.isCheckAction);\r\n }\r\n\r\n\r\n postData() {\r\n let newTemplateName: string = this.transmittalForm?.get('TemplateNewName')?.value\r\n if (!newTemplateName) {\r\n return;\r\n }\r\n let dublicateData = this._data.TemplateDetails.filter((data: { template_Name: string; }) => data.template_Name == newTemplateName.trim())[0];\r\n if (!!dublicateData) {\r\n this._notificationService.showPopup(\"Entered TemplateName already Exists\", \"Warning\");\r\n return;\r\n }\r\n let transmittalDetailsInput = {\r\n \"category\": this._data.TransmittalData[0].category,\r\n \"group_Id\": this._data.TransmittalData[0].group_Id,\r\n \"is_Active\": true,\r\n \"project_Id\": this._data.TransmittalData[0].project_Id,\r\n \"quantity\": this._data.TransmittalData[0].quantity,\r\n \"template_Id\": undefined,\r\n \"template_Name\": newTemplateName,\r\n \"template_Remarks\": this._data.TransmittalData[0].template_Remarks,\r\n \"template_Subject\": this._data.TransmittalData[0].template_Subject,\r\n \"userId\": 162067\r\n }\r\n this._transmittalService.InsertUpdateTransmittalDetails(transmittalDetailsInput).subscribe((x: StandardOutputModel) => {\r\n if (x.successCode == 200) {\r\n let templateId: number = +x.result;\r\n let transmittalReceiverDetails = this.saveTransmittalReceiverDetails(templateId);\r\n let transmittalDistributionDetails = this.saveTransmittalDistributionDetails(templateId);\r\n forkJoin([transmittalReceiverDetails,\r\n transmittalDistributionDetails]).subscribe((res: any[]) => {\r\n this._notificationService.showPopup(\"Transmittal Template has been saved successfully\", \"Success\");\r\n this.isCheckAction = true;\r\n this.closeDialog();\r\n })\r\n }\r\n else {\r\n this._notificationService.showPopup(x.successMessage, \"Warning\");\r\n }\r\n })\r\n }\r\n\r\n saveTransmittalReceiverDetails(templateId: number) {\r\n let transmittalReceiverInput: ITransmittalReceiverDetails = {\r\n 'template_Id': templateId,\r\n 'receiverFromDetails': this._data.TransmittalReceiverDetails[0].receiverFromDetails,\r\n 'receiverToDetails': this._data.TransmittalReceiverDetails[0].receiverToDetails,\r\n 'receiverCcDetails': this._data.TransmittalReceiverDetails[0].receiverCcDetails,\r\n 'is_Active': true,\r\n 'userId': this._data.userId,\r\n }\r\n return this._transmittalService.InsertUpdateTransmittalReceiverDetails(transmittalReceiverInput);\r\n }\r\n\r\n saveTransmittalDistributionDetails(templateId: number) {\r\n let transmittalDistributionInput: ITransmittalDistributionModel = {\r\n 'project_Id': this._data.project_Id,\r\n 'template_Id': templateId,\r\n 'DistributionGroupDetails': this.Distribution_List,\r\n 'is_Active': true,\r\n 'userId': 162067\r\n }\r\n return this._transmittalService.InsertUpdateTransmittalDistributionDetails(transmittalDistributionInput)\r\n }\r\n\r\n getDistribution() {\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","
\r\n
\r\n
\r\n

Copy Transmittal template

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Enter new Transmittal Name *\r\n \r\n \r\n \r\n TemplateNewName is required \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, ElementRef, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { MatChipList } from '@angular/material/chips';\r\nimport { Observable, of, Subject, forkJoin } from 'rxjs';\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ITransmittalGroupViewModel, ITransmittalMemberModel, ITransmittalReceiverDetails, IReceiverDetails, ITransmittalDistributionModel, IDistributionDetails, ITransmittalTemplateModel, ITransmittalDistributionViewModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { groupBy, map, sortBy } from 'lodash';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { TransmittalTemplateCopyComponent } from '../transmittal-template-copy/transmittal-template-copy.component';\r\n\r\nconst createFormGroup = (dataItem: ITransmittalGroupViewModel) => new FormGroup({\r\n 'quantity': new FormControl(dataItem.quantity, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'category': new FormControl(dataItem.category, [Validators.required]),\r\n 'type': new FormControl(dataItem.type, [Validators.required]),\r\n 'remarks': new FormControl(dataItem.remarks)\r\n});\r\n\r\nconst matches = (el: { matches: any; msMatchesSelector: any; }, selector: any) => (el.matches || el.msMatchesSelector).call(el, selector);\r\n@Component({\r\n selector: 'app-transmittal-template',\r\n templateUrl: './transmittal-template.component.html',\r\n styleUrls: ['./transmittal-template.component.css']\r\n})\r\nexport class TransmittalTemplateComponent implements OnInit {\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n enableFilter: boolean = false;\r\n enableFullscreen: boolean = false;\r\n distributionList: ITransmittalGroupViewModel[] = [];\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n multiple = false;\r\n selected_Category: any;\r\n selected_Type: any;\r\n enablechkLstFullscreen = false;\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n editedRowIndex?: number;\r\n public formGroup?: FormGroup;\r\n currentEditGroupViewModel?: ITransmittalGroupViewModel;\r\n transmittalForm!: FormGroup;\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n masterMemberIds!: number[];\r\n ccFilteredMembers!: Observable;\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n categoryList: IProjectElementDetailsOutput[] = [];\r\n copyTypeList: IProjectElementDetailsOutput[] = [];\r\n distributionGroup: any[] = [];\r\n templateDetails: ITransmittalTemplateModel[] = [];\r\n selectedFrom!: number | null;\r\n selectedTo!: number | null;\r\n selectedCategory?: number | null;\r\n template_Id: number | null = null;\r\n selectedgridCategory!: IProjectElementDetailsOutput;\r\n selectedgridType!: IProjectElementDetailsOutput;\r\n @ViewChild('ccInput')\r\n ccInput!: ElementRef;\r\n @ViewChild('ccauto')\r\n matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList')\r\n ccChipList!: MatChipList;\r\n ccfilter$!: Observable;\r\n clearTemplateSelected: boolean = false;\r\n private _nextPage$ = new Subject();\r\n\r\n constructor(private _formBuilder: FormBuilder, private _transmittalService: TransmittalService, private dialog: MatDialog,\r\n private _projService: ProjectInfoService, private _commonService: CommonService, private renderer: Renderer2, private _notificationService: NotificationService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.createForm();\r\n this.getElementDetails('Message Category');\r\n this.getElementDetails('Copy Type');\r\n this._transmittalService.getProjectMembers()?.subscribe((res: ProjectMemberModel[]) => {\r\n this.masterMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo,\r\n groupName: x.memberName + ' - ' + x.groupName,\r\n };\r\n return transmittalMember;\r\n });\r\n this.masterMemberIds = this.masterMembers.map(x => x.memberId);\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.filterMembers();\r\n this.getTransmittalDetails();\r\n })\r\n }\r\n\r\n private createSerachFilter(formControlName: string): Observable {\r\n // Note: listen for search text changes\r\n let x: any = this.transmittalForm.get(formControlName);\r\n if (x)\r\n return x.valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\"))\r\n else return new Observable();\r\n }\r\n\r\n private createForm(): void {\r\n this.transmittalForm = this._formBuilder.group({\r\n template: new FormControl('', [Validators.required]),\r\n subject: new FormControl('', [Validators.required]),\r\n quantity: new FormControl('', [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n category: new FormControl('', Validators.required),\r\n formCategory: new FormControl('', Validators.required),\r\n remarks: new FormControl(),\r\n ccMembersCtrl: new FormControl(),\r\n ccMembers: [[], [Validators.required, this.validateMemberSelection.bind(this)]],\r\n fromMember: new FormControl('', Validators.required),\r\n formFromMember: new FormControl('', Validators.required),\r\n toMember: new FormControl('', Validators.required),\r\n formToMember: new FormControl('', Validators.required)\r\n });\r\n }\r\n\r\n private filterMembers(): void {\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n }\r\n\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap(filter => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap((x: any) => currentPage++),\r\n scan((allMembers, newMembers) => allMembers.concat(newMembers), []),\r\n );\r\n }));\r\n }\r\n\r\n // Fake backend api\r\n private getMembersFake(startsWith: string, page: number): Observable {\r\n const take = startsWith == \"\" ? ((!!this.masterMembers && this.masterMembers.length > 0) ? this.masterMembers.length : 0) : 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter((option: any) => option.memberName.toLowerCase().includes(startsWith.toLowerCase()));\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n\r\n\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n }\r\n else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n resetCcMemberFilter() {\r\n this.transmittalForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.ccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n if (this.distributionGroup.filter(x => x.receiver_Group == member.groupBy).length > 0) {\r\n let indexRow = this.distributionGroup.findIndex(x => x.receiver_Group == member.groupBy);\r\n let index = this.distributionGroup[indexRow].members.findIndex((x: { memberId: number; }) => x.memberId == member.memberId);\r\n if (this.distributionGroup[indexRow].members.length == 1) {\r\n this.distributionGroup.splice(indexRow, 1);\r\n }\r\n else {\r\n if (this.distributionGroup[indexRow].members.length > 1) {\r\n this.distributionGroup[indexRow].members.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n // use getter method to access toMembers control value easily\r\n get toMember(): ITransmittalMemberModel {\r\n return this.transmittalForm.get('toMember')?.value;\r\n }\r\n\r\n get ccFormMembers() {\r\n return this.transmittalForm.get('ccMembers');\r\n }\r\n\r\n get fromMember(): ITransmittalMemberModel {\r\n return this.transmittalForm.get('fromMember')?.value;\r\n }\r\n\r\n onScroll() {\r\n //Note: This is called multiple times after the scroll has reached the 80% threshold position.\r\n // this._nextPage$.next();\r\n }\r\n\r\n validateMemberSelection(abstractControl: AbstractControl): ValidationErrors | null {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (!!selectedValue) {\r\n selectedValue = selectedValue.map(x => x.memberId);\r\n }\r\n if (selectedValue && !selectedValue.every(member => this.masterMemberIds.includes(member))) {\r\n return { IsError: true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n public getElementDetails(elementName: string) {\r\n\r\n this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Transmittal, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Message Category\":\r\n this.categoryList = res;\r\n break;\r\n case \"Copy Type\":\r\n this.copyTypeList = res;\r\n break;\r\n }\r\n }, err => { });\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"transmittal\":\r\n this.transmittalForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n\r\n }\r\n\r\n getGroupByValue(member: ITransmittalMemberModel): number | null | undefined {\r\n return member.groupBy;\r\n }\r\n\r\n onGroupByChange(value: number, member: ITransmittalMemberModel) {\r\n if (typeof Number(value) === \"number\")\r\n member.groupBy = value;\r\n else\r\n member.groupBy = null;\r\n }\r\n\r\n showGroupView() {\r\n if (this.ccMembers.filter(x => !x.groupBy).length > 0) {\r\n this._notificationService.showPopup(\"Please enter group by value for all CC members\", \"Warning\");\r\n return;\r\n }\r\n let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n let existingDistributionList: ITransmittalGroupViewModel[] = this.distributionList;\r\n this.distributionList = groupByResult.map(x => {\r\n let groupBy: any = x[0].groupBy;\r\n let category: any = null;\r\n let type: any = null;\r\n let quantity: any = null;\r\n let remarks: any = \"\";\r\n if (!!existingDistributionList && existingDistributionList.length > 0) {\r\n let groupView: ITransmittalGroupViewModel = existingDistributionList.filter(dl => dl.receiver_Group == x[0].groupBy)[0];\r\n if (!!groupView) {\r\n category = groupView.category;\r\n type = groupView.type;\r\n quantity = groupView.quantity;\r\n remarks = groupView.remarks;\r\n }\r\n }\r\n let distributerViewModel: ITransmittalGroupViewModel = {\r\n receiver_Group: groupBy,\r\n members: x,\r\n category: category,\r\n type: type,\r\n remarks: remarks,\r\n quantity: quantity\r\n };\r\n\r\n return distributerViewModel;\r\n })\r\n }\r\n\r\n\r\n copy_Transmittal() {\r\n if (!this.template_Id) {\r\n this._notificationService.showPopup(\"Choose Template Name\", \"Warning\");\r\n return;\r\n }\r\n let transmittalData = {\r\n \"project_Id\": this.projectId,\r\n \"userId\": this.memberId,\r\n \"TransmittalData\": this.getTransmittalData,\r\n \"TransmittalReceiverDetails\": this.getTransmittalReceiverDetails,\r\n \"DistributionList\": this.copyDistribution,\r\n \"TemplateDetails\": this.templateDetails\r\n }\r\n let dialogRef = this.dialog.open(TransmittalTemplateCopyComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '60%',\r\n maxWidth: '60vw',\r\n data: transmittalData\r\n });\r\n dialogRef.afterClosed()?.subscribe(data => {\r\n if (data == true) {\r\n this.cancelTransmittalTemplate();\r\n this.template_Id = null;\r\n this.templateDetails = this.tempTransmital;\r\n // this.getTransmittalDetails(); \r\n }\r\n });\r\n }\r\n\r\n\r\n getMemberNames(dataItem: ITransmittalMemberModel[]): string {\r\n return dataItem.map(x => x.memberName).join(' / ');\r\n }\r\n\r\n getElementType(element: any): string {\r\n if (!!element && element.length > 0) {\r\n return element.map((x: { dedShortDescription: string; }) => x.dedShortDescription).toString();\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n getElementDesc(element: IProjectElementDetailsOutput): string {\r\n if (!!element)\r\n return element.dedShortDescription + ' - ' + element.dedDescription;\r\n return '';\r\n }\r\n\r\n /**\r\n * Element Cell Click Handler\r\n */\r\n public cellClickHandler({ isEdited, dataItem, rowIndex }: any): void {\r\n if (isEdited || (this.formGroup && !this.formGroup.valid)) {\r\n return;\r\n }\r\n\r\n this.saveCurrent();\r\n this.formGroup = createFormGroup(dataItem);\r\n this.editedRowIndex = rowIndex;\r\n this.currentEditGroupViewModel = dataItem;\r\n this.grid.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n private saveCurrent(): void {\r\n if (this.formGroup) {\r\n if (this.currentEditGroupViewModel) {\r\n this.currentEditGroupViewModel.type = this.formGroup.get('type')?.value;\r\n this.currentEditGroupViewModel.category = this.formGroup.get('category')?.value;\r\n this.currentEditGroupViewModel.quantity = this.formGroup.get('quantity')?.value;\r\n this.currentEditGroupViewModel.remarks = this.formGroup.get('remarks')?.value;\r\n if (this.distributionGroup.filter(x => this.currentEditGroupViewModel && x.receiver_Group == this.currentEditGroupViewModel.receiver_Group).length > 0) {\r\n let index = this.distributionGroup.findIndex(x => this.currentEditGroupViewModel && x.receiver_Group == this.currentEditGroupViewModel.receiver_Group);\r\n this.distributionGroup.splice(index, 1);\r\n }\r\n this.distributionGroup.push(this.currentEditGroupViewModel);\r\n }\r\n this.closeEditor();\r\n }\r\n }\r\n /**\r\n * Close the row editor\r\n */\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n this.editedRowIndex = undefined;\r\n this.currentEditGroupViewModel = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n\r\n\r\n editRowDynamic(dataItem: any) {\r\n this.formGroup = createFormGroup(dataItem);\r\n let rowIndex: any;\r\n for (let i = 0; i < this.distributionList.length; i++) {\r\n if (this.distributionList[i].receiver_Group == dataItem.receiver_Group) {\r\n rowIndex = i;\r\n break;\r\n }\r\n }\r\n if (this.editedRowIndex && this.editedRowIndex >= 0) {\r\n this.grid.closeRow(this.editedRowIndex);\r\n }\r\n if (!!dataItem.category) {\r\n this.selected_Category = dataItem.category.dedId;\r\n this.formGroup.get('category')?.setValue(this.selected_Category);\r\n }\r\n if (!!dataItem.type) {\r\n this.selected_Type = dataItem.type.dedId;\r\n this.formGroup.get('type')?.setValue(this.selected_Type);\r\n }\r\n this.editedRowIndex = rowIndex;\r\n this.formGroup = createFormGroup(dataItem);\r\n this.editedRowIndex = rowIndex;\r\n this.editedRowIndex = rowIndex;\r\n this.currentEditGroupViewModel = dataItem;\r\n this.grid.editRow(rowIndex);\r\n\r\n }\r\n\r\n editRowData({ sender, rowIndex, dataItem }: any) {\r\n //closing previous row, if anything opened\r\n if (this.editedRowIndex && this.editedRowIndex >= 0) {\r\n sender.closeRow(this.editedRowIndex);\r\n }\r\n this.editedRowIndex = rowIndex;\r\n this.formGroup = createFormGroup(dataItem);\r\n this.editedRowIndex = rowIndex;\r\n\r\n if (!!dataItem.category) {\r\n this.selected_Category = dataItem.category.dedId;\r\n this.formGroup.get('category')?.setValue(dataItem.category.dedId);\r\n } else {\r\n this.selected_Category = null;\r\n this.formGroup.get('category')?.setValue(null);\r\n }\r\n\r\n if (!!dataItem.type && dataItem.type.length > 0) {\r\n this.selected_Type = dataItem.type.map((x: { dedId: any; }) => x.dedId);\r\n this.formGroup.get('type')?.setValue(this.selected_Type);\r\n } else {\r\n this.selected_Type = [];\r\n this.formGroup.get('type')?.setValue([]);\r\n }\r\n this.formGroup.get('quantity')?.setValue(dataItem.quantity);\r\n this.editedRowIndex = rowIndex;\r\n this.currentEditGroupViewModel = dataItem;\r\n sender.editRow(rowIndex);\r\n }\r\n\r\n UpdateRowData({ sender, rowIndex, dataItem }: any) {\r\n if (this.formGroup?.valid) {\r\n this.saveCurrent();\r\n sender.closeRow(rowIndex);\r\n } else {\r\n this._notificationService.showToast('Please Fill all Required Fields', \"Error\");\r\n }\r\n\r\n }\r\n\r\n cancelRowData({ sender, rowIndex, dataItem }: any) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n\r\n onCategoryChange(val: any) {\r\n if (val.value != '-2') {\r\n this.formGroup?.get('category')?.setValue(val.additionalValues.additionalValues);\r\n } else {\r\n this.formGroup?.get('category')?.setValue(undefined);\r\n }\r\n }\r\n\r\n onTypeChange(event: any) {\r\n if (!!event) {\r\n if (event.emittingList.length > 0) {\r\n this.formGroup?.get('type')?.setValue(event.emittingList.map((x: { additionalValues: any; }) => x.additionalValues));\r\n }\r\n } else {\r\n this.formGroup?.get('type')?.setValue(undefined);\r\n }\r\n }\r\n\r\n\r\n saveTransmittalTemplate() {\r\n if (!this.transmittalForm.valid) {\r\n this._notificationService.showPopup(\"Distribution group details empty.Kindly add the group details\", \"Warning\");\r\n return;\r\n }\r\n\r\n let findEmptyfields: any;\r\n findEmptyfields = this.distributionList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n return (!data.type || !data.category || !data.quantity)\r\n });\r\n if (findEmptyfields.length > 0) {\r\n\r\n this.editRowDynamic(findEmptyfields[0])\r\n } else {\r\n if (this.transmittalForm.valid && this.distributionGroup.length > 0) {\r\n let transmittalDetailsInput: ITransmittalTemplateModel = {\r\n template_Id: this.template_Id,\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n template_Name: this.transmittalForm.get(\"template\")?.value,\r\n template_Subject: this.transmittalForm.get(\"subject\")?.value,\r\n quantity: this.transmittalForm.get(\"quantity\")?.value,\r\n template_Remarks: this.transmittalForm.get(\"remarks\")?.value,\r\n category: this.transmittalForm.get(\"category\")?.value.dedId,\r\n is_Active: true,\r\n userId: this.memberId,\r\n };\r\n this._transmittalService.InsertUpdateTransmittalDetails(transmittalDetailsInput).subscribe((x: StandardOutputModel) => {\r\n if (x.successCode == 200) {\r\n let templateId: number = +x.result;\r\n let transmittalReceiverDetails = this.saveTransmittalReceiverDetails(templateId);\r\n let transmittalDistributionDetails = this.saveTransmittalDistributionDetails(templateId);\r\n forkJoin([transmittalReceiverDetails,\r\n transmittalDistributionDetails]).subscribe((res: any[]) => {\r\n this._notificationService.showPopup(\"Transmittal Template has been saved successfully\", \"Success\")\r\n })\r\n //this.getTransmittalDetails();\r\n this.cancelTransmittalTemplate();\r\n this.templateDetails = this.tempTransmital;\r\n }\r\n else {\r\n this._notificationService.showPopup(x.successMessage, \"Warning\");\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n private saveTransmittalReceiverDetails(templateId: number) {\r\n let fromMembers: ITransmittalMemberModel[] = [];\r\n fromMembers.push(this.fromMember);\r\n let toMembers: ITransmittalMemberModel[] = [];\r\n toMembers.push(this.toMember);\r\n let transmittalReceiverInput: ITransmittalReceiverDetails = {\r\n template_Id: templateId,\r\n receiverFromDetails: fromMembers.map(x => {\r\n let fromMember: IReceiverDetails = {\r\n member_Id: x.memberId,\r\n receiver_Type: 1,\r\n receiver_Group: 0,\r\n sort_By: 1\r\n };\r\n return fromMember;\r\n\r\n }),\r\n receiverToDetails: toMembers.map(x => {\r\n let toMember: IReceiverDetails = {\r\n member_Id: x.memberId,\r\n receiver_Type: 2,\r\n receiver_Group: 0,\r\n sort_By: 1\r\n };\r\n return toMember;\r\n\r\n }),\r\n receiverCcDetails: this.ccMembers.map(x => {\r\n let ccMember: IReceiverDetails = {\r\n member_Id: x.memberId,\r\n receiver_Type: 3,\r\n receiver_Group: x.groupBy,\r\n sort_By: 1\r\n };\r\n return ccMember;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n\r\n }\r\n return this._transmittalService.InsertUpdateTransmittalReceiverDetails(transmittalReceiverInput);\r\n }\r\n\r\n private saveTransmittalDistributionDetails(templateId: number) {\r\n let transmittalDistributionInput: ITransmittalDistributionModel = {\r\n project_Id: this.projectId,\r\n template_Id: templateId,\r\n DistributionGroupDetails: this.distributionGroup.map(x => {\r\n let distDetails: IDistributionDetails = {\r\n receiver_Group: x.receiver_Group,\r\n quantity: x.quantity,\r\n category: x.category.dedId,\r\n copy_Type: x.type.map((x: { dedShortDescription: any; }) => x.dedShortDescription).toString(),\r\n remarks: x.remarks\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n\r\n }\r\n return this._transmittalService.InsertUpdateTransmittalDistributionDetails(transmittalDistributionInput);\r\n }\r\n tempTransmital: ITransmittalTemplateModel[] = [];\r\n public getTransmittalDetails() {\r\n this._transmittalService.GetTransmittalDetails({ project_Id: this.projectId, group_Id: this.groupId })\r\n .subscribe((res: ITransmittalTemplateModel[]) => {\r\n this.templateDetails = res;\r\n this.tempTransmital = res;\r\n }, err => { });\r\n }\r\n getSelected_Type: any[] = [];\r\n getTransmittalData: any[] = [];\r\n getTransmittalReceiverDetails: any[] = [];\r\n copyDistribution: any[] = [];\r\n changeTransmittalTemplateList(event: { value: any; }) {\r\n if (event.value != \"-2\") {\r\n this.cancelTransmittalTemplate();\r\n this.templateDetails = this.tempTransmital;\r\n this.template_Id = event.value;\r\n this._transmittalService.GetTransmittalDetails({ project_Id: this.projectId, group_Id: this.groupId, template_Id: event.value })\r\n .subscribe((res: ITransmittalTemplateModel[]) => {\r\n this.getTransmittalData = res;\r\n this.transmittalForm.get(\"template\")?.setValue(res[0].template_Name);\r\n this.transmittalForm.get(\"subject\")?.setValue(res[0].template_Subject);\r\n this.transmittalForm.get(\"remarks\")?.setValue(res[0].template_Remarks);\r\n this.transmittalForm.get(\"quantity\")?.setValue(res[0].quantity);\r\n this.selectedCategory = res[0].category;\r\n let selValue = this.categoryList.filter(x => this.selectedCategory == x.dedId);\r\n this.transmittalForm.get(\"formCategory\")?.setValue(selValue[0].dedDescription);\r\n });\r\n this._transmittalService.GetTransmittalReceiverDetails({ template_Id: event.value })\r\n .subscribe((res: ITransmittalReceiverDetails[]) => {\r\n this.getTransmittalReceiverDetails = res;\r\n let transmittalReceiverInput: ITransmittalReceiverDetails[] = res;\r\n let fromMembers: ITransmittalMemberModel[] = this.getTransmittalMembers(transmittalReceiverInput[0].receiverFromDetails);\r\n if (!!fromMembers && !!fromMembers[0]) {\r\n this.selectedFrom = fromMembers[0].memberId;\r\n this.transmittalForm.get(\"formFromMember\")?.setValue(this.selectedFrom);\r\n }\r\n let toMembers: ITransmittalMemberModel[] = this.getTransmittalMembers(transmittalReceiverInput[0].receiverToDetails);\r\n if (!!toMembers && !!toMembers[0]) {\r\n this.selectedTo = toMembers[0].memberId;\r\n\r\n this.transmittalForm.get(\"formToMember\")?.setValue(this.selectedTo);\r\n }\r\n this.ccMembers = this.getTransmittalMembers(transmittalReceiverInput[0].receiverCcDetails);\r\n if (this.ccMembers != null) {\r\n this.ccFormMembers?.setValue([...this.ccMembers]);\r\n }\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n\r\n let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n this._transmittalService.GetTransmittalDistributionDetails({ template_Id: event.value })\r\n .subscribe((res: ITransmittalDistributionViewModel[]) => {\r\n this.copyDistribution = res;\r\n this.distributionList = res.map(x => {\r\n this.getSelected_Type = [];\r\n let selected_type: any[];\r\n selected_type = x.copy_Type.toString().replace(/-/g, \"\").split(',');\r\n for (let i = 0; i < selected_type.length; i++) {\r\n for (let j = 0; j < this.copyTypeList.length; j++) {\r\n if (selected_type[i] == this.copyTypeList[j].dedShortDescription) {\r\n this.getSelected_Type.push(this.copyTypeList[j]);\r\n }\r\n }\r\n }\r\n let distributerViewModel: any = {\r\n receiver_Group: x.receiver_Group,\r\n members: groupByResult.filter(y => y.filter(z => z.groupBy == x.receiver_Group)[0])[0],\r\n category: this.categoryList.filter(y => y.dedId == x.category)[0],\r\n\r\n type: this.getSelected_Type,\r\n remarks: x.remarks,\r\n quantity: x.quantity\r\n };\r\n return distributerViewModel;\r\n })\r\n\r\n this.distributionGroup = this.distributionList;\r\n });\r\n });\r\n\r\n }\r\n else {\r\n this.cancelTransmittalTemplate();\r\n this.templateDetails = this.tempTransmital;\r\n }\r\n }\r\n\r\n private getTransmittalMembers(members: IReceiverDetails[]): ITransmittalMemberModel[] {\r\n return members.filter(o => this.masterMembers.some(({ memberId }) => o.member_Id === memberId)).map(x => {\r\n let member: ITransmittalMemberModel = {\r\n memberId: x.member_Id,\r\n memberName: x.member_Name,\r\n memberShortName: this.masterMembers.filter(y => y.memberId == x.member_Id)[0].memberShortName,\r\n eMailId: this.masterMembers.filter(y => y.memberId == x.member_Id)[0].eMailId,\r\n staffPSNo: this.masterMembers.filter(y => y.memberId == x.member_Id)[0].staffPSNo,\r\n mobileNo: this.masterMembers.filter(y => y.memberId == x.member_Id)[0].mobileNo,\r\n groupBy: x.receiver_Group\r\n };\r\n return member;\r\n });\r\n }\r\n\r\n cancelTransmittalTemplate() {\r\n\r\n this.distributionList = [];\r\n this.selectedCategory = null;\r\n this.selectedFrom = null;\r\n this.selectedTo = null;\r\n this.transmittalForm.get(\"template\")?.setValue('');\r\n this.transmittalForm.get(\"subject\")?.setValue('');\r\n this.transmittalForm.get(\"remarks\")?.setValue('');\r\n this.transmittalForm.get(\"quantity\")?.setValue('');\r\n this.transmittalForm.get(\"formFromMember\")?.setValue('');\r\n this.transmittalForm.get(\"formToMember\")?.setValue('');\r\n this.transmittalForm.get(\"ccMembersCtrl\")?.setValue('');\r\n this.transmittalForm.reset;\r\n this.ccFormMembers?.setValue([]);\r\n this.ccMembers = [];\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n\r\n public remarkChange(value: any): void {\r\n this.formGroup?.get('remarks')?.setValue(value.target.value);\r\n }\r\n\r\n public qtyChange(value: any): void {\r\n this.formGroup?.get('quantity')?.setValue(value.target.value);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Template Name\r\n \r\n \r\n Template Name is required\r\n \r\n \r\n
\r\n
\r\n \r\n Subject\r\n \r\n \r\n Subject is required\r\n \r\n \r\n
\r\n
\r\n \r\n No of Copies\r\n \r\n \r\n No of Copies is required\r\n \r\n \r\n Enter Numbers Only\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Category is required\r\n \r\n
\r\n
\r\n \r\n Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n From is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n To is required\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.groupName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Sl. No.Assigned CcGroup By
{{i+1}}{{member.memberName}}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n No of Copies\r\n \r\n \r\n \r\n No of Copies is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Category is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Type is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n  \r\n \r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { GridComponent, ExcelExportEvent } from '@progress/kendo-angular-grid';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { ICommentsInputModel, ICommentsListOutputModel, IPeerReviewDedOutputModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DatePipe } from \"@angular/common\";\r\n\r\n\r\n@Component({\r\n selector: 'app-add-comments',\r\n templateUrl: './add-comments.component.html',\r\n styleUrls: ['./add-comments.component.css']\r\n})\r\nexport class AddCommentsComponent implements OnInit {\r\n @Input() Data: any;\r\n @Output() exitFunc: EventEmitter = new EventEmitter();\r\n public commentList: ICommentsListOutputModel[] = [];\r\n public disciplineDropdown: IPeerReviewDedOutputModel[] = [];\r\n public potentialcmd: any[] = ['Type 1- DESIGN TEAM TO ADDRESS','Type 2- DESIGN TEAM TO ADDRESS WITH BU/Contract'];\r\n public categoryDropdown: IPeerReviewDedOutputModel[] = [];\r\n public editRowIndex !: number;\r\n public editedRowIndex: any;\r\n public editedProduct: any;\r\n public setDisable: boolean = false;\r\n public formGroup!: FormGroup;\r\n public disc: string | null = '';\r\n public count: number = 1;\r\n public toggle: boolean = false;\r\n public memberId !: number;\r\n public commentdate: string = '';\r\n public enableFilter: boolean = false;\r\n public isAdmin: boolean = false;\r\n public memberList: any[];\r\n public selectedMember: number = null;\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n showReqno: boolean;\r\n requestNum: string;\r\n\r\n constructor(private dialog: MatDialog, private commentsListService: PeerReviewService, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService, private _formBuilder: FormBuilder, private _fileService: FileService) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.Data) {\r\n if (this.commonService.redirectUserToPRAddComments) {\r\n let reqNo = this.commonService.redirectUserToPRAddComments_ReqNo;\r\n this.showReqno = (reqNo != null);\r\n if (this.showReqno) {\r\n this.requestNum = reqNo;\r\n }\r\n this.Data = { 'requestNo': this.requestNum }\r\n }\r\n else {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n let reqNo = urlParams.get('reqno');\r\n const projId = urlParams.get('proj');\r\n this.Data = { 'requestNo': reqNo }\r\n this.showReqno = (reqNo != null);\r\n if (this.showReqno) {\r\n this.requestNum = reqNo;\r\n }\r\n }\r\n }\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getComments();\r\n this.commentsListService.getPeerStatus({ strDocNumber: this.Data.requestNo, intUID: this.memberId }).subscribe(res => {\r\n let meeting = res.filter(x => x.action_Desc == \"Meeting Completed\");\r\n let date: Date = new Date(meeting[0].action_On);\r\n date.setDate(date.getDate() + 3);\r\n let datePipe: DatePipe = new DatePipe('en-US');\r\n this.commentdate = datePipe.transform(date, 'dd-MMM-yyyy');\r\n });\r\n this.allData = this.allData.bind(this);\r\n\r\n this.commentsListService.getPeerPanelMembers({strDocNumber: this.Data.requestNo, intUID: this.memberId}).subscribe((resPanel)=>\r\n {\r\n this.memberList = resPanel.filter(x => x.member_category == 'ROLE-BASED');\r\n this.isAdmin = (resPanel.filter(x => x.member_Id == this.memberId)).length?false:true;\r\n });\r\n }\r\n\r\n memberSelection(event: any) {\r\n if (event.value>0)\r\n this.selectedMember = event.value;\r\n else\r\n this.selectedMember = null;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.grid.editRow(0);\r\n }\r\n\r\n createFormGroup() {\r\n this.formGroup = this._formBuilder.group({\r\n 'discipline': new FormControl('', Validators.required),\r\n 'comments': new FormControl('', Validators.required),\r\n 'potential_comment': new FormControl('', Validators.required),\r\n 'category': new FormControl('', Validators.required),\r\n 'discipline2': new FormControl('', Validators.required),\r\n 'comments2': new FormControl('', Validators.required),\r\n 'category2': new FormControl('', Validators.required),\r\n 'potential_comment2': new FormControl('', Validators.required),\r\n 'cid': new FormControl('', Validators.required),\r\n });\r\n }\r\n\r\n getComments() {\r\n this.commentList = [];\r\n let obj = {\r\n 'review_No': this.Data.requestNo,\r\n 'member_Id': this.memberId\r\n }\r\n this.commentsListService.getReviewComments(obj).subscribe((data: ICommentsListOutputModel[]) => {\r\n this.commentList[0] = {\r\n review_No: this.Data.requestNo,\r\n discipline: null,\r\n disc_No: null,\r\n disc_DE_Id: null,\r\n disc_DED_Id: null,\r\n comment_Id: null,\r\n panel_Comments: null,\r\n potential_Comment: null,\r\n category: null,\r\n category_DE_Id: null,\r\n category_DED_Id: null,\r\n comment_By: null,\r\n comment_On: null\r\n }\r\n this.commentList = this.commentList.concat(data);\r\n for (let i = 0; i < this.commentList.length; i++) {\r\n if (i == 0) {\r\n this.count = 1;\r\n this.disc = this.commentList[0].disc_No;\r\n }\r\n let _x: any = this.commentList[i].disc_No\r\n if (this.commentList[i].disc_No && this.disc == this.commentList[i].disc_No) {\r\n this.commentList[i].disc_No = _x + this.count;\r\n this.count++;\r\n }\r\n else {\r\n this.count = 1;\r\n this.disc = this.commentList[i].disc_No\r\n\r\n this.commentList[i].disc_No = _x + this.count;\r\n this.count++;\r\n }\r\n }\r\n });\r\n this.commentsListService.getCommentData(this.Data.requestNo).subscribe(data => {\r\n this.disciplineDropdown = data.commentDiscipline;\r\n this.categoryDropdown = data.commentCategory;\r\n });\r\n this.createFormGroup();\r\n }\r\n\r\n public editHandler({ sender, rowIndex, dataItem }: any) {\r\n let temp1 = this.formGroup.value.discipline2;\r\n let temp2 = this.formGroup.value.comments2;\r\n let temp3 = this.formGroup.value.category2;\r\n let temp4 = this.formGroup.value.potential_comment2;\r\n this.editRowIndex = rowIndex;\r\n this.formGroup = new FormGroup({\r\n 'discipline': new FormControl(dataItem.disc_DED_Id),\r\n 'comments': new FormControl(dataItem.panel_Comments),\r\n 'potential_comment': new FormControl(dataItem['potential_Comment']),\r\n 'category': new FormControl(dataItem.category_DED_Id),\r\n 'discipline2': new FormControl(temp1),\r\n 'comments2': new FormControl(temp2),\r\n 'category2': new FormControl(temp3),\r\n 'potential_comment2': new FormControl(temp4),\r\n 'cid': new FormControl(dataItem.comment_Id),\r\n });\r\n this.closeEditor(sender);\r\n this.editedRowIndex = rowIndex;\r\n this.editedProduct = Object.assign({}, dataItem);\r\n sender.editRow(rowIndex);\r\n this.grid.editRow(0);\r\n }\r\n\r\n public cancelHandler({ sender, rowIndex }: any) {\r\n this.closeEditor(sender, rowIndex);\r\n this.grid.editRow(0);\r\n }\r\n\r\n public newSave(dataItem: any) {\r\n dataItem = this.formGroup.value;\r\n if (!dataItem.discipline2) {\r\n this.notificationService.showToast(\"Please Select any one in Discipline\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.comments2) {\r\n this.notificationService.showToast(\"Please Enter Comments\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.potential_comment2) {\r\n this.notificationService.showToast(\"Please select Yes/No for Potential Comment For Future Jobs\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.category2) {\r\n this.notificationService.showToast(\"Please Select any one in Category\", \"Warning\");\r\n return;\r\n }\r\n if (!!dataItem) {\r\n let selectedDiscipline = this.disciplineDropdown.filter(data => data.deD_Id == dataItem.discipline2)[0];\r\n let selectedCategory = this.categoryDropdown.filter(data => data.deD_Id == dataItem.category2)[0];\r\n let obj: ICommentsInputModel = {\r\n Review_No: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n Panel_Comments: dataItem.comments2,\r\n Potential_Comment: dataItem.potential_comment2,\r\n Disc_DE_Id: selectedDiscipline.dE_Id,\r\n Disc_DED_Id: selectedDiscipline.deD_Id,\r\n Category_DE_Id: selectedCategory.dE_Id,\r\n Category_DED_Id: selectedCategory.deD_Id,\r\n Attachment_Available: \"N\",\r\n UID: this.commonService.getLoggedInUserId(),\r\n On_Behalf: this.selectedMember\r\n }\r\n this.commentsListService.postReviewComments(obj).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review comments inserted successfully.\", \"Success\");\r\n this.getComments();\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n for (let i = 1; i <= this.commentList.length; i++) {\r\n this.grid.closeRow(i);\r\n }\r\n }\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n }\r\n\r\n public saveHandler({ sender, rowIndex, dataItem, isNew }: any) {\r\n let isAttachment = dataItem.isAttachment;\r\n dataItem = this.formGroup.value;\r\n if (!dataItem.discipline) {\r\n this.notificationService.showToast(\"Please Select any one in Discipline\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.comments) {\r\n this.notificationService.showToast(\"Please Enter Comments\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.potential_comment) {\r\n this.notificationService.showToast(\"Please select Yes/No for Potential Comment For Future Jobs\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.category) {\r\n this.notificationService.showToast(\"Please Select any one in Category\", \"Warning\");\r\n return;\r\n }\r\n if (!!dataItem) {\r\n let selectedDiscipline = this.disciplineDropdown.filter(data => data.deD_Id == dataItem.discipline)[0];\r\n let selectedCategory = this.categoryDropdown.filter(data => data.deD_Id == dataItem.category)[0];\r\n let obj: ICommentsInputModel = {\r\n Review_No: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n Panel_Comments: dataItem.comments,\r\n Potential_Comment: dataItem.potential_comment,\r\n Disc_DE_Id: selectedDiscipline.dE_Id,\r\n Disc_DED_Id: selectedDiscipline.deD_Id,\r\n Category_DE_Id: selectedCategory.dE_Id,\r\n Category_DED_Id: selectedCategory.deD_Id,\r\n Attachment_Available: isAttachment,\r\n UID: this.commonService.getLoggedInUserId(),\r\n Comment_Id: dataItem.cid,\r\n On_Behalf: this.selectedMember\r\n }\r\n this.commentsListService.postReviewComments(obj).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review comments updated successfully.\", \"Success\");\r\n this.getComments();\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n sender.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n }\r\n\r\n private closeEditor(grid: any, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n this.selectedMember = null;\r\n }\r\n\r\n public viewAttachmentClick(dataItem: any) {\r\n const dialog = this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary'],\r\n data: {\r\n projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRC', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: dataItem.isResponseRecived == 'N' ? true : false },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.getComments();\r\n });\r\n }\r\n\r\n uploadAttachmentClick(dataItem: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRC', moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.commonService.getLoggedInUserId(),\r\n documents: [{ value: dataItem.comment_Id, text: 'EDMS', revisionNo: 'PRC', task_SNo: 0 }],\r\n isEditable: false,isEnableFullScreen:true\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n const dialog2 = this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary'],\r\n data: {\r\n projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRC', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: true\r\n },\r\n });\r\n dialog2.afterClosed().subscribe((res: any) => {\r\n this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(\r\n { projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRC' }\r\n )\r\n }).subscribe((_data: any[]) => {\r\n let x: string;\r\n _data.length > 0 ? x = 'Y' : x = 'N'\r\n if (dataItem.isAttachment != x) {\r\n dataItem.isAttachment = x\r\n\r\n let obj: ICommentsInputModel = {\r\n Review_No: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n Panel_Comments: dataItem.panel_Comments,\r\n Potential_Comment: dataItem.potential_Comment,\r\n Disc_DE_Id: dataItem.disc_DE_Id,\r\n Disc_DED_Id: dataItem.disc_DED_Id,\r\n Category_DE_Id: dataItem.category_DE_Id,\r\n Category_DED_Id: dataItem.category_DED_Id,\r\n Attachment_Available: x,\r\n UID: this.commonService.getLoggedInUserId(),\r\n Comment_Id: dataItem.comment_Id,\r\n }\r\n this.commentsListService.postReviewComments(obj).subscribe();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n onChange() {\r\n this.toggle = !this.toggle;\r\n }\r\n\r\n Submit() {\r\n if (!this.toggle) {\r\n this.notificationService.showToast(\"Please complete the declaration before proceeding to Final Submit\", \"Warning\");\r\n return;\r\n }\r\n this.notificationService.showPopup(\"No more entries can be done after the Submission. Are you sure you want to Submit your Comments?\", 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let obj: ICommentsInputModel = {\r\n Review_No: this.Data.requestNo,\r\n Save_Type: \"FINAL\",\r\n Disc_DE_Id: 0,\r\n Disc_DED_Id: 0,\r\n Category_DE_Id: 0,\r\n Category_DED_Id: 0,\r\n Attachment_Available: \"N\",\r\n UID: this.commonService.getLoggedInUserId()\r\n }\r\n this.commentsListService.postReviewComments(obj).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review Final Comments submitted successfully.\", \"Success\");\r\n this.exitFunc.emit(true);\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.commentList.map((data, indx) => ({\r\n ...data,\r\n SNO: indx,\r\n Discipline_No: data.disc_No,\r\n Comment_Status: data.comment_Id ? 'SAVED' : 'UNSAVED',\r\n }))\r\n };\r\n return result;\r\n }\r\n\r\n public onExcelExport(e: ExcelExportEvent): void {\r\n e.workbook.sheets[0].columns.forEach((data ,i) => {\r\n data.width=i==3 ? 250:10;\r\n data.autoWidth = i==3 ? false:true;\r\n })\r\n\r\n let values = e.workbook.sheets[0].rows;\r\n values.splice(1, 1)\r\n values[0].height = 40;\r\n values[0].cells[4].wrap=true;\r\n for(let i=0;i 50 ? (values[i].cells[3].value.length/4)*3.25:48;\r\n if (values[i].cells[6].value == 'High Risk') { values[i].cells[5].background = '#ff0000';values[i].cells[5].color=\"#fff\";values[i].cells[5].bold=true; }\r\n if (values[i].cells[6].value == 'Medium Risk') { values[i].cells[5].background = '#ffbf00';values[i].cells[5].color=\"#fff\";values[i].cells[5].bold=true; }\r\n if (values[i].cells[6].value == 'Low Risk') { values[i].cells[5].background = '#007800';values[i].cells[5].color=\"#fff\";values[i].cells[5].bold=true; }\r\n values[i].cells[3].wrap=true;\r\n }\r\n for(var i=1;i\r\n
\r\n Note: Comments should be submitted on or before {{commentdate}} \r\n
\r\n -->\r\n\r\n
\r\n
\r\n

{{requestNum}}

\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n {{rowIndex}}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Select Discipline\r\n \r\n \r\n {{data.deD_Description}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Discipline\r\n \r\n \r\n {{data.deD_Description}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n {{dataItem.disc_No}}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.panel_Comments}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {{dataItem.potential_Comment}}\r\n
\r\n
\r\n \r\n

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

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

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Select Comment Type\r\n \r\n \r\n {{data}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Comment Type\r\n \r\n \r\n {{data}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select Comment Category\r\n \r\n \r\n {{data.deD_Description}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Select comment Category\r\n \r\n \r\n {{data.deD_Description}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n {{dataItem.comment_By}}\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
I have completed filling all my comments.
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Red: High Risk comment related to major deviation from Codes/Standards, Employer’s & Contract requirements, DBR,\r\n Statutory, EHS and Security.

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

Amber: Medium Risk comments related to Interface and coordination issues, Alternate solutions for cost-time\r\n effectiveness. Comments not in Red and Green will be categorised to Amber.

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

Green: Low Risk comments related to more clarity of information, typo-error, legibility issues.

\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ExcelExportEvent, GridComponent } from '@progress/kendo-angular-grid';\r\nimport * as moment from 'moment';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { DocDetailsOutput, IImpactInputModel, IImpactListOutputModel, IPeerReviewDedOutputModel, PeerImpactOutputModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DatePipe } from \"@angular/common\";\r\n//import { AddImpactDialogComponent } from './add-impact-dialog/add-impact-dialog.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-impacts',\r\n templateUrl: './add-impacts.component.html',\r\n styleUrls: ['./add-impacts.component.css']\r\n})\r\nexport class AddImpactsComponent implements OnInit {\r\n\r\n @Input() Data:any;\r\n @Output() exitFunc: EventEmitter = new EventEmitter();\r\n public impactList: IImpactListOutputModel[] = [];\r\n public impactType: IPeerReviewDedOutputModel[] = [];\r\n public projectData: DocDetailsOutput[] = [];\r\n public reviewForm!: FormGroup;\r\n selectionAction: any[] = [];\r\n impactArray: any[] = [];\r\n valueArray: any[] = [];\r\n toggleArray :any= [];\r\n impactDedId :any= [];\r\n public memberId !: number;\r\n public project_Id !: number;\r\n public groupId !: number;\r\n public Feature: any[] = [];\r\n public saveflag: boolean = false;\r\n public submitflag: boolean = false;\r\n public impactdate: string = '';\r\n public enableFilter: boolean = false;\r\n public disc: string = '';\r\n public count: number = 1;\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n Roles: any[];\r\n\r\n constructor(private dialog: MatDialog, private impactsListService: PeerReviewService, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService, private _formBuilder: FormBuilder, private _fileService: FileService) \r\n { this.createReviewForm();\r\n this.allData = this.allData.bind(this); }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.project_Id = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.getImpacts();\r\n this.impactsListService.getPeerStatus({ strDocNumber: this.Data.requestNo , intUID: this.memberId}).subscribe(res => {\r\n let response = res.filter(x => x.remarks==\"Final Response Submitted\");\r\n let date: Date = new Date(response[0].action_On);\r\n date.setDate(date.getDate() + 14);\r\n let datePipe: DatePipe = new DatePipe('en-US');\r\n this.impactdate = datePipe.transform(date, 'dd-MMM-yyyy');\r\n });\r\n this.enableMemberRoleFeatures();\r\n }\r\n\r\n enableMemberRoleFeatures() {\r\n this.commonService.getProjectMemberFeatures(this.project_Id, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.Feature = res;\r\n this.saveflag = this.Feature.some(x => x.feature_Desc == \"PR Impacts\" && x.feature_Id==600006);\r\n });\r\n this.commonService.getProjectMemberRoles(this.project_Id,this.groupId,this.memberId).subscribe((res:any[])=>{\r\n this.Roles = res;\r\n this.submitflag = this.Roles.some(x=>x.role_Short_Desc.toUpperCase().trim()=='ECD'.toLocaleUpperCase().trim() || x.role_Short_Desc.toUpperCase().trim()=='MECD'.toLocaleUpperCase().trim());\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n createReviewForm() {\r\n this.reviewForm = this._formBuilder.group({\r\n C: new FormControl('', [Validators.required]),\r\n T: new FormControl('', [Validators.required]),\r\n OT: new FormControl('', [Validators.required]),\r\n CS: new FormControl('', [Validators.required]),\r\n TS: new FormControl('', [Validators.required]),\r\n VA: new FormControl('', [Validators.required]),\r\n QS: new FormControl('', [Validators.required,Validators.pattern(\"^[0-9]*$\")]),\r\n CD: new FormControl('', [Validators.required]),\r\n IMDCS: new FormControl('', [Validators.required]),\r\n });\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n getImpacts() {\r\n let obj = {\r\n 'review_No': this.Data.requestNo,\r\n 'project_Id': this.project_Id,\r\n 'group_Id': this.groupId\r\n }\r\n this.impactsListService.getReviewImpacts(obj).subscribe((data: PeerImpactOutputModel) => {\r\n this.impactList = data.impactDetails;\r\n this.impactType = data.impactType;\r\n\r\n if(this.impactList && this.impactList.length>0)\r\n {\r\n this.disc = this.impactList[0].disc_No;\r\n for(let i=0; i {\r\n this.projectData = resDoc;\r\n });\r\n }\r\n \r\n public viewAttachmentClick(dataItem: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary'],\r\n data: { projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRC', libraryName: FileUploadLibrary.WorkflowDocument, \r\n createdBy: this.memberId, isDeleteEnable: false },\r\n });\r\n }\r\n\r\n onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n if(event['selectedRows'][0]['dataItem'].responder_Agreed == 'Comply'){\r\n event['selectedRows'].forEach((element:any) => {\r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem);\r\n });\r\n }\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n if(event['deselectedRows'][0]['dataItem'].responder_Agreed == 'Comply'){\r\n event['deselectedRows'].forEach((element:any) => {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (element.dataItem.comment_Id == this.selectionAction[i].comment_Id) {\r\n element.dataItem.isSelected = false;\r\n this.selectionAction.splice(i, 1);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n onValueChange(val: any, dataItem: any) {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if(this.selectionAction[i].comment_Id == dataItem.comment_Id) {\r\n this.selectionAction[i].evidence_Remarks = val.target.value;\r\n }\r\n }\r\n }\r\n\r\n onChange(dedId:any,val: any){\r\n if(this.toggleArray.includes(val))\r\n {\r\n this.toggleArray.splice(this.toggleArray.indexOf(val),1);\r\n this.impactDedId.splice(this.impactDedId.indexOf(dedId),1);\r\n }\r\n else\r\n {\r\n this.toggleArray.push(val);\r\n this.impactDedId.push(dedId);\r\n }\r\n }\r\n\r\n checkDisable(i: any){\r\n if(this.toggleArray.includes(i))\r\n {\r\n return false\r\n }\r\n else\r\n {\r\n return true\r\n }\r\n }\r\n\r\n public viewImpactAttachmentClick(dataItem: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary'],\r\n data: { projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRI', libraryName: FileUploadLibrary.WorkflowDocument, \r\n createdBy: this.memberId, isDeleteEnable: false },\r\n });\r\n }\r\n\r\n uploadAttachmentClick(dataItem: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRI', moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId, \r\n documents: [{ value: dataItem.comment_Id, text: 'EDMS', revisionNo: 'PRI', task_SNo: 0 }],\r\n isEditable: false },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n const dialog2 = this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary'],\r\n data: { projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRI', libraryName: FileUploadLibrary.WorkflowDocument, \r\n createdBy: this.memberId, isDeleteEnable: true },\r\n });\r\n dialog2.afterClosed().subscribe((res: any) => {\r\n this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(\r\n { projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRI' }\r\n )\r\n }).subscribe((_data: any[]) => {\r\n let x: string;\r\n _data.length>0 ? x='Y' : x='N'\r\n if(dataItem.isAttachment!=x)\r\n {\r\n dataItem.isAttachment=x\r\n\r\n let obj : IImpactInputModel = {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n impactValues: JSON.stringify(this.valueArray),\r\n commentRows: JSON.stringify(dataItem),\r\n impactDetails: JSON.stringify(this.impactArray),\r\n UID: this.memberId,\r\n }\r\n this.impactsListService.postReviewImpacts(obj).subscribe(); \r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n // addImpacts() {\r\n // let obj: any = {};\r\n // obj[\"impactTypes\"] = this.impactType;\r\n // // Update Impact value details, when already posted\r\n // if (this.valueArray.length > 0) {\r\n // obj[\"valueArray\"] = this.valueArray;\r\n // }\r\n\r\n // let dialogRef = this.dialog.open(AddImpactDialogComponent, {\r\n // panelClass: 'add-impact-mat-dialog-primary',\r\n // data: obj\r\n // })\r\n // dialogRef.afterClosed().subscribe((data) => {\r\n // // Update the selected Impact details\r\n // if (data) {\r\n // this.impactArray = data.impactArray;\r\n // this.valueArray = data.valueArray;\r\n // }\r\n // });\r\n // }\r\n\r\n Save() {\r\n if (this.selectionAction.length > 0) {\r\n // Check, is Impact already available\r\n let isImpactAvailable = true;\r\n this.selectionAction.forEach(comment => {\r\n if (!comment.impact) {\r\n isImpactAvailable = false;\r\n }\r\n });\r\n\r\n if (this.valueArray.length > 0 || isImpactAvailable) {\r\n // Get Remarks for comments\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (this.selectionAction[i].evidence_Remarks == null) { this.selectionAction[i].evidence_Remarks = ''; }\r\n }\r\n\r\n let payload: IImpactInputModel = {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n impactValues: JSON.stringify(this.valueArray),\r\n commentRows: JSON.stringify(this.selectionAction),\r\n impactDetails: JSON.stringify(this.impactArray),\r\n UID: this.memberId\r\n }\r\n this.impactsListService.postReviewImpacts(payload)\r\n .subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review impacts updated successfully.\", \"Success\");\r\n this.getImpacts();\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please enter at least one Impact.\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please select at least one Comment.\", \"Warning\");\r\n }\r\n }\r\n\r\n Submit(){\r\n this.notificationService.showPopup(\"Are you sure you want to Submit your Impacts Update?\", 'Confirm').then(data => {\r\n if (data == 'yes') \r\n {\r\n let obj: IImpactInputModel = {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"FINAL\",\r\n impactValues: JSON.stringify(this.valueArray),\r\n commentRows: JSON.stringify(this.selectionAction),\r\n impactDetails: JSON.stringify(this.impactArray),\r\n UID: this.memberId,\r\n }\r\n this.impactsListService.postReviewImpacts(obj).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review Final Impacts submitted successfully.\", \"Success\");\r\n this.exitFunc.emit(true);\r\n }\r\n else{\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.impactList.map((data,indx)=>({\r\n ...data,\r\n Discipline_No:data.disc_No,\r\n }))\r\n };\r\n return result;\r\n }\r\n\r\n public onExcelExport(e: ExcelExportEvent): void {\r\n const rows = e.workbook.sheets[0].rows;\r\n\r\n e.workbook.sheets[0].columns.forEach(data=>{\r\n data.width=25\r\n data.autoWidth=true\r\n data.textAlign=\"left\"\r\n })\r\n\r\n for(let i=0;i\r\n
\r\n Note: Impacts should be submitted on or before {{impactdate}}\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{dataItem.disc_No}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.panel_Comments}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{dataItem.category}}\r\n
\r\n
\r\n {{dataItem.category}}\r\n
\r\n
\r\n {{dataItem.category}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.submitted_By}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.submitted_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.responder_Agreed}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.responded_By}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.responded_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.action_Remarks}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.action_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.action_Date | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{dataItem.reason}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.impact}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{dataItem.evidence_Remarks}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n NIL\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

L1* - Red colour :High Risk comment related to major deviation from Codes/Standards, Employer’s & Contract requirements, DBR, Statutory, EHS and Security.

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

L2 - Amber colour: Medium Risk comments related to Interface and coordination issues, Alternate solutions for cost-time effectiveness. Comments not in Red and Green will be categorised to Amber.

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

L3 - Green colour :Low Risk comments related to more clarity of information, typo-error, legibility issues.

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

* L1 comments shall be replied before proceeding to the next stage, since its poses high risk on the end product

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

# Comment numbering to be prefixed with Discipline codes - Architecture -A / Structure -C/ Geotechnical- S/ Electrical -E/ ELV -L/ HVAC -V/ FPS -F/ PHE -U/ Piping -P/ CEFD -D/ Landscape -N/ General -Z

\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DynamicFormComponent } from '../../../../CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FieldConfig } from '../../../../CommonComponents/dynamic-form/interface/field.interface';\r\nimport { NotificationService } from '../../../../Service/notification.service';\r\nimport { IPeerReviewDedOutputModel } from '../../../../ViewModel/PeerReviewModel';\r\n\r\n@Component({\r\n selector: 'app-add-impact-dialog',\r\n templateUrl: './add-impact-dialog.component.html',\r\n styleUrls: ['./add-impact-dialog.component.css']\r\n})\r\nexport class AddImpactDialogComponent implements OnInit, AfterViewInit {\r\n valueArray = [];\r\n impactArray = [];\r\n impactShortDesc: string[] = [];\r\n\r\n impactConfig: FieldConfig[] = [];\r\n @ViewChild('docSetForm') impactSetFormComponent!: DynamicFormComponent;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public _dialogRef: MatDialogRef,\r\n public notificationService: NotificationService) { }\r\n\r\n ngOnInit(): void {\r\n this.resetImpactValues(); // Reset\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loadImpactControls(); // Load Impact controls\r\n }\r\n\r\n // Close dialog\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n loadImpactControls() {\r\n this.data.impactTypes.forEach((impactType: IPeerReviewDedOutputModel) => {\r\n let tempFieldConfig: FieldConfig;\r\n tempFieldConfig = {\r\n type: 'input',\r\n name: impactType.deD_Short_Description,\r\n label: impactType.deD_Description\r\n }\r\n\r\n // Set impact value details, when already posted\r\n if (this.data && this.data.valueArray && this.data.valueArray.length > 0) {\r\n let tempImpactValue = this.data.valueArray.filter(x => x.DedId == impactType.deD_Id).map(y => y.val);\r\n\r\n if (tempImpactValue.length > 0) {\r\n tempFieldConfig.value = new BehaviorSubject(tempImpactValue[0]);\r\n }\r\n }\r\n\r\n this.impactConfig.push(tempFieldConfig);\r\n this.impactShortDesc.push(impactType.deD_Short_Description); // Store Impact short description\r\n });\r\n\r\n // Create Impact controls\r\n this.impactSetFormComponent.fields = [];\r\n this.impactSetFormComponent.fields = this.impactConfig;\r\n this.impactSetFormComponent.createControl();\r\n }\r\n\r\n // Reset impact values\r\n resetImpactValues() {\r\n this.valueArray = [];\r\n this.impactArray = [];\r\n }\r\n\r\n // Validate details\r\n validate(impactData) {\r\n let isValid = false;\r\n\r\n this.impactShortDesc.forEach(impactKey => {\r\n if (impactData[impactKey]) {\r\n isValid = true\r\n }\r\n });\r\n\r\n return isValid;\r\n }\r\n\r\n // Set impact values for payload\r\n setRequestData(impactData) {\r\n this.impactShortDesc.forEach(impactKey => {\r\n if (impactData[impactKey]) {\r\n let tempImpactType = this.data.impactTypes.find(data => data.deD_Short_Description == impactKey);\r\n\r\n if (tempImpactType) {\r\n this.impactArray.push(tempImpactType);\r\n this.valueArray.push({ 'DedId': tempImpactType.deD_Id, 'val': impactData[impactKey] });\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Post impact details\r\n postImpactDetails() {\r\n if (!this.validate(this.impactSetFormComponent.value.value)) {\r\n this.notificationService.showToast(\"Please enter at least one Impact.\", \"Warning\");\r\n return;\r\n }\r\n\r\n // Set request details\r\n this.setRequestData(this.impactSetFormComponent.value.value);\r\n\r\n // Return the selected Impact details\r\n let obj: any = {};\r\n obj[\"impactArray\"] = this.impactArray;\r\n obj[\"valueArray\"] = this.valueArray;\r\n this._dialogRef.close(obj);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Add Impact

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n Note: Impacts will be reflected on comments only after Partial Save.\r\n \r\n
\r\n
\r\n ","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { GridComponent, ExcelExportEvent } from '@progress/kendo-angular-grid';\r\nimport * as moment from 'moment';\r\nimport { formatDate } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IPeerReviewDedOutputModel, IResponseInputModel, IResponseListOutputModel, IImpactInputModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { AddImpactDialogComponent } from './add-impact-dialog/add-impact-dialog.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-response',\r\n templateUrl: './add-response.component.html',\r\n styleUrls: ['./add-response.component.css']\r\n})\r\nexport class AddResponseComponent implements OnInit {\r\n @Input() Data: any;\r\n @Output() exitFunc: EventEmitter = new EventEmitter();\r\n public responseList: IResponseListOutputModel[] = [];\r\n public reasonDropdown: IPeerReviewDedOutputModel[] = [];\r\n public impactstatus: IPeerReviewDedOutputModel[] = [];\r\n public impactopenclose: any[] = ['Open', 'Closed'];\r\n public editedRowIndex: any;\r\n public editedProduct: any;\r\n public formGroup!: FormGroup;\r\n public DocDate?: any\r\n public isAgree!: string | null;\r\n public disc: string = '';\r\n public count: number = 1;\r\n public min: Date = new Date();\r\n public toggle: boolean = false;\r\n selectionAction: any[] = [];\r\n public memberId !: number;\r\n public responsedate: string = '';\r\n public project_Id !: number;\r\n public groupId !: number;\r\n public Feature: any[] = [];\r\n public Roles: any[] = [];\r\n public submitflag: boolean = false;\r\n public enableFilter: boolean = false;\r\n public saveflag: boolean = false;\r\n public selectedimpactBind: Array = [];\r\n public impYesNo: string = null;\r\n public impsta_DED_ID: number = null;\r\n public impDateClose: string = null;\r\n\r\n public impactType: IPeerReviewDedOutputModel[] = [];\r\n valueArray: any[] = [];\r\n impactArray: any[] = [];\r\n\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n\r\n constructor(private dialog: MatDialog, private responseListService: PeerReviewService, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService, private _fileService: FileService) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.project_Id = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.getResponse();\r\n this.getImpactTypes();\r\n this.responseListService.getPeerStatus({ strDocNumber: this.Data.requestNo, intUID: this.memberId }).subscribe(res => {\r\n let comments = res.filter(x => x.remarks == \"Final Comments Submitted\");\r\n let date: Date = new Date(comments[0].action_On);\r\n date.setDate(date.getDate() + 7);\r\n let datePipe: DatePipe = new DatePipe('en-US');\r\n this.responsedate = datePipe.transform(date, 'dd-MMM-yyyy');\r\n });\r\n this.enableMemberRoleFeatures();\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n getImpactTypes() {\r\n let obj = {\r\n 'review_No': this.Data.requestNo,\r\n 'project_Id': this.project_Id,\r\n 'group_Id': this.groupId,\r\n 'member_Id': this.memberId\r\n }\r\n\r\n this.responseListService.getPeerImpactsTypes(obj).subscribe(res => {\r\n this.impactType = res;\r\n });\r\n }\r\n\r\n onValueChange(val: any, dataItem: any) {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (this.selectionAction[i].comment_Id == dataItem.comment_Id) {\r\n this.selectionAction[i].evidence_Remarks = val.target.value;\r\n }\r\n }\r\n }\r\n\r\n enableMemberRoleFeatures() {\r\n this.commonService.getProjectMemberRoles(this.project_Id, this.groupId, this.memberId).subscribe((res: any[]) => {\r\n this.Roles = res;\r\n this.submitflag = this.Roles.some(x => x.role_Short_Desc.toUpperCase().trim() == 'ECD'.toLocaleUpperCase().trim() || x.role_Short_Desc.toUpperCase().trim() == 'MECD'.toLocaleUpperCase().trim());\r\n });\r\n this.commonService.getProjectMemberFeatures(this.project_Id, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.Feature = res;\r\n this.saveflag = this.Feature.some(x => x.feature_Desc == \"PR Response And Impacts\" && x.feature_Id == 600007);\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n getResponse() {\r\n let obj = {\r\n 'review_No': this.Data.requestNo\r\n }\r\n this.responseListService.getReviewResponse(obj).subscribe((data: IResponseListOutputModel[]) => {\r\n this.responseList = data;\r\n if (this.responseList && this.responseList.length > 0) {\r\n this.disc = this.responseList[0].disc_No;\r\n for (let i = 0; i < this.responseList.length; i++) {\r\n\r\n if (this.disc == this.responseList[i].disc_No) {\r\n this.responseList[i].disc_No += this.count;\r\n this.count++;\r\n }\r\n else {\r\n this.count = 1;\r\n this.disc = this.responseList[i].disc_No\r\n this.responseList[i].disc_No += this.count;\r\n this.count++;\r\n }\r\n\r\n }\r\n }\r\n });\r\n this.responseListService.getReasonData().subscribe(data => {\r\n this.reasonDropdown = data;\r\n });\r\n this.responseListService.getimpactStatus().subscribe(data => {\r\n this.impactstatus = data;\r\n });\r\n\r\n this.isAgree = null;\r\n }\r\n\r\n public editRowIndex !: number;\r\n public editHandler({ sender, rowIndex, dataItem }: any) {\r\n\r\n this.isAgree = dataItem.responder_Agreed;\r\n this.editRowIndex = rowIndex;\r\n this.formGroup = new FormGroup({\r\n 'remarks': new FormControl(dataItem.action_Remarks),\r\n 'from': new FormControl(dataItem.action_By),\r\n 'reason_dropdown': new FormControl(dataItem.dA_DED_Id),\r\n 'reason_text': new FormControl(dataItem.reason_Remarks),\r\n 'cid': new FormControl(dataItem.comment_Id),\r\n 'impactOpenClose': new FormControl(dataItem.impactOpenClose),\r\n 'impactStatus_DED_ID': new FormControl(dataItem.impactStatus_DED_ID),\r\n 'action_Date': new FormControl(this.getFormattedDate(new Date(dataItem.action_Date))),\r\n 'impactDateClosure': new FormControl(this.getFormattedDate(new Date(dataItem.impactDateClosure))),\r\n 'impact': new FormControl(dataItem.impact),\r\n });\r\n if (this.isAgree == 'Y') {\r\n this.impYesNo = this.formGroup.get('impactOpenClose').value;\r\n this.impsta_DED_ID = this.formGroup.get('impactStatus_DED_ID').value;\r\n this.responseList[rowIndex].action_Date = new Date(dataItem.action_Date);\r\n this.responseList[rowIndex].impactDateClosure = new Date(dataItem.impactDateClosure);\r\n this.selectedimpactBind = dataItem.deD_Id != null ? dataItem.deD_Id.split(\",\").map(x => Number(x)) : [];\r\n }\r\n //this.responseList[rowIndex].action_Date = new Date();\r\n //this.DocDate = this.getFormattedDate(new Date());\r\n if (this.isAgree == null) {\r\n this.closeEditor(sender);\r\n }\r\n this.editedRowIndex = rowIndex;\r\n this.editedProduct = Object.assign({}, dataItem);\r\n sender.editRow(rowIndex);\r\n }\r\n\r\n public cancelHandler({ sender, rowIndex }: any) {\r\n this.closeEditor(sender, rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n this.isAgree = null;\r\n this.DocDate = undefined;\r\n this.impYesNo = null;\r\n this.impsta_DED_ID = null;\r\n this.impDateClose = null;\r\n this.selectedImpact = [];\r\n }\r\n\r\n public saveHandler({ sender, rowIndex, dataItem, isNew }: any) {\r\n\r\n let rawData: any[] = [];\r\n rawData.push(dataItem);\r\n\r\n dataItem = this.formGroup.value;\r\n let obj!: IResponseInputModel;\r\n if (!this.isAgree) {\r\n this.notificationService.showToast(\"Please Select a Response\", \"Warning\");\r\n return;\r\n }\r\n if (this.isAgree == 'Y') {\r\n if (!dataItem.remarks) {\r\n this.notificationService.showToast(\"Please enter Action Remarks\", \"Warning\");\r\n return;\r\n }\r\n if (!dataItem.from) {\r\n this.notificationService.showToast(\"Please enter Action By\", \"Warning\");\r\n return;\r\n }\r\n if (!this.responseList[rowIndex].action_Date) {\r\n this.notificationService.showToast(\"Please enter Action On\", \"Warning\");\r\n return;\r\n }\r\n // if (!this.impYesNo) {\r\n // this.notificationService.showToast(\"Please select Status\", \"Warning\");\r\n // return;\r\n // }\r\n // if (!this.impsta_DED_ID) {\r\n // this.notificationService.showToast(\"Please select Open/Closed With\", \"Warning\");\r\n // return;\r\n // }\r\n // if (!this.responseList[rowIndex].impactDateClosure) {\r\n // this.notificationService.showToast(\"Please enter Date Closure\", \"Warning\");\r\n // return;\r\n // }\r\n // if (this.selectedImpact.length == 0 && this.impYesNo == 'Closed') {\r\n // this.notificationService.showToast(\"Please select Impacts\", \"Warning\");\r\n // return;\r\n // }\r\n }\r\n else {\r\n // if (!dataItem.reason_dropdown) {\r\n // this.notificationService.showToast(\"Please Select a Reason\", \"Warning\");\r\n // return;\r\n // }\r\n if (!dataItem.reason_text) {\r\n this.notificationService.showToast(\"Please Enter a Reason\", \"Warning\");\r\n return;\r\n }\r\n }\r\n if (!!dataItem) {\r\n if (this.isAgree == 'Y') {\r\n obj = {\r\n Review_No: this.Data.requestNo,\r\n Comment_Id: dataItem.cid,\r\n Save_Type: \"PARTIAL\",\r\n IsAgreed: this.isAgree,\r\n Response_Remarks: dataItem.remarks,\r\n Response_By: dataItem.from,\r\n Response_On: this.getFormattedDate(this.responseList[rowIndex].action_Date),\r\n ImpactOpenClose: this.impYesNo,\r\n ImpactStatus_DE_ID: 513,\r\n ImpactStatus_DED_ID: this.impsta_DED_ID,\r\n ImpactDateClosure: this.getFormattedDate(this.responseList[rowIndex].impactDateClosure),\r\n Reason_DE_Id: null,\r\n Reason_DED_Id: null,\r\n Reason_Remarks: null,\r\n UID: this.memberId\r\n }\r\n if (obj) {\r\n this.responseListService.postReviewResponse(obj).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n let payload: IImpactInputModel = {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n impactValues: JSON.stringify(this.impVal),\r\n commentRows: JSON.stringify(rawData),\r\n impactDetails: JSON.stringify(this.selectedImpact),\r\n UID: this.memberId\r\n }\r\n if (payload) {\r\n this.responseListService.postReviewImpacts(payload).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review Response and Impacts updated successfully.\", \"Success\");\r\n this.getResponse();\r\n this.selectedImpact = [];\r\n\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n if (this.isAgree == 'N') {\r\n //let selectedReason = this.reasonDropdown.filter(data => data.deD_Id == dataItem.reason_dropdown)[0];\r\n obj = {\r\n Review_No: this.Data.requestNo,\r\n Comment_Id: dataItem.cid,\r\n Save_Type: \"PARTIAL\",\r\n IsAgreed: this.isAgree,\r\n Response_Remarks: null,\r\n Response_By: null,\r\n Response_On: null,\r\n ImpactOpenClose: null,\r\n ImpactStatus_DE_ID: null,\r\n ImpactStatus_DED_ID: null,\r\n ImpactDateClosure: null,\r\n Reason_DE_Id: null,\r\n Reason_DED_Id: null,\r\n Reason_Remarks: dataItem.reason_text,\r\n UID: this.memberId\r\n }\r\n if (obj) {\r\n this.responseListService.postReviewResponse(obj).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review Response updated successfully.\", \"Success\");\r\n this.getResponse();\r\n this.selectedImpact = [];\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n }\r\n sender.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n this.isAgree = null;\r\n this.DocDate = undefined;\r\n this.impYesNo = null;\r\n this.impsta_DED_ID = null;\r\n this.impDateClose = null;\r\n }\r\n\r\n\r\n selectedImpact: any[] = [];\r\n impVal: any[] = [];\r\n checkImpact: boolean = false;\r\n\r\n checkedImpact(event: any) {\r\n this.impVal = [];\r\n if (event && event.emittingList.length > 0) {\r\n this.selectedImpact = this.selectedImpact.map(x => { x.is_checked = false; return x });\r\n for (let obj of event.emittingList) {\r\n\r\n let _data = this.selectedImpact.filter(x => { x.dED_Id == parseInt(obj.value) });\r\n let is_checked: boolean = this.selectedImpact.some(y => y.dED_ID == obj.additionalValues.deD_Id);\r\n if (!is_checked) {\r\n this.selectedImpact.push({ dE_Id: obj.additionalValues.dE_Id, deD_Id: obj.additionalValues.deD_Id, deD_Description: obj.additionalValues.deD_Description, is_checked: true });\r\n }\r\n else {\r\n this.selectedImpact.filter(x => x.dED_ID == parseInt(obj.additionalValues.deD_Id))[0].is_checked = true;\r\n }\r\n\r\n }\r\n this.selectedImpact = this.selectedImpact.filter(c => c.is_checked == true);\r\n this.checkImpact = true;\r\n }\r\n else {\r\n this.selectedImpact = [];\r\n this.checkImpact = false;\r\n }\r\n\r\n this.selectedImpact.forEach(x => {\r\n this.impVal.push({ DedId: x.deD_Id, val: null });\r\n });\r\n }\r\n\r\n\r\n private closeEditor(grid: any, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.editedProduct = undefined;\r\n this.isAgree = null;\r\n this.DocDate = undefined;\r\n }\r\n\r\n public getFormattedDate(date: any) {\r\n if (date != null) {\r\n let res = (moment(date)).format('DD-MMM-yyyy');\r\n return res;\r\n }\r\n else return undefined;\r\n }\r\n\r\n getValue(selectedText: any, rowIndex: any) {\r\n this.responseList[rowIndex].action_Date = new Date(selectedText.value);\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n public viewAttachmentClick(dataItem: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: {\r\n projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRC', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId, isDeleteEnable: false\r\n },\r\n });\r\n }\r\n\r\n onChange() {\r\n this.toggle = !this.toggle;\r\n }\r\n\r\n\r\n\r\n onChangeImpactyesno(event) {\r\n this.impYesNo = event.value;\r\n }\r\n\r\n onChangeImpactstatewith(event) {\r\n this.impsta_DED_ID = event.value;\r\n }\r\n\r\n getImpactDateValue(selectedText: any, rowIndex: any) {\r\n this.responseList[rowIndex].impactDateClosure = new Date(selectedText.value);\r\n }\r\n\r\n finalSubmit() {\r\n if (!this.responseList.some(x => x.responder_Agreed == null)) {\r\n //if (!this.responseList.some(x => x.responder_Agreed == \"Y\" && (x.impactOpenClose == 'Open'))){\r\n if (!this.responseList.some(x => x.responder_Agreed == \"Y\" && (x.impact == null || x.isAttachment == \"N\"\r\n //|| x.impactOpenClose == null || x.impactStatus == null || x.impactDateClosure == null\r\n ))) {\r\n if (!this.toggle) {\r\n this.notificationService.showToast(\"Please complete the declaration before proceeding to Final Submit\", \"Warning\");\r\n return;\r\n }\r\n this.notificationService.showPopup(\"Are you sure you want to Submit your Response, the report is ready to be sent to DGH, DDGH, DDH, and the PRC Team, hence completing the process of peer review.\", 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let response: IResponseInputModel =\r\n {\r\n Review_No: this.Data.requestNo,\r\n Comment_Id: 0,\r\n Save_Type: \"FINAL\",\r\n IsAgreed: 'Y',\r\n UID: this.memberId,\r\n }\r\n this.responseListService.postReviewResponse(response).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n let impacts: IImpactInputModel =\r\n {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"FINAL\",\r\n impactValues: JSON.stringify(this.valueArray),\r\n commentRows: JSON.stringify(this.selectionAction),\r\n impactDetails: JSON.stringify(this.impactArray),\r\n UID: this.memberId,\r\n }\r\n this.responseListService.postReviewImpacts(impacts).subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review Final Response submitted successfully.\", \"Success\");\r\n this.exitFunc.emit(true);\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Impacts and Attachments are mandatory for impact evidence\", \"Warning\");\r\n }\r\n //}\r\n //else\r\n // {\r\n // this.notificationService.showToast(\"Mandatory to close all the Response before closing the peer review\",\"Warning\");\r\n //}\r\n }\r\n else {\r\n //this.notificationService.showToast(\"Mandatory to fill Response, Impacts, Evidence Remarks and Attachments for Impacts\", \"Warning\");\r\n this.notificationService.showToast(\"Mandatory to fill Response, Impacts, Evidence Remarks\", \"Warning\");\r\n }\r\n\r\n // if (data == 'yes') \r\n // {\r\n // let obj: IImpactInputModel = {\r\n // strDocNumber: this.Data.requestNo,\r\n // Save_Type: \"FINAL\",\r\n // impactValues: JSON.stringify(this.valueArray),\r\n // commentRows: JSON.stringify(this.selectionAction),\r\n // impactDetails: JSON.stringify(this.impactArray),\r\n // UID: this.memberId,\r\n // }\r\n // this.responseListService.postReviewImpacts(obj).subscribe(data => {\r\n // if (data.strErrorMsg == null) {\r\n // this.notificationService.showToast(\"Peer review Final Impacts submitted successfully.\", \"Success\");\r\n // this.exitFunc.emit(true);\r\n // }\r\n // else{\r\n // this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n // }\r\n // });\r\n // }\r\n\r\n\r\n // if (!this.toggle) {\r\n // this.notificationService.showToast(\"Please complete the declaration before proceeding to Final Submit\", \"Warning\");\r\n // return;\r\n // }\r\n // this.notificationService.showPopup(\"Are you sure you want to Submit your Response and Impacts?\", 'Confirm').then(data => {\r\n // if (data == 'yes') {\r\n // let obj: IResponseInputModel = {\r\n // Review_No: this.Data.requestNo,\r\n // Comment_Id: 0,\r\n // Save_Type: \"FINAL\",\r\n // IsAgreed: 'Y',\r\n // UID: this.memberId,\r\n // }\r\n // this.responseListService.postReviewResponse(obj).subscribe(data => {\r\n // if (data.strErrorMsg == null) {\r\n // this.notificationService.showToast(\"Peer review Final Response submitted successfully.\", \"Success\");\r\n // this.exitFunc.emit(true);\r\n // }\r\n // else {\r\n // this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n // }\r\n // });\r\n // }\r\n // });\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.responseList.map((doc, indx) => ({\r\n ...doc,\r\n Sl_No: indx+1,\r\n discipline: doc.discipline ? doc.discipline + ` - ${doc.disc_No ? doc.disc_No : ''}` : '',\r\n potential_Comment: doc.potential_Comment ? doc.potential_Comment + `.${doc.category ? doc.category: ''}` : '',\r\n responder_Agreed: doc.responder_Agreed ? doc.responder_Agreed == 'Y' ? `COMPLY (Action) - ${doc.action_Remarks ? ' - ' + doc.action_Remarks : \"\"}` :\r\n `UNABLE TO COMPLY (Reason) -${doc.reason ? ` - ${doc.reason} ${doc.reason_Remarks ? ' - ' + doc.reason_Remarks : \"\"}` : \" - No Reason\"}` : \"\",\r\n action_By: doc.action_By ? `${doc.action_By} ${doc.action_Date ? ' - ' + moment(doc.action_Date).format('DD-MMM-yyyy') : \"\"}` : \"\",\r\n }))\r\n };\r\n return result;\r\n }\r\n\r\n\r\n public onExcelExport(e: ExcelExportEvent): void {\r\n e.workbook.sheets[0].columns.forEach((data: { width: number; autoWidth: boolean; textAlign: string; }, i) => {\r\n if(i==0 || i==1 )\r\n {\r\n data.width = 30;\r\n data.autoWidth = true;\r\n }\r\n else\r\n {\r\n data.width = 300;\r\n data.autoWidth =false;\r\n }\r\n })\r\n\r\n let values = e.workbook.sheets[0].rows;\r\n values[0].height = 50;\r\n values[0].cells[5].wrap = true;\r\n for (let i = 0; i < e.workbook.sheets[0].columns.length; i++) {\r\n values[0].cells[i].background = '#507bd1'\r\n values[0].cells[i].color = \"#ffffff\"\r\n values[0].cells[i].textAlign = \"center\"\r\n values[0].cells[i].verticalAlign = \"center\"\r\n values[0].cells[i].wrap = true;\r\n }\r\n for (let i = 1; i < values.length; i++) {\r\n var len1 = values[i].cells[2].value && values[i].cells[2].value.length ? values[i].cells[2].value.length : 0\r\n var len2 = values[i].cells[5].value && values[i].cells[5].value.length ? values[i].cells[5].value.length : 0\r\n var len3 = values[i].cells[7].value && values[i].cells[7].value.length ? values[i].cells[7].value.length : 0\r\n var maxlength = Math.max(len1, len2, len3)\r\n if ((len1 > 250) || (len2 > 250) || (len3 > 250)) {\r\n values[i].height = (maxlength / 3) * 1.75;\r\n values[i].cells[2].wrap = true;\r\n values[i].cells[5].wrap = true;\r\n values[i].cells[7].wrap = true;\r\n }\r\n else if((len1 > 100 && len1 < 250) || (len2 > 100 && len2 < 250) || (len3 > 100 && len3 < 250))\r\n {\r\n values[i].height = (maxlength / 4) * 1.75;\r\n values[i].cells[2].wrap = true;\r\n values[i].cells[5].wrap = true;\r\n values[i].cells[7].wrap = true;\r\n }\r\n else if ((len1 < 100 && len1 > 50) || (len2 < 100 && len2 > 50) || (len3 < 100 && len3 > 50)) {\r\n values[i].height = (maxlength / 2) * 2.25;\r\n values[i].cells[2].wrap = true;\r\n values[i].cells[5].wrap = true;\r\n values[i].cells[7].wrap = true;\r\n }\r\n else {\r\n values[i].height = maxlength < 30 ? 20 : maxlength;\r\n values[i].cells[2].wrap = true;\r\n values[i].cells[5].wrap = true;\r\n values[i].cells[7].wrap = true;\r\n }\r\n \r\n let category:string = values[i].cells[3].value\r\n let categoryValue = category.split('.')[1];\r\n values[i].cells[3].value = category.split('.')[0];\r\n if (categoryValue == 'High Risk') { values[i].cells[3].background = '#ff0000'; values[i].cells[3].color = \"#fff\"; values[i].cells[3].bold = true; values[i].cells[3].verticalAlign = \"top\" }\r\n if (categoryValue == 'Medium Risk') { values[i].cells[3].background = '#ffbf00'; values[i].cells[3].color = \"#fff\"; values[i].cells[3].bold = true; values[i].cells[3].verticalAlign = \"top\" }\r\n if (categoryValue == 'Low Risk') { values[i].cells[3].background = '#007800'; values[i].cells[3].color = \"#fff\"; values[i].cells[3].bold = true; values[i].cells[3].verticalAlign = \"top\" }\r\n }\r\n\r\n for (var i = 1; i < values.length; i++) {\r\n for (var j = 0; j < e.workbook.sheets[0].columns.length; j++) {\r\n if (j == 0 || j == 1 || j==4 || j==6) {\r\n values[i].cells[j].textAlign = \"center\";\r\n values[i].cells[j].verticalAlign = \"center\"\r\n }\r\n else {\r\n values[i].cells[j].textAlign = \"left\"\r\n values[i].cells[j].verticalAlign = \"top\"\r\n }\r\n if (i != 0 && j != 3) {\r\n values[i].cells[j].background = (i + 1) % 2 ? '#eff3fb' : '#ffffff';\r\n }\r\n values[i].cells[j].borderTop = { color: '#000', size: 1 };\r\n values[i].cells[j].borderBottom = { color: '#000', size: 1 };\r\n values[i].cells[j].borderLeft = { color: '#000', size: 1 };\r\n values[i].cells[j].borderRight = { color: '#000', size: 1 };\r\n\r\n }\r\n }\r\n for(var i=0;i<1;i++)\r\n {\r\n for(var j=0;j {\r\n this.getResponse();\r\n });\r\n }\r\n\r\n uploadAttachmentClick(dataItem: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-primary-for-upload',\r\n width: '50%',\r\n data: {\r\n projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRI', moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId,\r\n documents: [{ value: dataItem.comment_Id, text: 'EDMS', revisionNo: 'PRI', task_SNo: 0 }],\r\n isEditable: false,isEnableFullScreen:true\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n // const dialog2 = this.dialog.open(FileListComponent, {\r\n // panelClass: ['mat-dialog-secondary'],\r\n // data: { projectId: this.project_Id, docId: dataItem.comment_Id, revisionNo: 'PRI', libraryName: FileUploadLibrary.WorkflowDocument, \r\n // createdBy: this.memberId, isDeleteEnable: true },\r\n // });\r\n // dialog2.afterClosed().subscribe((res: any) => {\r\n this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(\r\n { projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRI' }\r\n )\r\n }).subscribe((_data: any[]) => {\r\n let x: string;\r\n _data.length > 0 ? x = 'Y' : x = 'N'\r\n if (dataItem.isAttachment != x) {\r\n dataItem.isAttachment = x\r\n\r\n let obj: IImpactInputModel = {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n impactValues: JSON.stringify(this.valueArray),\r\n commentRows: JSON.stringify(dataItem),\r\n impactDetails: JSON.stringify(this.impactArray),\r\n UID: this.memberId,\r\n }\r\n this.responseListService.postReviewImpacts(obj).subscribe();\r\n }\r\n });\r\n // });\r\n });\r\n }\r\n\r\n\r\n\r\n addImpacts() {\r\n let obj: any = {};\r\n obj[\"impactTypes\"] = this.impactType;\r\n // Update Impact value details, when already posted\r\n if (this.valueArray.length > 0) {\r\n obj[\"valueArray\"] = this.valueArray;\r\n }\r\n\r\n let dialogRef = this.dialog.open(AddImpactDialogComponent, {\r\n panelClass: 'add-impact-mat-dialog-primary',\r\n data: obj\r\n })\r\n dialogRef.afterClosed().subscribe((data) => {\r\n // Update the selected Impact details\r\n if (data) {\r\n this.impactArray = data.impactArray;\r\n this.valueArray = data.valueArray;\r\n }\r\n });\r\n }\r\n\r\n // onSelectionChange(event: any): void {\r\n // if (event['selectedRows'].length > 0) {\r\n // if(event['selectedRows'][0]['dataItem'].responder_Agreed == 'Y'){\r\n // event['selectedRows'].forEach((element:any) => {\r\n // element.dataItem.isSelected = true;\r\n // this.selectionAction.push(element.dataItem);\r\n // });\r\n // }\r\n // }\r\n // if (event['deselectedRows'].length > 0) {\r\n // if(event['deselectedRows'][0]['dataItem'].responder_Agreed == 'Y'){\r\n // event['deselectedRows'].forEach((element:any) => {\r\n // for (let i = 0; i < this.selectionAction.length; i++) {\r\n // if (element.dataItem.comment_Id == this.selectionAction[i].comment_Id) {\r\n // element.dataItem.isSelected = false;\r\n // this.selectionAction.splice(i, 1);\r\n // }\r\n // }\r\n // });\r\n // }\r\n // }\r\n // }\r\n\r\n saveImpact() {\r\n if (this.selectionAction.length == 0) {\r\n let isImpactAvailable = true;\r\n this.selectionAction.forEach(comment => {\r\n if (!comment.impact) {\r\n isImpactAvailable = false;\r\n }\r\n });\r\n\r\n if (this.valueArray.length > 0 || isImpactAvailable) {\r\n for (let i = 0; i < this.selectionAction.length; i++) {\r\n if (this.selectionAction[i].evidence_Remarks == null) { this.selectionAction[i].evidence_Remarks = ''; }\r\n }\r\n\r\n let payload: IImpactInputModel = {\r\n strDocNumber: this.Data.requestNo,\r\n Save_Type: \"PARTIAL\",\r\n impactValues: JSON.stringify(this.valueArray),\r\n commentRows: JSON.stringify(this.selectionAction),\r\n impactDetails: JSON.stringify(this.impactArray),\r\n UID: this.memberId\r\n }\r\n this.responseListService.postReviewImpacts(payload)\r\n .subscribe(data => {\r\n if (data.strErrorMsg == null) {\r\n this.notificationService.showToast(\"Peer review impacts updated successfully.\", \"Success\");\r\n this.getResponse();\r\n }\r\n else {\r\n this.notificationService.showToast(data.strErrorMsg, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please enter at least one Impact.\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this.notificationService.showToast(\"Please select at least one Comment.\", \"Warning\");\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}} {{ dataItem.disc_No ? ' - '+dataItem.disc_No:''}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.panel_Comments}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n {{dataItem.potential_Comment}}\r\n
\r\n
\r\n \r\n

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

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.submitted_By}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Comply - {{dataItem.action_Remarks}}\r\n \r\n
\r\n
\r\n \r\n Unable to Comply - {{dataItem.reason_Remarks}}\r\n \r\n
\r\n
\r\n \r\n \r\n Select Response\r\n \r\n Comply\r\n Unable to Comply\r\n \r\n \r\n \r\n Action\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.action_By}} {{dataItem.action_Date ? ' - '+(dataItem.action_Date | date:'dd-MMM-yyyy') :''}} \r\n \r\n \r\n
\r\n \r\n Action By\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.impact}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
The responses for each of the disciplines has been checked/verified by me.
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Red: High Risk comment related to major deviation from Codes/Standards, Employer’s & Contract requirements, DBR, Statutory, EHS and Security.

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

Amber: Medium Risk comments related to Interface and coordination issues, Alternate solutions for cost-time effectiveness. Comments not in Red and Green will be categorised to Amber.

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

LGreen colour: Low Risk comments related to more clarity of information, typo-error, legibility issues.

\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { SeriesLabelsVisualArgs } from '@progress/kendo-angular-charts';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n public pfaDataList:Array = [];\r\n public pfaGridDataList:Array = [];\r\n public enableFilter = false;\r\n public enableFullscreen = false;\r\n public categorieList:Array =[];\r\n public totalName:string;\r\n overallEnable = false;\r\n coursesEnable:boolean = false;\r\n isDataLoaded: number = 0;\r\n public pageSize = 20;\r\n public pageSizes = [20, 40, 60, 80, 100];\r\n public dashboardDetails:Array=[];\r\n\r\n\r\n constructor(private _peerReviewService:PeerReviewService,private _commonServices:CommonService) {\r\n this.excelData = this.excelData.bind(this);\r\n }\r\n\r\n public excelData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.pfaGridDataList\r\n };\r\n return result;\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.initialDataLoad();\r\n\r\n }\r\n\r\n initialDataLoad(){\r\n const input = {intUID : this._commonServices.getLoggedInUserId()}\r\n this._peerReviewService.getPRDashboard(input).subscribe((res:any)=>{\r\n this.isDataLoaded == 1;\r\n this.pfaGridDataList=res.prDashboardDetailsOutputModel;\r\n this.pfaDataList = res.prDashboardSummaryOutputModel;\r\n });\r\n this.categorieList = this.pfaDataList.map(item => item.division);\r\n var total = this.pfaDataList.reduce((total, item) => total + item.no_of_Reviews, 0);\r\n this.totalName = \"Total PAF - \"+total+\" Nos.completed\"\r\n }\r\n\r\n public labelVisual(args: SeriesLabelsVisualArgs): Element {\r\n const label: any = args.createVisual();\r\n label.options.set('cursor', 'pointer');\r\n return label;\r\n }\r\n\r\n getpfaGridData(){\r\n return [\r\n {projectBrief:\"O21566-TC4 Building, HQ Chennai\",sgmtHead:\"REN\",peerReviewDate:\"03-04-2022\",totalComments:\"48\",l1:\"13\",l3:\"32\",l2:\"3\",PRStatus:\"P\",ImplactStatus:\"P\"},\r\n {projectBrief:\"T22326 - Medical College & Hospital Campus at Bongaigaon & Golaghat\",sgmtHead:\"JA\",peerReviewDate:\"06-06-2022\",totalComments:\"48\",l1:\"15\",l3:\"16\",l2:\"17\",PRStatus:\"Arch pending\",ImplactStatus:\"x\"},\r\n {projectBrief:\"T22082 - Redevelopment of Assam Police Reserve Campus Guwahati\",sgmtHead:\"CKSR\",peerReviewDate:\"21-06-2022\",totalComments:\"51\",l1:\"25\",l3:\"16\",l2:\"10\",PRStatus:\"P\",ImplactStatus:\"P\"},\r\n {projectBrief:\"T22447 - Construction of 1000 bed Super Specialty Hospital, TIMS Hyderabad\",sgmtHead:\"CKSR\",peerReviewDate:\"07-09-2022\",totalComments:\"45\",l1:\"10\",l3:\"29\",l2:\"06\",PRStatus:\"P\",ImplactStatus:\"P\"},\r\n {projectBrief:\"T22478-Proposed commercial building BKC Mumbai\",sgmtHead:\"REN\",peerReviewDate:\"01-11-2022\",totalComments:\"103\",l1:\"16\",l3:\"31\",l2:\"12\",PRStatus:\"P\",ImplactStatus:\"x\"}\r\n ]\r\n }\r\n\r\n getpfaData(){\r\n return [\r\n {\r\n \"division\": \"HEALTH\",\r\n \"reviews\": 1\r\n },\r\n {\r\n \"division\": \"ITOS\",\r\n \"reviews\": 2\r\n },\r\n {\r\n \"division\": \"DATACENTER\",\r\n \"reviews\": 0\r\n },\r\n {\r\n \"division\": \"RESIDENTIAL\",\r\n \"reviews\": 2\r\n }\r\n ]\r\n }\r\n\r\n toggleFullscreen(chart: string) {\r\n if(chart == 'overallEnable'){\r\n this.overallEnable = !this.overallEnable;\r\n } \r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
PAF\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

   Show   

\r\n \r\n of\r\n \r\n   Items   \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n Grid Settings\r\n
\r\n
\r\n \r\n \r\n {{ !enableFullscreen ? \"Expand\" : \"Collapse\" }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ rowIndex + 1 }}\r\n \r\n \r\n \r\n \r\n {{ dataItem.project_code }} - {{ dataItem.project_desc}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.seg_head}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.review_date}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.total_comments}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ dataItem.review_closed ? 'Completed':'Pending'}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.review_closed ? 'Completed':'Pending'}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { AddCommentsComponent } from \"./add-comments/add-comments.component\";\r\nimport { FinalReportComponent } from \"./reports/final-report/final-report.component\";\r\nimport { PeerReviewCommentsSummaryComponent } from \"./reports/peer-review-comments-summary/peer-review-comments-summary.component\";\r\nimport { ReviewCommentsComponent } from \"./review-comments/review-comments.component\";\r\nimport { ReviewImpactComponent } from \"./review-impact/review-impact.component\";\r\nimport { ReviewListComponent } from \"./review-list/review-list.component\";\r\nimport { ReviewResponseComponent } from \"./review-response/review-response.component\";\r\nimport { ReviewStatusComponent } from \"./review-status/review-status.component\";\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\n\r\nexport const peereviewRoutes: Routes = [\r\n { path: 'review-list', component: ReviewListComponent, data: { title: 'PEER REVIEW', isProjectCodeRequired: true }} ,\r\n { path: 'review-status', component: ReviewStatusComponent, data: { title: 'PEER REVIEW', isProjectCodeRequired: true }} ,\r\n { path: 'review-comments', component: ReviewCommentsComponent, data: { title: 'PEER REVIEW', isProjectCodeRequired: true }} ,\r\n { path: 'review-response', component: ReviewResponseComponent, data: { title: 'PEER REVIEW', isProjectCodeRequired: true }},\r\n { path: 'review-impacts', component: ReviewImpactComponent, data: { title: 'PEER REVIEW', isProjectCodeRequired: true }},\r\n { path: 'review-add-comments', component: AddCommentsComponent, data: { title: 'PEER REVIEW', isProjectCodeRequired: false }},\r\n { path: 'final-report',component: FinalReportComponent, data: { title: 'FINAL REPORT', isProjectCodeRequired: false }},\r\n { path: 'dashboard',component: DashboardComponent, data: { title: 'DASHBOARD', isProjectCodeRequired: false }},\r\n { path: 'comments-summary', component: PeerReviewCommentsSummaryComponent, data: {title:'COMMENTS SUMMARY REPORT', isProjectCodeRequired: false}}\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(peereviewRoutes)],\r\n exports: [RouterModule]\r\n})\r\n\r\n\r\nexport class PeereviewRoutingModule { }","import { Time } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { IReviewListViewModel } from 'src/app/ViewModel/PeerReviewModel';\r\n\r\n@Pipe({\r\n name: 'sessionpipe'\r\n})\r\nexport class SessionpipePipe implements PipeTransform {\r\n\r\n transform(value:IReviewListViewModel): unknown {\r\n let session:String = 'FN/AN';\r\n let fromTimeObj = value.time_From.toString().split(':');\r\n let fromTime:Time={hours:Number(fromTimeObj[0]),minutes:Number(fromTimeObj[1])};\r\n let toTimeObj = value.time_To.toString().split(':');\r\n let toTime:Time={hours:Number(toTimeObj[0]),minutes:Number(toTimeObj[1])};\r\n\r\n if(fromTime.hours >13)\r\n {\r\n session = 'AN';\r\n }\r\n else if(toTime.hours <=13)\r\n {\r\n session = 'FN'\r\n }\r\n\r\n return session;\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IPRInvitationDisciplineMasterDataOutputModel, IPRInvitationLocationMasterDataOutputModel, IPRInvitationMembersMasterDataOutputModel, IPRInvitationRoleMasterDataOutputModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { MemberECDMDOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-pr-invitation',\r\n templateUrl: './pr-invitation.component.html',\r\n styleUrls: ['./pr-invitation.component.css']\r\n})\r\nexport class PrInvitationComponent implements OnInit {\r\n projectId: number = 0;\r\n groupId: number = 0;\r\n memberId: number = 0;\r\n CurrentProjectDetails!: ProjectViewModel;\r\n PRInvitationRoleMasterDataOutputModel: IPRInvitationRoleMasterDataOutputModel[] = [];\r\n PRInvitationDisciplineMasterDataOutputModel: IPRInvitationDisciplineMasterDataOutputModel[] = [];\r\n PRInvitationLocationMasterDataOutputModel: IPRInvitationLocationMasterDataOutputModel[] = [];\r\n PRInvitationMembersMasterDataOutputModel: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n formPRInvitation: FormGroup;\r\n selectedLocation!: number;\r\n /** Cart params data */\r\n cartARequest = {}\r\n cartBRequest = {}\r\n\r\n /** Left side cart data. Filtered with right side data */\r\n filteredCartAList: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n filteredCartBList: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n\r\n /** Cart selected (right side) data */\r\n cartASelectedList: any[] = [];\r\n cartBSelectedList: any[] = [];\r\n cartASelectedListCopy: any[] = [];\r\n cartBSelectedListCopy: any[] = [];\r\n selectedDGHBind: Array = [];\r\n selectedDDGHBind: Array = [];\r\n selectedOtherBind: Array = [];\r\n selectedDescBind: Array = [];\r\n selectedOtherHeadsBind: Array = [];\r\n\r\n ExistingPRInviteMembers!: any[];\r\n GridAData: any[] = [];\r\n GridBData: any[] = [];\r\n gridViewA!: GridDataResult;\r\n gridViewB!: GridDataResult;\r\n pageSizeA = 10;\r\n skipA = 0;\r\n pageSizeB = 20;\r\n skipB = 0;\r\n PRreqno: string;\r\n\r\n dghRole: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n otherHeadsRole: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n ddghRole: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n othermember: IPRInvitationMembersMasterDataOutputModel[] = [];\r\n selectedDGH: any[] = [];\r\n selectedOtherHeads: any[] = [];\r\n selectedDDGH: any[] = [];\r\n selectedOthers: any[] = [];\r\n bothDghnDdgh: any[] = [];\r\n selectedDiscipline: any[] = [];\r\n ecdmem: MemberECDMDOutput[] = [];\r\n mecdmem: MemberECDMDOutput[] = [];\r\n decdmem: MemberECDMDOutput[] = [];\r\n\r\n\r\n constructor(public dialogRef: MatDialogRef, public dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public _data: any, private _CommonService: CommonService, private _NotificationService: NotificationService, private _LoaderService: LoaderService, private _PRService: PeerReviewService, private _formBuilder: FormBuilder) {\r\n this.formPRInvitation = this._formBuilder.group({\r\n location: new FormControl('', [Validators.required]),\r\n formLocation: new FormControl(''),\r\n role: new FormControl(''),\r\n formRole: new FormControl(''),\r\n discipline: new FormControl(''),\r\n formDiscipline: new FormControl('')\r\n });\r\n this.PRreqno = \"Peer Review Invitation for \" + this._data.newReqNo;\r\n }\r\n\r\n\r\n bindEditData() {\r\n this.bothDghnDdgh = []\r\n var K = [];\r\n var L = [];\r\n var M = [];\r\n var N = [];\r\n var O = [];\r\n var ddghList = this.ddghRole.filter(obj1 => JSON.parse(this._data.editData[0].jsnDDGH)?.some(obj2 => obj2.member_id === obj1.member_id))\r\n ddghList.filter((x: any) => {\r\n K = [...K, this.getAsCartSelectedValue(x.member_id, x.emp_name, x)];\r\n this.checkedDdgh(K);\r\n })\r\n this.selectedDDGHBind = ddghList.map(x => x.member_id);\r\n\r\n var dghList = this.dghRole.filter(obj1 => JSON.parse(this._data.editData[0].jsnDDh)?.some(obj2 => obj2.member_id === obj1.member_id))\r\n dghList.filter((x: any) => {\r\n L = [...L, this.getAsCartSelectedValue(x.member_id, x.emp_name, x)];\r\n this.checkedDgh(L);\r\n })\r\n this.selectedDGHBind = dghList.map(x => x.member_id);\r\n\r\n var otherHeads = this.otherHeadsRole.filter(obj1 => JSON.parse(this._data.editData[0].jsnDDh)?.some(obj2 => obj2.member_id === obj1.member_id))\r\n otherHeads.filter((x: any) => {\r\n O = [...O, this.getAsCartSelectedValue(x.member_id, x.emp_name, x)];\r\n this.checkedOtherHeads(O);\r\n })\r\n this.selectedOtherHeadsBind = otherHeads.map(x => x.member_id);\r\n var otherList = this.othermember.filter(obj1 => JSON.parse(this._data.editData[0].jsnOther)?.some(obj2 => obj2.member_id === obj1.member_id))\r\n otherList.filter((x: any) => {\r\n M = [...M, this.getAsCartSelectedValue(x.member_id, x.emp_name, x)];\r\n this.checkedOthers(M);\r\n })\r\n this.selectedOtherBind = otherList.map(x => x.member_id);\r\n\r\n var DescList = this.PRInvitationDisciplineMasterDataOutputModel.filter(obj1 => JSON.parse(this._data.editData[0].jsnDiscipline)?.some(obj2 => obj2.deD_Id === obj1.deD_Id))\r\n DescList.filter((x: any) => {\r\n N = [...N, this.getAsCartSelectedValue(x.deD_Id, x.discipline, x)];\r\n this.checkedDiscipline(N);\r\n })\r\n this.selectedDescBind = DescList.map(x => x.deD_Id);\r\n this.selectedLocation = JSON.parse(this._data.editData[0].meetingLocation)[0].deD_Id;\r\n\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.projectId = this._CommonService.getProjectId();\r\n this.memberId = this._CommonService.getLoggedInUserId();\r\n this.groupId = this._CommonService.getLoggedInUserGroupId();\r\n this.CurrentProjectDetails = this._CommonService.getCurrentProjectDetails();\r\n this.GetPRInvitationMembers();\r\n this.setCartAParams();\r\n this.setCartBParams();\r\n\r\n\r\n this._PRService.getECDMembers({\r\n intProjectID: this.projectId,\r\n intGroupID: this.groupId,\r\n intUID: this.memberId\r\n }).subscribe(res => {\r\n this.ecdmem = res.filter(x => x.short_desc == \"ECD\");\r\n this.mecdmem = res.filter(x => x.short_desc == \"MECD\");\r\n this.decdmem = res.filter(x => x.short_desc == \"DECD\");\r\n });\r\n\r\n this._PRService.getPRInvitationMasterData({ intUID: this.memberId, strDocNumber: this._data.requestNo })\r\n .subscribe(async (res: any) => {\r\n if (res) {\r\n this.PRInvitationLocationMasterDataOutputModel = res['prInvitationLocationMasterDataOutputModel'].map((x: any) => { x.deD_Description = x.deD_Short_Description + ' - ' + x.deD_Description; return x; });\r\n this.PRInvitationMembersMasterDataOutputModel = res['prInvitationMembersMasterDataOutputModel'];\r\n this.dghRole = this.PRInvitationMembersMasterDataOutputModel.filter(x => x.category == 'DGH' && x.psno == '80580');\r\n this.otherHeadsRole = this.PRInvitationMembersMasterDataOutputModel.filter(x => x.category == 'DGH' && x.psno != '80580');\r\n this.ddghRole = this.PRInvitationMembersMasterDataOutputModel.filter(x => x.category == 'DDGH');\r\n this.othermember = this.PRInvitationMembersMasterDataOutputModel.filter(x => x.category == 'OTHERS');\r\n if (this._data.editData != undefined) {\r\n this.bindEditData();\r\n }\r\n if(this._data.editData == undefined)\r\n {\r\n this.defaultPanelMembersList();\r\n }\r\n\r\n }\r\n }, err => { this._NotificationService.showToast(err, \"Error\"); });\r\n\r\n this._PRService.getPRInvitationRoleMasterData({ intUID: this.memberId })\r\n .subscribe(async (res: any) => {\r\n if (res.length > 0) {\r\n this.PRInvitationRoleMasterDataOutputModel = res.map((x: any) => { x.deD_Description = x.deD_Short_Description + ' - ' + x.deD_Description; return x; });\r\n }\r\n }, err => { this._NotificationService.showToast(err, \"Error\"); });\r\n\r\n this._PRService.getPRInvitationDisciplineMasterData({ intUID: this.memberId, intGroupID: this.groupId, intProjectID: this._CommonService.getProjectId(), intModuleID: 31 })\r\n .subscribe(async (res: any) => {\r\n if (res.length > 0) {\r\n this.PRInvitationDisciplineMasterDataOutputModel = res.map((x: any) => { x.discipline = x.discipline_Short_Description + ' - ' + x.discipline; return x; });\r\n }\r\n }, err => { this._NotificationService.showToast(err, \"Error\"); });\r\n }\r\n\r\n public pageChangeA(event: PageChangeEvent): void {\r\n this.skipA = event.skip;\r\n this.loadItemsA();\r\n }\r\n\r\n defaultPanelMembersList()\r\n {\r\n var deafultList:String[]= ['14866', '196929','20023672','20052371','20307019','20349067','20317694'];\r\n let N = []\r\n let desc = new Set();\r\n deafultList.forEach(x=> {\r\n if(this.PRInvitationMembersMasterDataOutputModel.some(y => y.psno==x))\r\n {\r\n let mem = this.PRInvitationMembersMasterDataOutputModel.find(m => m.psno==x);\r\n let memDesc = mem.discipline_ded_id;\r\n if(!desc.has(memDesc))\r\n {\r\n desc.add(memDesc)\r\n }\r\n N = [...N, this.getAsCartSelectedValue(mem.member_id, mem.emp_name, mem)];\r\n this.SaveSelectedCartEditBItems(N);\r\n }\r\n })\r\n this.selectedDiscipline.forEach(x => {\r\n let filterdata = this.PRInvitationMembersMasterDataOutputModel.filter(item => item.discipline_ded_id == x.deD_Id);\r\n this.filteredCartBList = this.filteredCartBList.concat(filterdata);\r\n })\r\n this.selectedDescBind = [...desc];\r\n this.cartBSelectedList = N;\r\n this.setCartBParams()\r\n }\r\n\r\n\r\n private loadItemsA(): void {\r\n this.gridViewA = {\r\n data: this.GridAData.slice(this.skipA, this.skipA + this.pageSizeA),\r\n total: this.GridAData.length,\r\n };\r\n\r\n if (this.gridViewA[\"total\"] == 0) {\r\n this.pageSizeA = 10;\r\n this.skipA = 0;\r\n }\r\n }\r\n\r\n public pageChangeB(event: PageChangeEvent): void {\r\n this.skipB = event.skip;\r\n this.loadItemsB();\r\n }\r\n\r\n private loadItemsB(): void {\r\n this.gridViewB = {\r\n data: this.GridBData.slice(this.skipB, this.skipB + this.pageSizeB),\r\n total: this.GridBData.length,\r\n };\r\n\r\n if (this.gridViewB[\"total\"] == 0) {\r\n this.pageSizeB = 20;\r\n this.skipB = 0;\r\n }\r\n }\r\n\r\n checkedDgh(event: any) {\r\n if (event && event.length > 0) {\r\n this.selectedDGH = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n for (let obj of event) {\r\n this.selectedDGH.push(obj.additionalValues);\r\n }\r\n if (this.selectedDGH.length > 0) {\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n else {\r\n this.selectedDGH = [];\r\n }\r\n if (event.length == 0) {\r\n this.selectedDGH = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n\r\n checkedOtherHeads(event: any) {\r\n if (event && event.length > 0) {\r\n this.selectedOtherHeads = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n for (let obj of event) {\r\n this.selectedOtherHeads.push(obj.additionalValues);\r\n }\r\n if (this.selectedOtherHeads.length > 0) {\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n\r\n } \r\n else {\r\n this.selectedOtherHeads = [];\r\n }\r\n if (event.length == 0) {\r\n this.selectedOtherHeads = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n\r\n checkedDdgh(event: any) {\r\n if (event && event.length > 0) {\r\n this.selectedDDGH = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n for (let obj of event) {\r\n this.selectedDDGH.push(obj.additionalValues);\r\n }\r\n if (this.selectedDDGH.length > 0) {\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n else {\r\n this.selectedDDGH = [];\r\n }\r\n\r\n if (event.length == 0) {\r\n this.selectedDDGH = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n checkedOthers(event: any) {\r\n if (event && event.length > 0) {\r\n this.selectedOthers = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n for (let obj of event) {\r\n this.selectedOthers.push(obj.additionalValues);\r\n }\r\n if (this.selectedOthers.length > 0) {\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n else {\r\n this.selectedOthers = [];\r\n }\r\n\r\n if (event.length == 0) {\r\n this.selectedOthers = [];\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n }\r\n\r\n checkedDiscipline(event: any) {\r\n // console.log(event);\r\n if (event && event.length > 0) {\r\n this.selectedDiscipline = [];\r\n this.filteredCartBList = [];\r\n for (let obj of event) {\r\n this.selectedDiscipline.push(obj.additionalValues);\r\n }\r\n }\r\n else {\r\n this.selectedDiscipline = [];\r\n this.filteredCartBList = [];\r\n }\r\n this.selectedDiscipline.forEach(x => {\r\n let filterdata = this.PRInvitationMembersMasterDataOutputModel.filter(item => item.discipline_ded_id == x.deD_Id);\r\n this.filteredCartBList = this.filteredCartBList.concat(filterdata);\r\n })\r\n if (this._data.editData != undefined) {\r\n this.cartASelectedList = this.filteredCartBList.filter(obj1 => JSON.parse(this._data.editData[0].strDiscipline).some(obj2 => obj2.member_id == obj1.member_id));\r\n\r\n var N = [];\r\n this.cartASelectedList.filter((x: any) => {\r\n N = [...N, this.getAsCartSelectedValue(x.member_id, x.emp_name, x)];\r\n this.SaveSelectedCartEditBItems(N);\r\n })\r\n this.cartBSelectedList = N;\r\n this.setCartAParams();\r\n }\r\n\r\n this.setCartBParams();\r\n }\r\n\r\n cancelRoleData(dataItem: any, rowIndex: any) {\r\n if (dataItem.category == 'DGH') {\r\n let dghindex = this.selectedDGH.indexOf(dataItem);\r\n this.selectedDGH.splice(dghindex, 1);\r\n }\r\n else if (dataItem.category == 'DDGH') {\r\n let ddghindex = this.selectedDDGH.indexOf(dataItem);\r\n this.selectedDDGH.splice(ddghindex, 1);\r\n }\r\n else if (dataItem.category == 'OTHERS') {\r\n let otherindex = this.selectedOthers.indexOf(dataItem);\r\n this.selectedOthers.splice(otherindex, 1);\r\n }\r\n this.bothDghnDdgh = this.selectedDGH.concat(this.selectedOtherHeads.concat(this.selectedDDGH.concat(this.selectedOthers)));\r\n }\r\n\r\n GetPRInvitationMembers() {\r\n this.ExistingPRInviteMembers = [];\r\n this._PRService.getPRInvitationMembers({ member_Id: this.memberId, review_No: this._data.requestNo })\r\n .subscribe(async (res: any) => {\r\n if (res) {\r\n this.selectedLocation = res.prInviteLocationOutputModel[0]?.lprE_DED_Id;\r\n this.ExistingPRInviteMembers = res.prInviteMembersOutputModel;\r\n }\r\n }, err => { this._NotificationService.showToast(err, \"Error\"); });\r\n }\r\n\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(FormGroup: FormGroup, FormControlName: string,): any {\r\n return FormGroup.get(FormControlName);\r\n }\r\n\r\n setFormValue(form: FormGroup, formControlName: string, value: any) {\r\n form.get(formControlName)?.setValue(value);\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n\r\n onselectedValueChange(event: any, formGroupName: string, formControlName: string) {\r\n this.formPRInvitation.get(formControlName)?.setValue(event.additionalValues.additionalValues);\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n cancelRowAData(dataItem: any, rowIndex: any) {\r\n this.GridAData.splice(rowIndex, 1);\r\n this.loadItemsA();\r\n }\r\n\r\n cancelRowBData(dataItem: any, rowIndex: any) {\r\n this.GridBData.splice(rowIndex, 1);\r\n this.loadItemsB();\r\n }\r\n\r\n /**\r\n * Change data to respective cart selected data format\r\n * @param value \r\n * @param text \r\n */\r\n getAsCartSelectedValue(value: string | number, text: string, x: any) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text,\r\n additionalValues: x\r\n };\r\n return output;\r\n }\r\n\r\n async OnRoleChange(event: any) {\r\n this.cartASelectedList = [];\r\n this.filteredCartAList = [];\r\n this.cartASelectedListCopy = [];\r\n\r\n const objExistingPRInviteMembers = await this.PRInvitationMembersMasterDataOutputModel.filter(item => item.member_category_ded_id === event.value).filter(({ member_id: A_member_id, member_category_ded_id: member_category_ded_id, role_de_id: role_de_id, role_ded_id: role_ded_id }) => this.GridAData.filter(h => h.member_category_ded_id == member_category_ded_id && h.role_de_id == role_de_id && h.role_ded_id == role_ded_id).some(({ member_id: B_member_id }) => A_member_id === B_member_id));\r\n\r\n if (this.GridAData && this.GridAData.length > 0 && objExistingPRInviteMembers && objExistingPRInviteMembers.length > 0) {\r\n await objExistingPRInviteMembers.map(l => {\r\n let cartValue = this.getAsCartSelectedValue(l.member_id, l.emp_name, l);\r\n this.cartASelectedList.push(cartValue);\r\n this.cartASelectedListCopy.push(cartValue);\r\n });\r\n\r\n const objNewPRInviteMembers = await this.PRInvitationMembersMasterDataOutputModel.filter(item => item.member_category_ded_id === event.value).filter(({ member_id: A_member_id, member_category_ded_id: member_category_ded_id, role_de_id: role_de_id, role_ded_id: role_ded_id }) => this.GridAData.filter(h => member_category_ded_id == h.member_category_ded_id && role_de_id == h.role_de_id && role_ded_id == h.role_ded_id).every(({ member_id: B_member_id }) => A_member_id !== B_member_id));\r\n\r\n if (objNewPRInviteMembers)\r\n this.filteredCartAList = objNewPRInviteMembers;\r\n\r\n this.setCartAParams();\r\n }\r\n else {\r\n this.filteredCartAList = this.PRInvitationMembersMasterDataOutputModel.filter(item => item.member_category_ded_id === event.value);\r\n this.cartASelectedList = [];\r\n this.setCartAParams();\r\n }\r\n }\r\n\r\n async OnDisciplineChange(event: any) {\r\n this.cartBSelectedList = [];\r\n this.filteredCartBList = [];\r\n this.cartBSelectedListCopy = [];\r\n\r\n const objExistingPRInviteMembers = await this.PRInvitationMembersMasterDataOutputModel.filter(item => item.discipline_ded_id === event.value).filter(({ member_id: A_member_id, member_category_ded_id: member_category_ded_id, discipline_de_id: discipline_de_id, discipline_ded_id: discipline_ded_id }) => this.GridBData.filter(h => member_category_ded_id == h.member_category_ded_id && discipline_de_id == h.discipline_de_id && discipline_ded_id == h.discipline_ded_id).some(({ member_id: B_member_id }) => A_member_id === B_member_id));\r\n\r\n if (this.GridBData && this.GridBData.length > 0 && objExistingPRInviteMembers && objExistingPRInviteMembers.length > 0) {\r\n await objExistingPRInviteMembers.map(l => {\r\n let cartValue = this.getAsCartSelectedValue(l.member_id, l.emp_name, l);\r\n this.cartBSelectedList.push(cartValue);\r\n this.cartBSelectedListCopy.push(cartValue);\r\n });\r\n\r\n const objNewPRInviteMembers = await this.PRInvitationMembersMasterDataOutputModel.filter(item => item.discipline_ded_id === event.value).filter(({ member_id: A_member_id, member_category_ded_id: member_category_ded_id, discipline_de_id: discipline_de_id, discipline_ded_id: discipline_ded_id }) => this.GridBData.filter(h => member_category_ded_id == h.member_category_ded_id && discipline_de_id == h.discipline_de_id && discipline_ded_id == h.discipline_ded_id).every(({ member_id: B_member_id }) => A_member_id !== B_member_id));\r\n\r\n if (objNewPRInviteMembers)\r\n this.filteredCartBList = objNewPRInviteMembers;\r\n\r\n this.setCartBParams();\r\n }\r\n else {\r\n this.filteredCartBList = this.PRInvitationMembersMasterDataOutputModel.filter(item => item.discipline_ded_id == event.value);\r\n this.cartBSelectedList = [];\r\n this.setCartBParams();\r\n }\r\n }\r\n\r\n /**\r\n * Setting cart A data\r\n */\r\n setCartAParams() {\r\n this.cartARequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartASelectedList\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'emp_name',\r\n 'valueField': 'member_id',\r\n 'cartLabel': 'Role-Wise Members',\r\n 'minimumSelectedItemCount': 0,\r\n 'maximumSelectedItemCount': -1\r\n },\r\n 'dataSource': this.filteredCartAList,\r\n }\r\n }\r\n\r\n /**\r\n * Setting cart B data\r\n */\r\n setCartBParams() {\r\n this.cartBRequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartBSelectedList\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'emp_name',\r\n 'valueField': 'member_id',\r\n 'cartLabel': 'Discipline-Wise Members',\r\n 'minimumSelectedItemCount': 0,\r\n 'maximumSelectedItemCount': -1\r\n },\r\n 'dataSource': this.filteredCartBList,\r\n }\r\n }\r\n\r\n async SaveSelectedCartAItems(event: any[]) {\r\n if (event && event.length > 0) {\r\n await this.GridAData.filter(a => a.member_category_de_id === event.map(x => x.additionalValues.member_category_de_id)[0] && a.role_ded_id === event.map(x => x.additionalValues.role_ded_id)[0]).forEach(x => this.GridAData.splice(this.GridAData.indexOf(x), 1))\r\n\r\n event.map(x => { this.GridAData.push(x.additionalValues) });\r\n }\r\n else {\r\n await this.GridAData.filter(a => a.member_category_de_id === this.getFormValue(this.formPRInvitation, 'role').value[\"dE_Id\"] && a.member_category_ded_id === this.getFormValue(this.formPRInvitation, 'role').value[\"deD_Id\"]).forEach(x => this.GridAData.splice(this.GridAData.indexOf(x), 1))\r\n }\r\n await this.loadItemsA();\r\n\r\n this._NotificationService.showToast(\"Members Added for PR Invite!!!\", \"Success\");\r\n }\r\n\r\n async SaveSelectedCartBItems(event: any[]) {\r\n if (event && event.length > 0) {\r\n event.forEach(x => {\r\n if (!this.GridBData.some(y => y.member_id == x.additionalValues.member_id && y.discipline_ded_id == x.additionalValues.discipline_ded_id)) {\r\n this.GridBData.push(x.additionalValues);\r\n }\r\n });\r\n }\r\n\r\n await this.loadItemsB();\r\n this._NotificationService.showToast(\"Members Added for PR Invite!!!\", \"Success\");\r\n this.cartBSelectedList = [];\r\n }\r\n\r\n async SaveSelectedCartEditBItems(value: any[]) {\r\n if (value && value.length > 0) {\r\n value.forEach(x => {\r\n if (!this.GridBData.some(y => y.member_id == x.additionalValues.member_id && y.discipline_ded_id == x.additionalValues.discipline_ded_id)) {\r\n this.GridBData.push(x.additionalValues);\r\n }\r\n });\r\n }\r\n\r\n await this.loadItemsB();\r\n //this.cartBSelectedList = [];\r\n }\r\n\r\n async SaveInvite() {\r\n //if (this.formPRInvitation.valid && this.selectedDGH.length>0 && this.selectedDDGH.length>0)\r\n if (this.formPRInvitation.valid && this.gridViewB) {\r\n let y = this.bothDghnDdgh.concat(this.GridBData);\r\n let PRInvitationSaveMembers: any = await {\r\n document_Ref_No: this._data.requestNo,\r\n uID: this.memberId,\r\n location: { Location_DE_Id: this.getFormValue(this.formPRInvitation, 'location').value[\"dE_Id\"], Location_DED_Id: this.getFormValue(this.formPRInvitation, 'location').value[\"deD_Id\"] },\r\n activePRInvitationMembers: y && y.length > 0 ? y.map(x => {\r\n let c: any = {\r\n member_category_de_id: x.member_category_de_id,\r\n member_category_ded_id: x.member_category_ded_id,\r\n member_id: x.member_id,\r\n psno: x.psno,\r\n role_de_id: x.role_de_id,\r\n role_ded_id: x.role_ded_id,\r\n discipline_de_id: x.discipline_de_id,\r\n discipline_ded_id: x.discipline_ded_id,\r\n mail_id: x.mail_id,\r\n member_name: x.emp_name\r\n }\r\n return c;\r\n }) : [],\r\n inActivePRInvitationMembers: []\r\n }\r\n\r\n this._PRService.postPRInvitationMembers(PRInvitationSaveMembers)\r\n .subscribe(async (res: any) => {\r\n if (res.successCode == 200)\r\n this._NotificationService.showPopup(res.successMessage, \"Success\").then(\r\n x => this.closeDialog()\r\n );\r\n else\r\n this._NotificationService.showPopup(res.successMessage, \"Warning\");\r\n\r\n }, err => { this._NotificationService.showPopup(err, \"Warning\"); });\r\n }\r\n else {\r\n this._NotificationService.showPopup(\"Fill the mandatory fields\", \"Warning\");\r\n this.formMarkAsTouched(this.formPRInvitation);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

{{PRreqno}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
ECD For Project
\r\n
{{ data.stringAggList }}
\r\n
\r\n
\r\n
MEIC For Project
\r\n
{{ data.stringAggList }}
\r\n
\r\n
\r\n
DEIC For Project
\r\n
{{ data.stringAggList }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Meeting Location\r\n
\r\n
\r\n \r\n \r\n Meeting Location is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n DGH\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Other Heads\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Design Heads\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Other Members\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Discipline*\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n Discipline\r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n {{dataItem.emp_name}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IReviewListViewModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-final-report',\r\n templateUrl: './final-report.component.html',\r\n styleUrls: ['./final-report.component.css']\r\n})\r\nexport class FinalReportComponent implements OnInit {\r\n\r\n public reportServer!: string|null;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n public peerReviewList:IReviewListViewModel[]=[];\r\n public project_Id!:number;\r\n public groupId!:number;\r\n public memberId!:number;\r\n\r\n constructor(private _peerReviewService: PeerReviewService,private _commonService: CommonService) { }\r\n\r\n ngOnInit(): void {\r\n this.project_Id = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getReviewList();\r\n \r\n }\r\n\r\n getReviewList()\r\n {\r\n let input = {\r\n Project_Id: this.project_Id,\r\n member_Id: this.memberId,\r\n search_for: \"ALL\"\r\n }\r\n this._peerReviewService.GetReviewList(input).subscribe((res:IReviewListViewModel[])=>{\r\n this.peerReviewList = res.filter(x => x.ds_code==32 || x.ds_code==33 || x.ds_code==36);\r\n })\r\n }\r\n\r\n selectedReviewNo(event:any)\r\n {\r\n let reviewNo=event.value;\r\n this.reportServer = null;\r\n this.reportUrl = '';\r\n this.parameters = null;\r\n setTimeout(() => {\r\n this.EmbedSSRSReport(reviewNo);\r\n }, 50);\r\n\r\n }\r\n\r\n public EmbedSSRSReport(reviewNo:string) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/PeerReviewFinalReport\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/PeerReviewFinalReport\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"ReviewNo\":reviewNo,\r\n \"UserId\":this.memberId\r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IReviewListViewModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-peer-review-comments-summary',\r\n templateUrl: './peer-review-comments-summary.component.html',\r\n styleUrls: ['./peer-review-comments-summary.component.css']\r\n})\r\nexport class PeerReviewCommentsSummaryComponent implements OnInit {\r\n\r\n public reportServer!: string | null;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n public peerReviewList: IReviewListViewModel[] = [];\r\n public project_Id!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n selectedTabIndex = 0;\r\n reviewNo!: string;\r\n constructor(private _peerReviewService: PeerReviewService, private _commonService: CommonService, private loaderService: LoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.project_Id = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getReviewList();\r\n this.bindReport()\r\n\r\n }\r\n\r\n getReviewList() {\r\n let input = {\r\n Project_Id: this.project_Id,\r\n member_Id: this.memberId,\r\n search_for: \"ALL\"\r\n }\r\n this._peerReviewService.GetReviewList(input).subscribe((res: IReviewListViewModel[]) => {\r\n this.peerReviewList = res.filter(x => x.ds_code == 32 || x.ds_code == 33 || x.ds_code==36 || x.ds_code==35);\r\n })\r\n }\r\n\r\n selectedReviewNo(event: any) {\r\n this.reviewNo = event.value == -2 ? null:event.value;\r\n this.reportServer = null;\r\n this.reportUrl = '';\r\n this.parameters = null;\r\n setTimeout(() => {\r\n this.bindReport();\r\n }, 50);\r\n\r\n }\r\n\r\n public bindReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n\r\n\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/PeerReviewCommentsSummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/PeerReviewCommentsSummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"review_no\": this.reviewNo ? this.reviewNo:null,\r\n \"project_id\": this.project_Id\r\n };\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","\r\nimport { Time } from '@angular/common';\r\nimport { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { GridComponent, DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IApproveInputModel, IApproveReviewViewModel, DocViewOutput, IReviewListViewModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { PrInvitationComponent } from \"../pr-invitation/pr-invitation.component\";\r\nimport { ReviewViewComponent } from '../review-view/review-view.component';\r\nimport { DocDetailsOutput } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { P } from '@angular/cdk/keycodes';\r\n\r\n\r\nconst createFormGroup = (dataItem: { date: any; time_From: any; time_To: any; doc_Location: any; }) => new FormGroup({\r\n 'date': new FormControl(dataItem.date),\r\n 'time_from': new FormControl(dataItem.time_From),\r\n 'time_to': new FormControl(dataItem.time_To),\r\n 'doc_Location': new FormControl(dataItem.doc_Location)\r\n});\r\n@Component({\r\n selector: 'app-review-approval',\r\n templateUrl: './review-approval.component.html',\r\n styleUrls: ['./review-approval.component.css']\r\n})\r\nexport class ReviewApprovalComponent implements OnInit {\r\n public project_Id!: number;\r\n public memberId!: number;\r\n public groupId!: number;\r\n public approveReviewtList: IApproveReviewViewModel[] = [];\r\n private grid!: GridComponent;\r\n public Tabname!: string;\r\n public Feature!: any[];\r\n public ReviewList!: IReviewListViewModel[];\r\n public _Data!:any;\r\n public skip=20;\r\n public todaydate = new Date(this.getDateFormat());\r\n @Input() set Data(val:any)\r\n {\r\n if(val)\r\n {\r\n this._Data = val;\r\n this.filter();\r\n }\r\n } \r\n get Data():any\r\n {\r\n return this._Data;\r\n }\r\n\r\n @Output() ReviewListEmitter=new EventEmitter(); \r\n editedRowIndex:any = null;\r\n public approveReviewList!: IReviewListViewModel[];\r\n public isApproved!: string;\r\n public formGroup!: FormGroup;\r\n public isDocDateInvalid!: boolean;\r\n public datevalue = new Date();\r\n public fromtime!: Time;\r\n public uptotime!: Time;\r\n public docLocation!: string;\r\n public enableFilter : boolean = false;\r\n public pr_approval: boolean = false;\r\n public pr_invite_role : boolean = false;\r\n public pr_invite_feature : boolean = false;\r\n public PeerECDMEP: boolean = false;\r\n public sheduleFrom:string;\r\n public sheduleTo:string;\r\n Roles: any[];\r\n @ViewChild(DataBindingDirective) directive!:DataBindingDirective;\r\n editedDate!: Date;\r\n constructor(private _peerReviewService: PeerReviewService, private dialog: MatDialog, private _commonService: CommonService,\r\n private _notificationService: NotificationService) { }\r\nfilter()\r\n {\r\n if(this._Data){\r\n this.Tabname = this._Data.tabname;\r\n this.Feature = this._Data.Feature;\r\n this.ReviewList =this._Data.ReviewList;\r\n if (this.directive != undefined)\r\n this.directive.skip = 0;\r\n this.skip = 0;\r\n }\r\n }\r\n ngOnInit() {\r\n this.project_Id = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.approveReviewList = this.ReviewList;\r\n this.pr_approval=this.Feature.some(x => x.feature_Desc==\"PR Approval\" && x.feature_Id==600002);\r\n //this.PeerECDMEP=this.Feature.some(x => x.feature_Desc==\"ECD\" || x.feature_Desc==\"MPECD\");\r\n this._commonService.getProjectMemberRoles(this.project_Id,this.groupId,this.memberId).subscribe((res:any[])=>{\r\n this.Roles = res;\r\n this.pr_invite_role = this.Roles.some(x=>x.role_Short_Desc.toUpperCase().trim()=='ECD'.toLocaleUpperCase().trim() || x.role_Short_Desc.toUpperCase().trim()=='MECD'.toLocaleUpperCase().trim());\r\n }); \r\n this._commonService.getProjectMemberFeatures(this.project_Id, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.pr_invite_feature = res.some(x => x.feature_Desc == \"PR Invitation\" && x.feature_Id==600003);\r\n });\r\n }\r\n\r\n public actionReview(isAction: boolean, dataItem: IReviewListViewModel) {\r\n this._notificationService.showPopup(\"Once Approved, No More Action Can be Done? \", 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.isApproved = isAction == true ? 'Y' : 'N';\r\n let _input: IApproveInputModel = {\r\n intUID: this.memberId,\r\n strDocNumber: dataItem.requestNo,\r\n dtmScheduledOn: dataItem.date,\r\n tmScheduledFrom: dataItem.time_From,\r\n tmScheduledUpto: dataItem.time_To,\r\n strDocLocation: dataItem.doc_Location,\r\n chrIsApproved: this.isApproved,\r\n }\r\n this._peerReviewService.PostApproveReviewDetails(_input).subscribe((data) => {\r\n if (data.successCode == 200) {\r\n this._notificationService.showToast(data.successMessage, \"Success\");\r\n this.onClickEmit()\r\n }\r\n else {\r\n this._notificationService.showToast(data.successMessage, \"Error\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n public cellClickHandler({ isEdited, dataItem, rowIndex }:any): void {\r\n if (isEdited) {\r\n return;\r\n }\r\n this.formGroup = createFormGroup(dataItem);\r\n this.editedRowIndex = rowIndex;\r\n this.grid.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n editRowData({ sender, rowIndex, dataItem }:any) {\r\n this.sheduleFrom = this.convertTo12HourFormat(dataItem.time_From);\r\n this.sheduleTo = this.convertTo12HourFormat(dataItem.time_To);\r\n this.editedDate = new Date(dataItem.date);\r\n if (this.editedRowIndex >= 0) {\r\n sender.closeRow(this.editedRowIndex);\r\n }\r\n this.editedRowIndex = rowIndex;\r\n this.formGroup = createFormGroup(dataItem);\r\n dataItem.is_approve = true;\r\n sender.editRow(rowIndex);\r\n }\r\n cancelRowData({ sender, rowIndex, dataItem }:any) {\r\n dataItem.is_approve = false;\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n this.editedRowIndex = undefined;\r\n // this.formGroup = undefined;\r\n }\r\n\r\n isFromtimeInvalid : boolean = true;\r\n isTotimeInvalid: boolean = true;\r\n from_Time!: Time;\r\n checkfromtime()\r\n {\r\n let mintime :Time = {\r\n hours: 9,\r\n minutes: 0\r\n };\r\n let maxtime :Time = {\r\n hours: 17,\r\n minutes: 0\r\n };\r\n this.from_Time = this.getFormValue(this.formGroup, 'time_from');\r\n let fromtime = this.getFormValue(this.formGroup, 'time_from');\r\n let hr = fromtime.substr(0, 2);\r\n let min = fromtime.substr(3, 2);\r\n if(hr >= mintime.hours && hr <= maxtime.hours)\r\n {\r\n this.isFromtimeInvalid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.isFromtimeInvalid = true;\r\n return false;\r\n }\r\n // this.checktotime();\r\n }\r\n\r\n\r\n\r\n checktotime()\r\n {\r\n let fromtime = this.getFormValue(this.formGroup, 'time_from');\r\n let from_hr = fromtime.substr(0, 2);\r\n let from_min = fromtime.substr(3, 2);\r\n let maxtime :Time = {\r\n hours: 17,\r\n minutes: 59\r\n };\r\n \r\n let totime = this.getFormValue(this.formGroup, 'time_to');\r\n let hr = totime.substr(0, 2);\r\n let min = totime.substr(3, 2);\r\n if (hr >= from_hr && hr <= maxtime.hours) \r\n {\r\n if(hr == from_hr)\r\n {\r\n if(min > from_min)\r\n {\r\n this.isTotimeInvalid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.isTotimeInvalid = true;\r\n return false;\r\n }\r\n }\r\n else\r\n {\r\n this.isTotimeInvalid = false;\r\n return true;\r\n }\r\n } \r\n else\r\n {\r\n this.isTotimeInvalid = true;\r\n return false;\r\n } \r\n }\r\n\r\n\r\n fromTimeSelected(time: string,type:string): void {\r\n if(type == 'shFrom'){\r\n this.formGroup.get('time_from').setValue(time.trim());\r\n this.fromtime = this.formGroup.get('time_from').value\r\n }else {\r\n this.formGroup.get('time_to').setValue(time.trim());\r\n this.uptotime = this.formGroup.get('time_to').value\r\n }\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n\r\n updatescheduledOn(event: any) {\r\n this.datevalue = event.value;\r\n }\r\n\r\n public convertTo12HourFormat(time24: string): string {\r\n const [hours, minutes] = time24.split(':');\r\n \r\n let period = 'AM';\r\n let hours12 = parseInt(hours, 10);\r\n \r\n if (hours12 >= 12) {\r\n period = 'PM';\r\n if (hours12 > 12) {\r\n hours12 -= 12;\r\n }\r\n }\r\n \r\n return `${hours12.toString().padStart(2, '0')}:${minutes} ${period}`;\r\n }\r\n\r\n // updatescheduledFrom(event: any) {\r\n // console.log(this.getFormValue(this.formGroup, 'time_from'));\r\n // this.fromtime = this.getFormValue(this.formGroup, 'time_from');\r\n // }\r\n\r\n // updatescheduledUpto(event: any) {\r\n // this.uptotime = this.getFormValue(this.formGroup,'time_to');\r\n // }\r\n updateDocumentLocation(event: any) {\r\n this.docLocation = this.getFormValue(this.formGroup, 'doc_Location');\r\n }\r\n UpdateRowData({ sender, rowIndex, dataItem }:any) {\r\n // if(!this.checkfromtime())\r\n // {\r\n // this._notificationService.showPopup(\"Select Time above 9:00\", \"Warning\");\r\n // }\r\n // else if(!this.checktotime())\r\n // {\r\n // this._notificationService.showPopup(\"Select Time below 18:00\", \"Warning\");\r\n // }\r\n // else\r\n // {\r\n let _input: IApproveInputModel = {\r\n intUID: this.memberId,\r\n strDocNumber: dataItem.requestNo,\r\n dtmScheduledOn: !!this.datevalue ? this.datevalue : dataItem.date,\r\n tmScheduledFrom: !!this.fromtime ? this.fromtime : dataItem.time_From,\r\n tmScheduledUpto: !!this.uptotime ? this.uptotime : dataItem.time_To,\r\n strDocLocation: !!this.docLocation ? this.docLocation : dataItem.doc_Location,\r\n chrIsApproved: null,\r\n }\r\n this._peerReviewService.PostApproveReviewDetails(_input).subscribe((data) => {\r\n if (data.successCode == 200) {\r\n this._notificationService.showToast(data.successMessage, \"Success\");\r\n this.onClickEmit();\r\n }\r\n else {\r\n this._notificationService.showToast(data.successMessage, \"Error\");\r\n }\r\n dataItem.is_approve = false;\r\n });\r\n \r\n sender.closeRow(rowIndex);\r\n // }\r\n}\r\n public openInvitation(data: any) {\r\n let dialogRef = this.dialog.open(PrInvitationComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '60',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n disableClose: true,\r\n data: { requestNo: data.requestNo, document_Location: data.document_Location,newReqNo:data.old_Ref_Id }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n this.onClickEmit();\r\n })\r\n }\r\n\r\n\r\n viewPeerdoc(dataItem: any) {\r\n let datainput =\r\n {\r\n strDocNumber: dataItem.requestNo,\r\n intUID: this.memberId\r\n };\r\n this._peerReviewService.getPeerDocView(datainput).subscribe((resDoc: DocDetailsOutput) => {\r\n if (resDoc) {\r\n let dialogRef = this.dialog.open(ReviewViewComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docvalue: resDoc, input: datainput }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n });\r\n }\r\n }, err => { });\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n isinvite(dataItem: IReviewListViewModel): boolean {\r\n if (dataItem.ds_code == 2 && this.Tabname != 'Approval')\r\n return true;\r\n else return false\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n public onClickEmit() {\r\n this.ReviewListEmitter.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.old_Ref_Id}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.date | date:'dd-MMM-yyyy'}} {{dataItem.time_From}} - {{dataItem.time_To}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.request_Status}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { ReviewViewComponent } from \"../review-view/review-view.component\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DocDetailsOutput } from 'src/app/ViewModel/PeerReviewModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-review-comments',\r\n templateUrl: './review-comments.component.html',\r\n styleUrls: ['./review-comments.component.css']\r\n})\r\nexport class ReviewCommentsComponent implements OnInit {\r\n approve : number = 0;\r\n invite : number = 0;\r\n memberId: number = 0;\r\n status : number = 0;\r\n comment : number = 0;\r\n response : number = 0;\r\n impact : number = 0;\r\n total : number = 0;\r\n selectedTab: boolean = true;\r\n public mainList: any[] = [];\r\n public reviewList: any[] = [];\r\n public commentaction: boolean = false;\r\n Feature: any[]=[];\r\n project_Id !: number;\r\n groupId !: number;\r\n public enableFilter : boolean = false;\r\n\r\n constructor(private ListService: PeerReviewService, private dialog: MatDialog, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.project_Id = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getList();\r\n\r\n this.commonService.getProjectMemberFeatures(this.project_Id, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.Feature = res;\r\n this.commentaction = this.Feature.some(x => x.feature_Desc == \"PR Comments\" && x.feature_Id==600005);\r\n });\r\n\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n getList(){\r\n let obj = {'Project_Id': this.commonService.getProjectId()}\r\n this.ListService.getReviewStatus(obj).subscribe(data => {\r\n this.mainList = data;\r\n })\r\n }\r\n \r\n viewDocumentClick(dataItem:any) {\r\n this.selectedTab = false;\r\n this.reviewList = dataItem;\r\n }\r\n\r\n closeViewTab() {\r\n this.selectedTab = true;\r\n this.reviewList = [];\r\n }\r\n\r\n viewPeerdoc(dataItem: any) {\r\n let datainput =\r\n {\r\n strDocNumber: dataItem.requestNo,\r\n intUID: this.memberId\r\n };\r\n\r\n this.ListService.getPeerDocView(datainput).subscribe((resDoc: DocDetailsOutput) => {\r\n if (resDoc) {\r\n let dialogRef = this.dialog.open(ReviewViewComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docvalue: resDoc, input: datainput }\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n });\r\n }\r\n }, err => { });\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Peer Review No: {{reviewList.review_No}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.review_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.deD_Desc}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.req_Status}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.created_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.date | date:'dd-MMM-yyyy'}}\r\n {{dataItem.time_From}} -\r\n {{dataItem.time_To}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Location}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.approved_By}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit, ViewChild,Output, EventEmitter, Inject } from \"@angular/core\";\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IProjectElementDetailsOutput, PrjScpSerStgOutput, MemberECDMDOutput, ProjectAllDetailsOutput, PeerElementDetailsOutput, PeerAllElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { PeerRequestInput, PeerReqDocElementsInput, PeerReqPrjElementsInput, PresenterDetailsInput, PeerRequestOutput } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DatePipe, Time } from \"@angular/common\";\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { GridComponent } from \"@progress/kendo-angular-grid\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { FileListComponent } from \"src/app/CommonComponents/file-list/file-list.component\";\r\nimport { FileService, FileUploadLibrary } from \"src/app/Service/file/file.service\";\r\nimport { FileUploadComponent } from \"src/app/CommonComponents/file-upload/file-upload.component\";\r\nimport { IMsgAttachmentsModel, IMsgDocumentAttachmentModel } from \"src/app/ViewModel/CommunicationModel\";\r\nimport { I } from \"@angular/cdk/keycodes\";\r\nimport { orderBy } from \"lodash\";\r\n\r\n\r\n@Component({\r\n selector: 'app-review-creation',\r\n templateUrl: './review-creation.component.html',\r\n styleUrls: ['./review-creation.component.css']\r\n})\r\nexport class ReviewCreationComponent implements OnInit {\r\n\r\n private userMappedObjFromDB = new Map();\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n projectCode!: string;\r\n projectName!: string;\r\n projectDetails: any = [];\r\n PeerAllElementDetails!: PeerAllElementDetailsOutput;\r\n memberECD: MemberECDMDOutput[] = [];\r\n PeerScpSerStg: PrjScpSerStgOutput[] = [];\r\n reviewType: PeerElementDetailsOutput[] = [];\r\n scopeReview: PeerElementDetailsOutput[] = [];\r\n reqDocs: PeerElementDetailsOutput[] = [];\r\n typeOfstrc: PeerElementDetailsOutput[] = [];\r\n serviceList: PeerElementDetailsOutput[] = [];\r\n stagesList: PeerElementDetailsOutput[] = [];\r\n naturejob: PeerElementDetailsOutput[] = [];\r\n contracttyp: PeerElementDetailsOutput[] = [];\r\n peerProjectdetails: ProjectAllDetailsOutput[] = [];\r\n categoryAddList: any = [];\r\n public docdatevalue:any = new Date();\r\n public todaydate: Date = new Date(this.getDateFormat());\r\n public submissionDatedefault: Date = new Date(this.getDateFormat());\r\n public dateLOIdefault:Date = new Date(this.getDateFormat());\r\n isvideoconference: boolean = false;\r\n public isDocDateInvalid!: boolean;\r\n public isSubDateInvalid!: boolean;\r\n public isDateLOIinvalid!: boolean;\r\n projectForm!: FormGroup;\r\n reviewForm!: FormGroup;\r\n presenterForm!: FormGroup;\r\n startdate!: Date;\r\n enddate!: Date;\r\n isValidated: boolean = false;\r\n ecdmem: MemberECDMDOutput[] = [];\r\n mecdmem: MemberECDMDOutput[] = [];\r\n decdmem: MemberECDMDOutput[] = [];\r\n selectedReviewtype: PeerReqDocElementsInput[] = [];\r\n selectedStagetype: PeerReqDocElementsInput[] = [];\r\n //selectedScope: any[] = [];\r\n //selectedReqDoc: any[] = [];\r\n //selectedtypStruc: any[] = [];\r\n selectedServices: any[] = [];\r\n //selectedServicesforgrid: any[] = [];\r\n acceptFileTypes: string = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n selectedServicesforgridchk: any[] = [];\r\n selectednatureJob: PeerReqPrjElementsInput[] = [];\r\n selectedcontractTyp: PeerReqPrjElementsInput[] = [];\r\n reviewdedElements: PeerReqDocElementsInput[] = [];\r\n projectdedElements: PeerReqPrjElementsInput[] = [];\r\n presenterDetails: PresenterDetailsInput[] = [];\r\n selectedOption: string = 'general';\r\n selectednaturejob: string;\r\n selectedcontracttyp: string;\r\n checksubmit: boolean = false;\r\n public enableFullscreen:boolean =false;\r\n isProjectOverViewAvailable:boolean = false;\r\n isPRAdequacyCheckListAvailable:boolean = false;\r\n //attachmentsList: IMsgDocumentAttachmentModel[] = [];\r\n sessionList = [{\r\n \"deD_Id\":1,\r\n \"deD_Description\" : 'FN'\r\n },{\r\n \"deD_Id\":2,\r\n \"deD_Description\" : 'AN'\r\n }]\r\n lastCrNo:number=0;\r\n lastIrNo:number=0;\r\n uniqueCheckListId:number;\r\n // selectedTime: string = '';\r\n\r\n @ViewChild(GridComponent) public distGrid!: GridComponent;\r\n constructor(public _dialogRef: MatDialogRef,\r\n public _datepipe: DatePipe,\r\n private _formBuilder: FormBuilder,\r\n private _projInfoService: ProjectInfoService,\r\n private _commonService: CommonService,\r\n public datepipe: DatePipe,\r\n private peerreviewservice: PeerReviewService,\r\n private _notificationService: NotificationService,\r\n private dialog: MatDialog,\r\n private _fileService: FileService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.createReviewForm();\r\n }\r\n\r\n ngOnInit() {\r\n if(this.data)\r\n {\r\n this.lastCrNo=this.data.maxCr;\r\n this.lastIrNo=this.data.maxIr;\r\n }\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getAllPeerElementData();\r\n this.getProjectOverViewFile('0');\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n createReviewForm() {\r\n this.reviewForm = this._formBuilder.group({\r\n reviewType: new FormControl('', [Validators.required]),\r\n stagetype: new FormControl('', [Validators.required]),\r\n isvideoconference: new FormControl(false),\r\n time_from: new FormControl('', [Validators.required]),\r\n time_to: new FormControl('', [Validators.required]),\r\n //ScopeOfReview: new FormControl(this.selectedScope,[Validators.required]),\r\n ServiceIncluded: new FormControl(this.selectedServices,[Validators.required]),\r\n //RequiredDoc: new FormControl(this.selectedReqDoc,[Validators.required]),\r\n //typeOfStructure: new FormControl(this.selectedtypStruc,[Validators.required]),\r\n //otherScope: new FormControl(''),\r\n //otherService: new FormControl(''),\r\n doc_location: new FormControl('', [Validators.required])\r\n });\r\n\r\n // this.projectForm = this._formBuilder.group({\r\n // project_Name: new FormControl(''),\r\n // project_Code: new FormControl(''),\r\n // buildingType: new FormControl(''),\r\n // clientName: new FormControl(''),\r\n // projectValue: new FormControl(''),\r\n // designFees: new FormControl(''),\r\n // projectBrief: new FormControl(''),\r\n // scopeOfwork: new FormControl(''),\r\n // buildArea: new FormControl(''),\r\n // siteArea: new FormControl(''),\r\n // proofConsultant: new FormControl(''),\r\n // architectureConsultant: new FormControl(''),\r\n // structureConsultant: new FormControl(''),\r\n // consultantAppointed: new FormControl(''),\r\n // scope_for_peer: new FormControl(''),\r\n // edms_availability: new FormControl(false),\r\n // divisionName: new FormControl(''),\r\n // segHead: new FormControl(''), \r\n // });\r\n\r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n public getAllPeerElementData() {\r\n this._projInfoService.getAllPeerElements({\r\n intProjectID: this.projectId,\r\n intGroupID: this.groupId,\r\n intUID: this.memberId\r\n })\r\n .subscribe((res: PeerAllElementDetailsOutput) => {\r\n if (res) {\r\n this.PeerAllElementDetails = res;\r\n this.PeerScpSerStg = this.PeerAllElementDetails.proscpserstg;\r\n this.memberECD = this.PeerAllElementDetails.memberEcdMD;\r\n this.reviewType = this.PeerScpSerStg.filter(x => x.dE_Id == 500);\r\n this.scopeReview = this.PeerScpSerStg.filter(x => x.dE_Id == 508);\r\n this.reqDocs = this.PeerScpSerStg.filter(x => x.dE_Id == 511);\r\n this.typeOfstrc = this.PeerScpSerStg.filter(x => x.dE_Id == 512);\r\n this.serviceList = this.PeerScpSerStg.filter(x => x.dE_Id == 8);\r\n this.stagesList = orderBy(this.PeerScpSerStg.filter(x => x.dE_Id == 510),['sort_By','deD_Id']);\r\n this.contracttyp = this.PeerScpSerStg.filter(x => x.dE_Id == 502);\r\n this.naturejob = this.PeerScpSerStg.filter(x => x.dE_Id == 501);\r\n this.ecdmem = this.memberECD.filter(x => x.short_desc == \"ECD\");\r\n this.mecdmem = this.memberECD.filter(x => x.short_desc == \"MECD\");\r\n this.decdmem = this.memberECD.filter(x => x.short_desc == \"DECD\");\r\n\r\n this.getpeerProjectdetails();\r\n }\r\n }, err => { });\r\n }\r\n\r\n start_end_date!: string;\r\n buildingbool:boolean = false;\r\n clientbool: boolean = false;\r\n buildingtypebool: boolean = false;\r\n prjvaluebool: boolean = false;\r\n designbool: boolean = false;\r\n prjbriefbool: boolean = false;\r\n buildAreabool: boolean = false;\r\n siteAreabool: boolean = false;\r\n proofConsultantbool: boolean = false;\r\n archConsultantbool: boolean = false;\r\n structConsultantbool: boolean = false;\r\n submissionDatebool: boolean = false;\r\n dateLOIbool: boolean = false;\r\n divbool: boolean = false;\r\n segbool: boolean = false;\r\n\r\n public getpeerProjectdetails() {\r\n this._projInfoService.getPeerProjectDetails({\r\n intProjectID: this.projectId,\r\n intUID: this.memberId\r\n })\r\n .subscribe((res: ProjectAllDetailsOutput[]) => {\r\n if (res) {\r\n this.peerProjectdetails = res;\r\n this.buildingbool = this.peerProjectdetails[0].building_type?true:false;\r\n this.clientbool = this.peerProjectdetails[0].client?true:false;\r\n this.buildingtypebool = this.peerProjectdetails[0].building_type?true:false;\r\n this.prjvaluebool = this.peerProjectdetails[0].project_value_in_lakhs?true:false;\r\n this.designbool = this.peerProjectdetails[0].design_fee_in_lakhs?true:false;\r\n this.divbool = this.peerProjectdetails[0].division_name?true:false;\r\n this.segbool = this.peerProjectdetails[0].seg_head?true:false;\r\n this.projectForm.get('project_Name')?.setValue(this.peerProjectdetails[0].project_description);\r\n this.projectForm.get('project_Code')?.setValue(this.peerProjectdetails[0].project_code);\r\n this.projectForm.get('buildingType')?.setValue(this.peerProjectdetails[0].building_type);\r\n this.projectForm.get('clientName')?.setValue(this.peerProjectdetails[0].client);\r\n this.projectForm.get('projectValue')?.setValue(this.peerProjectdetails[0].project_value_in_lakhs);\r\n this.projectForm.get('designFees')?.setValue(this.peerProjectdetails[0].design_fee_in_lakhs);\r\n this.projectForm.get('divisionName')?.setValue(this.peerProjectdetails[0].division_name);\r\n this.projectForm.get('segHead')?.setValue(this.peerProjectdetails[0].seg_head);\r\n this.prjbriefbool = this.peerProjectdetails[0].project_brief_description?true:false;\r\n this.projectForm.get('projectBrief')?.setValue(this.peerProjectdetails[0].project_brief_description);\r\n this.projectForm.get('scopeOfwork')?.setValue(this.peerProjectdetails[0].scope_of_work);\r\n this.proofConsultantbool = this.peerProjectdetails[0].proof_consultant_name?true:false;\r\n this.projectForm.get('proofConsultant')?.setValue(this.peerProjectdetails[0].proof_consultant_name);\r\n this.archConsultantbool= this.peerProjectdetails[0].architectural_consultant_name?true:false;\r\n this.projectForm.get('architectureConsultant')?.setValue(this.peerProjectdetails[0].architectural_consultant_name);\r\n this.structConsultantbool = this.peerProjectdetails[0].structural_consultant_name?true:false;\r\n this.projectForm.get('structureConsultant')?.setValue(this.peerProjectdetails[0].structural_consultant_name);\r\n this.siteAreabool = this.peerProjectdetails[0].site_area?true:false;\r\n this.projectForm.get('buildArea')?.setValue(this.peerProjectdetails[0].site_area);\r\n this.buildAreabool = this.peerProjectdetails[0].built_up_area?true:false;\r\n this.projectForm.get('siteArea')?.setValue(this.peerProjectdetails[0].built_up_area);\r\n this.projectForm.get('scope_for_peer')?.setValue(this.peerProjectdetails[0].scope_of_peer_review);\r\n if (this.peerProjectdetails[0].is_edms_available == \"Y\") {\r\n this.projectForm.get('edms_availability')?.setValue(true);\r\n }\r\n else {\r\n this.projectForm.get('edms_availability')?.setValue(false);\r\n }\r\n this.selectednaturejob = this.naturejob.filter(x => x.deD_Id == this.peerProjectdetails[0].dpJ_NOP_DED_ID)[0].deD_Description;\r\n this.selectedcontracttyp = this.contracttyp.filter(x => x.deD_Id == this.peerProjectdetails[0].dpJ_Contract_Type_DED_ID)[0].deD_Description;\r\n if (this.peerProjectdetails[0].submission_date_of_project && new Date(this.peerProjectdetails[0].submission_date_of_project)>=new Date()) {\r\n this.submissionDatedefault = new Date(this.peerProjectdetails[0].submission_date_of_project);\r\n this.submissionDatebool = true;\r\n }\r\n if (this.peerProjectdetails[0].date_of_LOI && new Date(this.peerProjectdetails[0].date_of_LOI)>=new Date()) {\r\n this.dateLOIdefault = new Date(this.peerProjectdetails[0].date_of_LOI);\r\n this.dateLOIbool = true;\r\n }\r\n if(this.peerProjectdetails[0].start_Date!=null && this.peerProjectdetails[0].end_Date!=null)\r\n {\r\n let startdate = this.datepipe.transform(this.peerProjectdetails[0].start_Date, \"dd-MMM-yyyy\");\r\n let enddate = this.datepipe.transform(this.peerProjectdetails[0].end_Date, \"dd-MMM-yyyy\");\r\n this.start_end_date = startdate + \" to \" + enddate;\r\n }\r\n else\r\n {\r\n this.start_end_date = \"NULL\";\r\n }\r\n }\r\n }, err => { });\r\n }\r\n\r\n fromTimeSelected(time: string): void {\r\n this.reviewForm.get('time_from').setValue(time.trim());\r\n }\r\n toTimeSelected(time: string): void {\r\n this.reviewForm.get('time_to').setValue(time.trim());\r\n }\r\n\r\n // isFromtimeInvalid : boolean = true;\r\n // isTotimeInvalid: boolean = true;\r\n // fromTime!:Time;\r\n // checkfromtime()\r\n // {\r\n // let mintime :Time = {\r\n // hours: 9,\r\n // minutes: 0\r\n // };\r\n // let maxtime :Time = {\r\n // hours: 17,\r\n // minutes: 0\r\n // };\r\n // this.fromTime = this.getFormValue(this.reviewForm, 'time_from');\r\n // let fromtime = this.getFormValue(this.reviewForm, 'time_from');\r\n // let hr = fromtime.substr(0, 2);\r\n // let min = fromtime.substr(3, 2);\r\n // if(hr >= mintime.hours && hr <= maxtime.hours)\r\n // {\r\n // this.isFromtimeInvalid = false;\r\n // return true;\r\n // }\r\n // else\r\n // {\r\n // this.isFromtimeInvalid = true;\r\n // return false;\r\n // }\r\n // }\r\n\r\n // checktotime()\r\n // {\r\n // let fromtime = this.getFormValue(this.reviewForm, 'time_from');\r\n // let from_hr = fromtime.substr(0, 2);\r\n // let from_min = fromtime.substr(3, 2);\r\n // let maxtime :Time = {\r\n // hours: 17,\r\n // minutes: 59\r\n // };\r\n \r\n // let totime = this.getFormValue(this.reviewForm, 'time_to');\r\n // let hr = totime.substr(0, 2);\r\n // let min = totime.substr(3, 2);\r\n // if (hr >= from_hr && hr <= maxtime.hours) \r\n // {\r\n // if(hr == from_hr)\r\n // {\r\n // if(min > from_min)\r\n // {\r\n // this.isTotimeInvalid = false;\r\n // return true;\r\n // }\r\n // else\r\n // {\r\n // this.isTotimeInvalid = true;\r\n // return false;\r\n // }\r\n // }\r\n // else\r\n // {\r\n // this.isTotimeInvalid = false;\r\n // return true;\r\n // }\r\n // } \r\n // else\r\n // {\r\n // this.isTotimeInvalid = true;\r\n // return false;\r\n // } \r\n // }\r\n\r\n\r\n changeButtonToggle(event: { value: string; }) {\r\n this.selectedOption = event.value;\r\n if (this.selectedOption == 'peersubmit') {\r\n this.generalCreation();\r\n }\r\n else {\r\n this.selectedOption == 'general';\r\n this.isValidated = false;\r\n }\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n getDocDate(selectedText: { value: Date | null; }, field: string) \r\n {\r\n if (field == 'Document Date') {\r\n this.isDocDateInvalid = selectedText.value == null;\r\n this.docdatevalue = selectedText.value;\r\n }\r\n }\r\n getSubmissionDate(selectedText: { value: Date | null; }, field: string) {\r\n if (field == 'Submission Date') {\r\n this.isSubDateInvalid = selectedText.value == null;\r\n this.submissionDatedefault = selectedText.value;\r\n }\r\n }\r\n getDateLoi(selectedText: { value: Date | null; }, field: string) {\r\n if (field == 'Date LOI') {\r\n this.isDateLOIinvalid = selectedText.value == null;\r\n this.dateLOIdefault = selectedText.value;\r\n }\r\n }\r\n\r\n selectedreviewtype(event: any) {\r\n this.selectedReviewtype = [];\r\n this.selectedReviewtype.push({ DE_ID: event.additionalValues.additionalValues.dE_Id, DED_ID: event.additionalValues.additionalValues.deD_Id, OTHERS_VALUE: \"\" });\r\n }\r\n\r\n selectedstagetype(event: any) {\r\n this.selectedStagetype = [];\r\n this.selectedStagetype.push({ DE_ID: event.additionalValues.additionalValues.dE_Id, DED_ID: event.additionalValues.additionalValues.deD_Id, OTHERS_VALUE: \"\" });\r\n }\r\n\r\n checkScope: boolean = false;\r\n checkServices : boolean = false;\r\n checkreqDoc: boolean = false;\r\n checktypStruc: boolean = false;\r\n\r\n\r\n // checkedReqDoc(event: any) \r\n // {\r\n // if (event && event.emittingList.length > 0) \r\n // {\r\n // this.selectedReqDoc = this.selectedReqDoc.map(x => { x.is_checked = false; return x });\r\n // for (let obj of event.emittingList) {\r\n\r\n // let _data = this.selectedReqDoc.filter(x => { x.dED_Id == parseInt(obj.value) });\r\n // let is_checked: boolean = this.selectedReqDoc.some(y => y.dED_ID == obj.additionalValues.deD_Id);\r\n // if (!is_checked) {\r\n // this.selectedReqDoc.push({ dE_ID: obj.additionalValues.dE_Id, dED_ID: obj.additionalValues.deD_Id, is_checked: true, other_value:\"\" });\r\n // }\r\n // else {\r\n // this.selectedReqDoc.filter(x => x.dED_ID == parseInt(obj.additionalValues.deD_Id))[0].is_checked = true;\r\n // }\r\n\r\n // }\r\n // this.selectedReqDoc = this.selectedReqDoc.filter(c => c.is_checked == true);\r\n // if (this.selectedReqDoc.length > 0) {\r\n // this.selectedReqDoc.forEach((dataItem, rowIndex) => {\r\n // this.distGrid.editRow(rowIndex);\r\n // });\r\n // }\r\n // this.reviewForm.get('RequiredDoc').setValue(this.selectedReqDoc)\r\n // this.reviewForm.get('RequiredDoc')?.markAsTouched();\r\n // this.checkreqDoc = true;\r\n // }\r\n // else \r\n // {\r\n // this.selectedReqDoc = [];\r\n // this.reviewForm.get('RequiredDoc').setValue([])\r\n // this.checkreqDoc = false;\r\n // }\r\n // }\r\n\r\n // checkedTypOfStruc(event: any) \r\n // {\r\n // if (event && event.emittingList.length > 0) \r\n // {\r\n // this.selectedtypStruc = this.selectedtypStruc.map(x => { x.is_checked = false; return x });\r\n // for (let obj of event.emittingList) {\r\n\r\n // let _data = this.selectedtypStruc.filter(x => { x.dED_Id == parseInt(obj.value) });\r\n // let is_checked: boolean = this.selectedtypStruc.some(y => y.dED_ID == obj.additionalValues.deD_Id);\r\n // if (!is_checked) {\r\n // this.selectedtypStruc.push({ dE_ID: obj.additionalValues.dE_Id, dED_ID: obj.additionalValues.deD_Id, is_checked: true, other_value:\"\" });\r\n // }\r\n // else {\r\n // this.selectedtypStruc.filter(x => x.dED_ID == parseInt(obj.additionalValues.deD_Id))[0].is_checked = true;\r\n // }\r\n\r\n // }\r\n // this.selectedtypStruc = this.selectedtypStruc.filter(c => c.is_checked == true);\r\n // if (this.selectedtypStruc.length > 0) {\r\n // this.selectedtypStruc.forEach((dataItem, rowIndex) => {\r\n // this.distGrid.editRow(rowIndex);\r\n // });\r\n // }\r\n // this.reviewForm.get('typeOfStructure').setValue(this.selectedtypStruc)\r\n // this.reviewForm.get('typeOfStructure')?.markAsTouched();\r\n // this.checktypStruc = true;\r\n // }\r\n // else \r\n // {\r\n // this.selectedtypStruc = [];\r\n // this.reviewForm.get('typeOfStructure').setValue([]);\r\n // this.checktypStruc = false;\r\n // }\r\n // }\r\n\r\n\r\n\r\n // checkedScope(event: any) {\r\n // if (event && event.emittingList.length > 0) \r\n // {\r\n // this.selectedScope = this.selectedScope.map(x => { x.is_checked = false; return x });\r\n // for (let obj of event.emittingList) {\r\n\r\n // let _data = this.selectedScope.filter(x => { x.dED_Id == parseInt(obj.value) });\r\n // let is_checked: boolean = this.selectedScope.some(y => y.dED_ID == obj.additionalValues.deD_Id);\r\n // if (!is_checked) {\r\n // this.selectedScope.push({ dE_ID: obj.additionalValues.dE_Id, dED_ID: obj.additionalValues.deD_Id, is_checked: true, other_value:\"\" });\r\n // }\r\n // else {\r\n // this.selectedScope.filter(x => x.dED_ID == parseInt(obj.additionalValues.deD_Id))[0].is_checked = true;\r\n // }\r\n\r\n // }\r\n // this.selectedScope = this.selectedScope.filter(c => c.is_checked == true);\r\n // if (this.selectedScope.length > 0) {\r\n // this.selectedScope.forEach((dataItem, rowIndex) => {\r\n // this.distGrid.editRow(rowIndex);\r\n // });\r\n // }\r\n // this.checkScope = true;\r\n // this.reviewForm.get('ScopeOfReview').setValue(this.selectedScope)\r\n // this.reviewForm.get('ScopeOfReview')?.markAsTouched();\r\n // this.getotherscope();\r\n // }\r\n // else {\r\n // this.selectedScope = [];\r\n // this.reviewForm.get('ScopeOfReview').setValue([])\r\n // this.checkScope = false;\r\n // }\r\n // }\r\n\r\n checkedServices(event: any) {\r\n if (event && event.emittingList.length > 0) \r\n {\r\n //this.selectedServicesforgrid = this.selectedServicesforgrid.map(x => { x.is_checked = false; return x });\r\n this.selectedServices = this.selectedServices.map(x => { x.is_checked = false; return x });\r\n for (let obj of event.emittingList) {\r\n\r\n let _data = this.serviceList.filter(x => { x.deD_Id == parseInt(obj.value) });\r\n let is_checked: boolean = this.selectedServices.some(y => y.dED_ID == obj.additionalValues.deD_Id);\r\n if (!is_checked) {\r\n this.selectedServices.push({ dE_ID: obj.additionalValues.dE_Id, dED_ID: obj.additionalValues.deD_Id, is_checked: true, other_value:\"\" });\r\n // this.selectedServicesforgrid.push({\r\n // deD_Description: obj.additionalValues.deD_Description,\r\n // dE_ID: obj.additionalValues.dE_Id,\r\n // dED_ID: obj.additionalValues.deD_Id,\r\n // presenter: null,\r\n // mail_id: null,\r\n // pfrom_time: null,\r\n // pto_time: null,\r\n // remarks: null,\r\n // is_checked: true\r\n // });\r\n }\r\n else {\r\n this.selectedServices.filter(x => x.dED_ID == parseInt(obj.additionalValues.deD_Id))[0].is_checked = true;\r\n //this.selectedServicesforgrid.filter(x => x.dED_ID == parseInt(obj.additionalValues.deD_Id))[0].is_checked = true;\r\n }\r\n\r\n }\r\n //this.selectedServicesforgrid = this.selectedServicesforgrid.filter(c => c.is_checked == true);\r\n this.selectedServices = this.selectedServices.filter(d => d.is_checked == true);\r\n\r\n // if (this.selectedServicesforgrid.length > 0) {\r\n // this.selectedServicesforgrid.forEach((dataItem, rowIndex) => {\r\n // this.distGrid.editRow(rowIndex);\r\n // });\r\n // }\r\n this.checkServices = true;\r\n this.reviewForm.get('ServiceIncluded').setValue(this.selectedServices)\r\n this.reviewForm.get('ServiceIncluded')?.markAsTouched();\r\n //this.getotherservice();\r\n }\r\n else {\r\n //this.selectedServicesforgrid = [];\r\n this.selectedServices = [];\r\n this.reviewForm.get('ServiceIncluded').setValue(this.selectedServices)\r\n this.checkServices = false;\r\n }\r\n }\r\n\r\n selectedNaturejob(event: any) {\r\n this.selectednatureJob = [];\r\n this.selectednatureJob.push({ DE_ID: event.additionalValues.additionalValues.dE_Id, DED_ID: event.additionalValues.additionalValues.deD_Id });\r\n }\r\n\r\n selectedContractTyp(event: any) {\r\n this.selectedcontractTyp = [];\r\n this.selectedcontractTyp.push({ DE_ID: event.additionalValues.additionalValues.dE_Id, DED_ID: event.additionalValues.additionalValues.deD_Id });\r\n }\r\n\r\n // getotherscope()\r\n // {\r\n // let other_scp = this.getFormValue(this.reviewForm, 'otherScope');\r\n // if(other_scp != null && other_scp!=\"\")\r\n // {\r\n // if(this.selectedScope.some(x=> x.dED_ID == 0))\r\n // {\r\n // let index = this.selectedScope.indexOf((x: { dED_ID: number; })=> x.dED_ID == 0);\r\n // this.selectedScope.splice(index,1);\r\n // }\r\n // this.selectedScope.push({ dE_ID: 508, dED_ID: 0, is_checked: true , other_value: this.getFormValue(this.reviewForm, 'otherScope')});\r\n // }\r\n // else\r\n // {\r\n // if(this.selectedScope.some(x=> x.dED_ID == 0))\r\n // {\r\n // let index = this.selectedScope.indexOf((x: { dED_ID: number; })=> x.dED_ID == 0);\r\n // this.selectedScope.splice(index,1);\r\n // }\r\n // }\r\n // }\r\n // getotherservice()\r\n // {\r\n // let other_ser = this.getFormValue(this.reviewForm, 'otherService');\r\n // if(other_ser != null && other_ser!=\"\")\r\n // {\r\n // if(this.selectedServices.some(x=> x.dED_ID == 0))\r\n // {\r\n // let index = this.selectedServices.indexOf((x: { dED_ID: number; })=> x.dED_ID == 0);\r\n // this.selectedServices.splice(index,1);\r\n // }\r\n // if(this.selectedServicesforgrid.some(x=> x.dED_ID == 0))\r\n // {\r\n // let index = this.selectedServicesforgrid.indexOf((x: { dED_ID: number; })=> x.dED_ID == 0);\r\n // this.selectedServicesforgrid.splice(index,1);\r\n // }\r\n // this.selectedServices.push({ dE_ID: 8, dED_ID: 0, is_checked: true , other_value: this.getFormValue(this.reviewForm, 'otherService')});\r\n // this.selectedServicesforgrid.push({\r\n // deD_Description: other_ser,\r\n // dE_ID: 8,\r\n // dED_ID: 0,\r\n // presenter: null,\r\n // mail_id: null,\r\n // pfrom_time: null,\r\n // pto_time: null,\r\n // remarks: null,\r\n // is_checked: true\r\n // });\r\n // }\r\n // else\r\n // {\r\n // if(this.selectedServices.some(x=> x.dED_ID == 0))\r\n // {\r\n // let index = this.selectedServices.indexOf((x: { dED_ID: number; })=> x.dED_ID == 0);\r\n // this.selectedServices.splice(index,1);\r\n // }\r\n // if(this.selectedServicesforgrid.some(x=> x.dED_ID == 0))\r\n // {\r\n // let index = this.selectedServicesforgrid.indexOf((x: { dED_ID: number; })=> x.dED_ID == 0);\r\n // this.selectedServicesforgrid.splice(index,1);\r\n // }\r\n // }\r\n // if (this.selectedServicesforgrid.length > 0) {\r\n // this.selectedServicesforgrid.forEach((dataItem, rowIndex) => {\r\n // this.distGrid.editRow(rowIndex);\r\n // });\r\n // }\r\n // }\r\n\r\n generalCreation() \r\n {\r\n // if(!this.checkfromtime())\r\n // {\r\n // this._notificationService.showPopup(\"Select From Time in between 9:00 to 18:00\", \"Warning\");\r\n // }\r\n // else if(!this.checktotime())\r\n // {\r\n // this._notificationService.showPopup(\"Select To Time above \" + this.fromTime +\" to 18:00\", \"Warning\");\r\n // }\r\n // else\r\n // {\r\n // if (this.reviewForm.valid && this.selectedScope.length > 0 && this.selectedServices.length > 0 && this.checkScope && this.checkServices \r\n // && this.selectedReqDoc.length > 0 && this.selectedtypStruc.length > 0 && this.checkreqDoc && this.checktypStruc) \r\n if (this.reviewForm.valid && this.selectedServices.length > 0 && this.checkServices) \r\n {\r\n this.selectedOption = 'peersubmit';\r\n this.isValidated = true;\r\n this.reviewdedElements = [];\r\n this.selectedReviewtype.forEach(x => {\r\n this.reviewdedElements.push({ DE_ID: x.DE_ID, DED_ID: x.DED_ID, OTHERS_VALUE: \"\" });\r\n });\r\n this.selectedStagetype.forEach(x => {\r\n this.reviewdedElements.push({ DE_ID: x.DE_ID, DED_ID: x.DED_ID, OTHERS_VALUE: \"\" });\r\n });\r\n // this.selectedScope.forEach(x => {\r\n // this.reviewdedElements.push({ DE_ID: x.dE_ID, DED_ID: x.dED_ID, OTHERS_VALUE: x.other_value });\r\n // });\r\n this.selectedServices.forEach(x => {\r\n this.reviewdedElements.push({ DE_ID: x.dE_ID, DED_ID: x.dED_ID, OTHERS_VALUE: x.other_value });\r\n });\r\n // this.selectedReqDoc.forEach(x => {\r\n // this.reviewdedElements.push({ DE_ID: x.dE_ID, DED_ID: x.dED_ID, OTHERS_VALUE: x.other_value });\r\n // });\r\n // this.selectedtypStruc.forEach(x => {\r\n // this.reviewdedElements.push({ DE_ID: x.dE_ID, DED_ID: x.dED_ID, OTHERS_VALUE: x.other_value });\r\n // });\r\n this.peerSubmit();\r\n }\r\n else {\r\n this._notificationService.showPopup(\"Fill the mandatory fields\", \"Warning\");\r\n this.formMarkAsTouched(this.reviewForm);\r\n this.selectedOption = 'general';\r\n this.isValidated = false;\r\n }\r\n // }\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n\r\n peerSubmit() {\r\n //if (this.projectForm.valid) {\r\n // for Project details elements\r\n // this.projectdedElements = [];\r\n // this.presenterDetails = [];\r\n // if (this.selectednaturejob) {\r\n // this.projectdedElements.push({ DE_ID: this.peerProjectdetails[0].dpJ_NOP_DE_ID, DED_ID: this.peerProjectdetails[0].dpJ_NOP_DED_ID });\r\n // }\r\n // else {\r\n // this.selectednatureJob.forEach(x => {\r\n // this.projectdedElements.push({ DE_ID: x.DE_ID, DED_ID: x.DED_ID });\r\n // });\r\n // }\r\n // if (this.selectedcontracttyp) {\r\n // this.projectdedElements.push({ DE_ID: this.peerProjectdetails[0].dpJ_Contract_Type_DE_ID, DED_ID: this.peerProjectdetails[0].dpJ_Contract_Type_DED_ID });\r\n // }\r\n // else {\r\n // this.selectedcontractTyp.forEach(x => {\r\n // this.projectdedElements.push({ DE_ID: x.DE_ID, DED_ID: x.DED_ID });\r\n // });\r\n // }\r\n // this.selectedServicesforgrid.forEach(x => {\r\n // if (x.presenter == \"\")\r\n // x.presenter = null;\r\n // if (x.mail_id == \"\")\r\n // x.mail_id = null;\r\n // if (x.pfrom_time == \"\")\r\n // x.pfrom_time = null;\r\n // if (x.pto_time == \"\")\r\n // x.pto_time = null;\r\n // });\r\n\r\n // this.selectedServicesforgrid.forEach(x => {\r\n // let index = this.selectedServicesforgrid.indexOf(x);\r\n // if (x.presenter != null && (x.pfrom_time == null || x.pto_time == null)) {\r\n // this._notificationService.showToast(\"Fill Presentation Time\", \"Warning\");\r\n // }\r\n // else if (x.pfrom_time != null && (x.presenter == null || x.pto_time == null)) {\r\n // this._notificationService.showToast(\"Fill Presenter details completely\", \"Warning\");\r\n // }\r\n // else if (x.pto_time != null && (x.presenter == null || x.pfrom_time == null)) {\r\n // this._notificationService.showToast(\"Fill Presenter details completely\", \"Warning\");\r\n // }\r\n // else if (x.presenter != null && x.pfrom_time != null && x.pto_time != null) {\r\n // let p_mintime: Time = { hours:9, minutes:0 };\r\n // let p_maxtime: Time = { hours:17, minutes:59 };\r\n // let pf_time = x.pfrom_time;\r\n // let pf_hr = pf_time.substr(0, 2);\r\n // let pf_min = pf_time.substr(3, 2);\r\n // let pt_time = x.pto_time;\r\n // let pt_hr = pt_time.substr(0, 2);\r\n // let pt_min = pt_time.substr(3, 2);\r\n // // if(pf_hr >= p_mintime.hours && pf_hr <= p_maxtime.hours)\r\n // // {\r\n // // if(pt_hr>=pf_hr && pt_hr<=p_maxtime.hours)\r\n // // {\r\n // if(pt_hr==pf_hr)\r\n // {\r\n // // if(pt_min > pf_min)\r\n // // {\r\n // if(x.mail_id == null || x.mail_id==\"\")\r\n // {\r\n // this.presenterDetails.push({\r\n // DE_ID: x.dE_ID,\r\n // DED_ID: x.dED_ID,\r\n // Presenter_Name: x.presenter,\r\n // Presenter_Mail_Id: x.mail_id,\r\n // From_Time: x.pfrom_time,\r\n // Upto_Time: x.pto_time,\r\n // Remarks: x.remarks\r\n // });\r\n // }\r\n // else\r\n // {\r\n // if(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(x.mail_id))\r\n // {\r\n // this.presenterDetails.push({\r\n // DE_ID: x.dE_ID,\r\n // DED_ID: x.dED_ID,\r\n // Presenter_Name: x.presenter,\r\n // Presenter_Mail_Id: x.mail_id,\r\n // From_Time: x.pfrom_time,\r\n // Upto_Time: x.pto_time,\r\n // Remarks: x.remarks\r\n // });\r\n // }\r\n // else\r\n // {\r\n // this._notificationService.showPopup(\"Enter valid Mail ID for \"+ x.presenter, \"Warning\");\r\n // }\r\n // }\r\n // // }\r\n // // else\r\n // // {\r\n // // this._notificationService.showPopup(\"Select \" + x.presenter + \"'s Presentation time above \" + pf_time + \" to 18:00\", \"Warning\");\r\n // // }\r\n // }\r\n // else\r\n // {\r\n // if(x.mail_id == null || x.mail_id==\"\")\r\n // {\r\n // this.presenterDetails.push({\r\n // DE_ID: x.dE_ID,\r\n // DED_ID: x.dED_ID,\r\n // Presenter_Name: x.presenter,\r\n // Presenter_Mail_Id: x.mail_id,\r\n // From_Time: x.pfrom_time,\r\n // Upto_Time: x.pto_time,\r\n // Remarks: x.remarks\r\n // });\r\n // }\r\n // else\r\n // {\r\n // if(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(x.mail_id))\r\n // {\r\n // this.presenterDetails.push({\r\n // DE_ID: x.dE_ID,\r\n // DED_ID: x.dED_ID,\r\n // Presenter_Name: x.presenter,\r\n // Presenter_Mail_Id: x.mail_id,\r\n // From_Time: x.pfrom_time,\r\n // Upto_Time: x.pto_time,\r\n // Remarks: x.remarks\r\n // });\r\n // }\r\n // else\r\n // {\r\n // this._notificationService.showPopup(\"Enter valid Mail ID for \"+ x.presenter, \"Warning\");\r\n // }\r\n // }\r\n // }\r\n // // }\r\n // // else\r\n // // {\r\n // // this._notificationService.showPopup(\"Select \" + x.presenter + \"'s Presentation time above \" + pf_time + \" to 18:00\", \"Warning\");\r\n // // }\r\n // // }\r\n // // else\r\n // // {\r\n // // this._notificationService.showPopup(\"Select Presenter From Time in between 9:00 to 18:00\", \"Warning\");\r\n // // }\r\n // }\r\n // });\r\n\r\n //this.selectedServicesforgrid = this.selectedServicesforgrid.filter(y => y.presenter != null || y.pfrom_time != null || y.pto_time != null);\r\n\r\n // let input: PeerRequestInput =\r\n // {\r\n // intProjectID: this.projectId,\r\n // intGroupID: this.groupId,\r\n // strDocElements: JSON.stringify(this.reviewdedElements),\r\n // dtScheduledOn: this.docdatevalue,\r\n // tmScheduledFrom: this.getFormValue(this.reviewForm, 'time_from'),\r\n // tmScheduledUpto: this.getFormValue(this.reviewForm, 'time_to'),\r\n // chrVCRequired: this.getFormValue(this.reviewForm, 'isvideoconference') == true ? \"Y\" : \"N\",\r\n // strECDName : this.memberECD.filter(x => x.short_desc == 'ECD')[0].stringAggList ? this.memberECD.filter(x => x.short_desc == 'ECD')[0].stringAggList : \"\",\r\n // strMEPECDName\t: this.memberECD.filter(x => x.short_desc == 'MECD')[0].stringAggList ? this.memberECD.filter(x => x.short_desc == 'MECD')[0].stringAggList : \"\",\r\n // strDECDName: this.memberECD.filter(x => x.short_desc == 'DECD')[0].stringAggList ? this.memberECD.filter(x => x.short_desc == 'DECD')[0].stringAggList : \"\",\r\n // strProjectElements: JSON.stringify(this.projectdedElements),\r\n // strProjectLongDesc: this.getFormValue(this.projectForm, 'projectBrief'),\r\n // strBuildingType: this.getFormValue(this.projectForm, 'buildingType'),\r\n // // strClient: this.getFormValue(this.projectForm, 'clientName'),\r\n // strClient: 'B&F',\r\n // strScopeofWork: this.getFormValue(this.projectForm, 'scopeOfwork'),\r\n // strBuiltupArea: this.getFormValue(this.projectForm, 'buildArea'),\r\n // strSiteArea: this.getFormValue(this.projectForm, 'siteArea'),\r\n // dtDateOfLOI: this.dateLOIdefault,\r\n // mnyProjectValueInLakhs: this.getFormValue(this.projectForm, 'projectValue'),\r\n // mnyDesignFeeInLakhs: this.getFormValue(this.projectForm, 'designFees'),\r\n // strProofConsultantName: this.getFormValue(this.projectForm, 'proofConsultant'),\r\n // strArchitecturalConsultantName: this.getFormValue(this.projectForm, 'architectureConsultant'),\r\n // strStructuralConsultantName: this.getFormValue(this.projectForm, 'structureConsultant'),\r\n // strOtherConultantName: this.getFormValue(this.projectForm, 'consultantAppointed'),\r\n // dtmSubmissionDateOfProject: this.submissionDatedefault,\r\n // chrIsEDMSAvailable: this.getFormValue(this.projectForm, 'edms_availability') == true ? \"Y\" : \"N\",\r\n // strDivisionName: this.getFormValue(this.projectForm, 'divisionName'),\r\n // strSegmentHead: this.getFormValue(this.projectForm, 'segHead'),\r\n // strScopeOfPeerReview: this.getFormValue(this.projectForm, 'scope_for_peer'),\r\n // strPresenterDetails: JSON.stringify(this.presenterDetails),\r\n // strDocLocation: this.getFormValue(this.reviewForm, 'doc_location'),\r\n // intUID: this.memberId,\r\n // };\r\n\r\n let input: PeerRequestInput =\r\n {\r\n intProjectID: this.projectId,\r\n intGroupID: this.groupId,\r\n strDocElements: JSON.stringify(this.reviewdedElements),\r\n dtScheduledOn: this.docdatevalue,\r\n tmScheduledFrom: this.getFormValue(this.reviewForm, 'time_from'),\r\n tmScheduledUpto: this.getFormValue(this.reviewForm, 'time_to'),\r\n chrVCRequired: this.getFormValue(this.reviewForm, 'isvideoconference') == true ? \"Y\" : \"N\",\r\n strECDName : this.memberECD.filter(x => x.short_desc == 'ECD')[0]?.stringAggList ? this.memberECD.filter(x => x.short_desc == 'ECD')[0].stringAggList : \"\",\r\n strMEPECDName\t: this.memberECD.filter(x => x.short_desc == 'MECD')[0]?.stringAggList ? this.memberECD.filter(x => x.short_desc == 'MECD')[0].stringAggList : \"\",\r\n strDECDName: this.memberECD.filter(x => x.short_desc == 'DECD')[0]?.stringAggList ? this.memberECD.filter(x => x.short_desc == 'DECD')[0].stringAggList : \"\",\r\n strProjectElements: null, //JSON.stringify(this.projectdedElements),\r\n strProjectLongDesc:null, //this.getFormValue(this.projectForm, 'projectBrief'),\r\n strBuildingType:null, //this.getFormValue(this.projectForm, 'buildingType'),\r\n // strClient: this.getFormValue(this.projectForm, 'clientName'),\r\n strClient: null,//'B&F',\r\n strScopeofWork: null,//this.getFormValue(this.projectForm, 'scopeOfwork'),\r\n strBuiltupArea: null,//this.getFormValue(this.projectForm, 'buildArea'),\r\n strSiteArea: null,//this.getFormValue(this.projectForm, 'siteArea'),\r\n dtDateOfLOI: null,//this.dateLOIdefault,\r\n mnyProjectValueInLakhs: null,//this.getFormValue(this.projectForm, 'projectValue'),\r\n mnyDesignFeeInLakhs: null,//this.getFormValue(this.projectForm, 'designFees'),\r\n strProofConsultantName: null,//this.getFormValue(this.projectForm, 'proofConsultant'),\r\n strArchitecturalConsultantName:null,// this.getFormValue(this.projectForm, 'architectureConsultant'),\r\n strStructuralConsultantName:null,// this.getFormValue(this.projectForm, 'structureConsultant'),\r\n strOtherConultantName: null,//this.getFormValue(this.projectForm, 'consultantAppointed'),\r\n dtmSubmissionDateOfProject: null,//this.submissionDatedefault,\r\n chrIsEDMSAvailable: null,//this.getFormValue(this.projectForm, 'edms_availability') == true ? \"Y\" : \"N\",\r\n strDivisionName: null,//this.getFormValue(this.projectForm, 'divisionName'),\r\n strSegmentHead: null,//this.getFormValue(this.projectForm, 'segHead'),\r\n strScopeOfPeerReview: null,// this.getFormValue(this.projectForm, 'scope_for_peer'),\r\n strPresenterDetails: null,//JSON.stringify(this.presenterDetails),\r\n strDocLocation: this.getFormValue(this.reviewForm, 'doc_location'),\r\n intUID: this.memberId,\r\n };\r\n\r\n //if (this.selectedServicesforgrid.length == 0) {\r\n this.peerreviewservice.postpeerRequest(input).subscribe((res: PeerRequestOutput) => {\r\n let result: PeerRequestOutput = res;\r\n //let success:boolean =false;\r\n if(result)\r\n {\r\n if(result.strDocNo && result.strErrorMsg==null)\r\n {\r\n this._notificationService.showPopup(result.strOldDocNo + \" Peer Request Submitted Successfully\", \"Success\");\r\n //success=true;\r\n }\r\n else if(result.strErrorMsg==\"Member's PSNo is not updated in Master. Please get it updated and then try.\")\r\n this._notificationService.showToast(\"Member's PSNo is not updated in Master. Please get it updated and then try.\", \"Warning\");\r\n else if (result.strDocNo && result.strErrorMsg==\"Mail Not Sent\")\r\n {\r\n this._notificationService.showToast(\"Peer Request Submitted Successfully, Failed To Send Mail\", \"Warning\");\r\n //success=true;\r\n } \r\n else\r\n this._notificationService.showToast(\"Peer Request Failed\", \"Error\");\r\n }\r\n else\r\n { this._notificationService.showToast(\"Peer Request Failed\", \"Error\"); }\r\n // if(success)\r\n // {\r\n // let value:string[] = result.strOldDocNo.split('-');\r\n // let peerDocno = value[1].substring(2,value[1].length);\r\n // let id = this.projectId+peerDocno;\r\n // this.UpdateReviewCheckList(Number(id));\r\n // }\r\n // else{\r\n this.closeDialog();\r\n //}\r\n \r\n }, err => { \r\n console.log(err);\r\n });\r\n // }\r\n // else if (this.selectedServicesforgrid.length == this.presenterDetails.length) {\r\n // this.peerreviewservice.postpeerRequest(input).subscribe((res: PeerRequestOutput) => {\r\n // let result: PeerRequestOutput = res;\r\n // if(result)\r\n // {\r\n // if(result.strDocNo && result.strErrorMsg==null)\r\n // this._notificationService.showPopup(result.strOldDocNo + \" Peer Request Submitted Successfully\", \"Success\");\r\n // else if(result.strErrorMsg==\"Member's PSNo is not updated in Master. Please get it updated and then try.\")\r\n // this._notificationService.showToast(\"Member's PSNo is not updated in Master. Please get it updated and then try.\", \"Warning\");\r\n // else\r\n // this._notificationService.showToast(\"Peer Request Failed\", \"Error\");\r\n // }\r\n // else\r\n // { this._notificationService.showToast(\"Peer Request Failed\", \"Error\"); } \r\n // this.closeDialog();\r\n // }, err => { });\r\n // }\r\n //}\r\n // else {\r\n // this._notificationService.showToast(\"Fill the mandatory fields\", \"Warning\");\r\n // this.formMarkAsTouched(this.projectForm);\r\n // }\r\n }\r\n\r\n // bulkEdit(grid: { editRow: (arg0: number) => void; }) {\r\n // if (this.selectedServicesforgrid.length > 0) {\r\n // this.selectedServicesforgrid.forEach((dataItem, rowIndex) => {\r\n // grid.editRow(rowIndex);\r\n // });\r\n // }\r\n // }\r\n\r\n bulkSave(grid) {}\r\n\r\n cancelRowData({ sender, rowIndex, dataItem }) {\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n // onValueChange(val: any, fieldName: string, dataItem: any) {\r\n // this.selectedServicesforgrid.filter(item => item.deD_Description.toLocaleLowerCase() == dataItem.deD_Description.toLocaleLowerCase()).every(x => x[fieldName] = val.target.value);\r\n // }\r\n\r\n // fromGridTimeSelected(val: any, fieldName: string, dataItem: any) {\r\n // this.selectedServicesforgrid.filter(item => item.deD_Description.toLocaleLowerCase() == dataItem.deD_Description.toLocaleLowerCase()).every(x => x[fieldName] = val);\r\n // }\r\n\r\n uploadProjectOverview()\r\n {\r\n let uniqueProjectId = '00'+this.projectId+'001';\r\n const dialog = this.dialog.open( FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '80%',\r\n data: { projectId: this.projectId, docId: uniqueProjectId, revisionNo: '0', moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId, \r\n documents: [{ value: uniqueProjectId, text: 'ProjectOverview', revisionNo: '0', task_SNo: 0 }],\r\n isEditable: false,isEnableFullScreen:true },\r\n });\r\n\r\n dialog.afterClosed().subscribe(()=>{\r\n this.getProjectOverViewFile('0');\r\n })\r\n }\r\n\r\n uploadPeerReviewChecklist()\r\n {\r\n let uniqueProjectId;\r\n if(this.selectedReviewtype && this.selectedReviewtype.length<=0 )\r\n {\r\n this._notificationService.showToast(\"Please select the review type before uploading the checklist\",\"Warning\");\r\n return;\r\n }\r\n if(this.selectedReviewtype && this.selectedReviewtype.length>0 && this.selectedReviewtype[0].DE_ID==undefined)\r\n {\r\n this._notificationService.showToast(\"Please select the review type before uploading the checklist\",\"Warning\");\r\n return;\r\n }\r\n else\r\n {\r\n if(this.selectedReviewtype[0].DED_ID==1)\r\n {\r\n uniqueProjectId = this.projectId+(this.lastCrNo+1).toString();\r\n }\r\n else{\r\n uniqueProjectId = this.projectId+(this.lastIrNo+1).toString();\r\n }\r\n }\r\n this.uniqueCheckListId = Number(uniqueProjectId);\r\n const dialog = this.dialog.open( FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '80%',\r\n data: { projectId: this.projectId, docId: uniqueProjectId, revisionNo: '1', moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId, \r\n documents: [{ value: uniqueProjectId, text: 'prAdequacyCheckList', revisionNo: '1', task_SNo: 0 }],\r\n isEditable: false,isEnableFullScreen:true },\r\n });\r\n // dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n // let fileName: string = res.fileName;\r\n // let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n // this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n // });\r\n dialog.afterClosed().subscribe(()=>{\r\n this.getProjectOverViewFile('1');\r\n })\r\n\r\n }\r\n\r\n getProjectOverViewFile(revisionNo:string)\r\n {\r\n let uniqueProjectId = this.projectId+'001';\r\n if(revisionNo=='1')\r\n {\r\n uniqueProjectId = this.uniqueCheckListId.toString();\r\n }\r\n this._fileService.GetFiles({libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(\r\n { projectId: this.projectId, docId: Number(uniqueProjectId), revisionNo: revisionNo })}).subscribe((res:any)=>{\r\n if(revisionNo=='0')\r\n {\r\n this.isProjectOverViewAvailable = res && res.length>0 ? true:false\r\n }\r\n if(revisionNo=='1')\r\n {\r\n this.isPRAdequacyCheckListAvailable = res && res.length>0 ? true:false;\r\n }\r\n })\r\n }\r\n\r\n viewFile(revisionNo:string)\r\n {\r\n let uniqueProjectId = this.projectId+'001';\r\n if(revisionNo=='1')\r\n {\r\n uniqueProjectId = this.uniqueCheckListId.toString();\r\n }\r\n let _dialog=this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: {\r\n projectId: this.projectId, docId: uniqueProjectId, revisionNo: revisionNo, libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.memberId, isDeleteEnable: true\r\n },\r\n });\r\n _dialog.afterClosed().subscribe(()=>{\r\n this.getProjectOverViewFile(revisionNo);\r\n })\r\n }\r\n\r\n // UpdateReviewCheckList(id:number)\r\n // {\r\n // if(this.attachmentsList && this.attachmentsList.length>0)\r\n // {\r\n // let attachedDoc: IMsgAttachmentsModel = { projectId: this.projectId, msgId: id, createdBy: this.memberId, messageDocuments: this.attachmentsList }\r\n // this.peerreviewservice.UpdateReviewChecklist(attachedDoc).subscribe((res:any)=>{\r\n // this.closeDialog();\r\n // })\r\n // }\r\n // }\r\n\r\n\r\n selectedSession(event:any)\r\n {\r\n if(event && event.emittingList)\r\n {\r\n if(event.emittingList.length==1)\r\n {\r\n if(event.emittingList[0].value==1)\r\n {\r\n this.fromTimeSelected('10:00');\r\n this.toTimeSelected('13:00');\r\n }\r\n else{\r\n this.fromTimeSelected('14:00');\r\n this.toTimeSelected('17:00');\r\n }\r\n }\r\n if(event.emittingList.length>1)\r\n {\r\n this.fromTimeSelected('10:00');\r\n this.toTimeSelected('17:00');\r\n }\r\n }\r\n else{\r\n this.fromTimeSelected(null);\r\n this.toTimeSelected(null);\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n

Create Review

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

{{peerProjectdetails[0].project_code}} - {{peerProjectdetails[0].project_description}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
ECD For Project
\r\n
{{ data.stringAggList }}
\r\n
\r\n
\r\n
MEIC For Project
\r\n
{{ data.stringAggList }}
\r\n
\r\n
\r\n
DEIC For Project
\r\n
{{ data.stringAggList }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Review Type is Required\r\n
\r\n \r\n \r\n \r\n Stages\r\n Of Review is Required\r\n
\r\n \r\n \r\n Video Conference\r\n \r\n \r\n  \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Services To Be Included is Required\r\n
\r\n\r\n
\r\n Project OverView\r\n
\r\n
\r\n Upload Project Overview\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n PR Adequacy Checklist\r\n
\r\n
\r\n Upload Checklist\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n Peer Review Date\r\n \r\n \r\n \r\n Document Date is required\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Review Session is Required\r\n \r\n \r\n \r\n Document Location\r\n \r\n \r\n Document Location is Required\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport * as moment from 'moment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { DocDetailsOutput } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { ReviewViewComponent } from \"../review-view/review-view.component\";\r\n\r\n@Component({\r\n selector: 'app-review-impact',\r\n templateUrl: './review-impact.component.html',\r\n styleUrls: ['./review-impact.component.css']\r\n})\r\nexport class ReviewImpactComponent implements OnInit {\r\n\r\n approve : number = 0;\r\n memberId: number = 0;\r\n invite : number = 0;\r\n status : number = 0;\r\n comment : number = 0;\r\n response : number = 0;\r\n impact : number = 0;\r\n total : number = 0;\r\n selectedTab: boolean = true;\r\n public mainList: any[] = [];\r\n public reviewList: any[] = [];\r\n\r\n constructor(private ListService: PeerReviewService, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService, private dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getList();\r\n }\r\n\r\n getList(){\r\n let obj = {'Project_Id': this.commonService.getProjectId()}\r\n this.ListService.getReviewStatus(obj).subscribe(data => {\r\n this.mainList = data;\r\n })\r\n }\r\n\r\n viewDocumentClick(dataItem:any) {\r\n this.selectedTab = false;\r\n this.reviewList = dataItem;\r\n }\r\n\r\n closeViewTab() {\r\n this.selectedTab = true;\r\n this.reviewList = [];\r\n }\r\n\r\n viewPeerdoc(dataItem: any) {\r\n let datainput =\r\n {\r\n strDocNumber: dataItem.requestNo,\r\n intUID: this.memberId\r\n };\r\n\r\n this.ListService.getPeerDocView(datainput).subscribe((resDoc: DocDetailsOutput) => {\r\n if (resDoc) {\r\n let dialogRef = this.dialog.open(ReviewViewComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docvalue: resDoc, input: datainput }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n });\r\n }\r\n }, err => { });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Peer Review No: {{reviewList.review_No}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{dataItem.review_No}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.deD_Desc}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.req_Status}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.date| date:'dd-MMM-yyyy'}}\r\n {{dataItem.time_From}} -{{dataItem.time_To}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.doc_Location}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_By}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_On |date:'dd-MMM-yyyy'}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Yes\r\n
\r\n \r\n \r\n No\r\n \r\n \r\n\r\n \r\n \r\n
\r\n Yes\r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { IReviewListViewModel, DocDetailsOutput, DocViewOutput, DocPresenterDetails, DocViewAllDetailsOutput, DocPanelCRIOutpu, DocViewInput } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ReviewCreationComponent } from \"../review-creation/review-creation.component\";\r\nimport { ReviewViewComponent } from \"../review-view/review-view.component\";\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n\r\n@Component({\r\n selector: 'app-review-list',\r\n templateUrl: './review-list.component.html',\r\n styleUrls: ['./review-list.component.css']\r\n})\r\nexport class ReviewListComponent implements OnInit {\r\n\r\n\r\n public project_Id!: number ;\r\n public memberId!: number ;\r\n public createicon: boolean = false;\r\n public groupId!: number ;\r\n public ReviewList: IReviewListViewModel[] = [];\r\n public app_ReviewList: IReviewListViewModel[] = [];\r\n public invitation_ReviewList: IReviewListViewModel[] = [];\r\n public status_ReviewList: IReviewListViewModel[] = [];\r\n public comments_ReviewList: IReviewListViewModel[] = [];\r\n public responce_ReviewList: IReviewListViewModel[] = [];\r\n public impacts_ReviewList: IReviewListViewModel[] = [];\r\n //public listCount: number;\r\n public tabname: string = \"All\";\r\n public Data: any = {\r\n ReviewList: [],\r\n tabname: \"\",\r\n Feature: []\r\n }\r\n public Feature: any[] = [];\r\n public enableFilter : boolean = false;\r\n public data: any[] = [];\r\n constructor(private _peerReviewService: PeerReviewService, private dialog: MatDialog, private _commonService: CommonService,\r\n private _notificationService: NotificationService, private datepipe: DatePipe) { this.allData = this.allData.bind(this); }\r\n\r\n ngOnInit() {\r\n this.project_Id = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.getReviewList();\r\n this.enableMemberRoleFeatures();\r\n }\r\n\r\n getReviewList() {\r\n let input = {\r\n Project_Id: this.project_Id,\r\n member_Id: this.memberId,\r\n search_for: \"ALL\"\r\n }\r\n this._peerReviewService.GetReviewList(input).subscribe((data: IReviewListViewModel[]) => {\r\n this.ReviewList = data;\r\n this.filter(this.tabname);\r\n });\r\n }\r\n\r\n enableMemberRoleFeatures() {\r\n if (this.project_Id && this.memberId && this.groupId)\r\n this._commonService.getProjectMemberFeatures(this.project_Id, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.Feature = res;\r\n this.createicon = this.Feature.some(x => x.feature_Desc == \"PR Creation\" && x.feature_Id==600001);\r\n });\r\n }\r\n\r\n public OnEmit(val: any) {\r\n this.getReviewList();\r\n }\r\n\r\n createpeer() {\r\n let maxCr=0;\r\n let maxIr=0;\r\n if(this.ReviewList && this.ReviewList.length>0)\r\n {\r\n maxCr = Math.max(...this.ReviewList.filter(x => x.peer_review_type == 'Combined Review (CR)').map(x => x.old_Ref_Id.split('-')).map((x:string[]) => Number(x[1] && x[1].length>0 ? x[1].substring(2,x[1].length) : 0)));\r\n maxIr = Math.max(...this.ReviewList.filter(x => x.peer_review_type == 'Independent Review (IR)').map(x => x.old_Ref_Id.split('-')).map((x:string[]) => Number(x[1] && x[1].length>0 ? x[1].substring(2,x[1].length) : 0)));\r\n }\r\n let dialogRef = this.dialog.open(ReviewCreationComponent,\r\n {\r\n panelClass: 'mat-dialog-secondary',\r\n data:{maxCr:maxCr,maxIr:maxIr},\r\n width:'100%'\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.getReviewList();\r\n })\r\n }\r\n onTabClick(event: any) {\r\n this.tabname = event.tab.textLabel;\r\n this.filter(this.tabname);\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n\r\n filter(tabname: string) {\r\n this.app_ReviewList = this.ReviewList.filter(x => x.ds_code == 1 || x.ds_code == 2);\r\n this.invitation_ReviewList = this.ReviewList.filter(x => x.ds_code == 2);\r\n this.status_ReviewList = this.ReviewList.filter(x => (x.ds_code == 30 || x.ds_code == 32 || x.ds_code == 33 || x.ds_code == 34 || x.ds_code == 35));\r\n this.comments_ReviewList = this.ReviewList.filter(x => x.ds_code == 35);\r\n this.responce_ReviewList = this.ReviewList.filter(x => x.ds_code == 32);\r\n this.impacts_ReviewList = this.ReviewList.filter(x => x.ds_code == 33);\r\n this.Data = {\r\n \"Feature\": this.Feature,\r\n \"tabname\": this.tabname,\r\n \"ReviewList\": (tabname == 'Approval' ? this.app_ReviewList :\r\n tabname == 'Invitation' ? this.invitation_ReviewList :\r\n tabname == 'Status' ? this.status_ReviewList :\r\n tabname == 'Comments' ? this.comments_ReviewList :\r\n tabname == 'Response' ? this.responce_ReviewList :\r\n tabname == 'Impacts' ? this.impacts_ReviewList : this.ReviewList)\r\n };\r\n\r\n }\r\n\r\n\r\n viewPeerdoc(dataItem: any) {\r\n if (this.memberId) {\r\n let datainput: DocViewInput =\r\n {\r\n strDocNumber: dataItem.requestNo,\r\n intUID: this.memberId\r\n };\r\n this._peerReviewService.getPeerDocView(datainput).subscribe({\r\n next: (resDoc: DocDetailsOutput) => {\r\n if (resDoc) {\r\n let dialogRef = this.dialog.open(ReviewViewComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docvalue: resDoc, input: datainput }\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n });\r\n }\r\n }, error: () => { }\r\n });\r\n }\r\n }\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.ReviewList\r\n };\r\n return result;\r\n }\r\n\r\n public HelpUrlClick() {\r\n let x = JSON.parse(this._commonService.getSessionStorageItem(\"Menu\"))\r\n let url = x.filter((y: { menuDesc: string; }) => y.menuDesc == \"Peer Review 4.0\")[0].helpUrl\r\n if (url) { window.open(url); }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n All {{ReviewList.length}}\r\n \r\n \r\n \r\n \r\n Approval {{app_ReviewList.length}}\r\n \r\n \r\n \r\n \r\n Invitation {{invitation_ReviewList.length}}\r\n \r\n \r\n \r\n \r\n Status Update {{status_ReviewList.length}}\r\n \r\n \r\n \r\n \r\n Comments {{comments_ReviewList.length}}\r\n \r\n \r\n \r\n \r\n Response {{responce_ReviewList.length}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.old_Ref_Id}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n {{dataItem.peer_review_type}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.discipline}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.request_Status}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.date | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{dataItem | sessionpipe}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.created_By}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.approved_by}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_on | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport * as moment from 'moment';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { ReviewViewComponent } from \"../review-view/review-view.component\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DocDetailsOutput } from 'src/app/ViewModel/PeerReviewModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-review-response',\r\n templateUrl: './review-response.component.html',\r\n styleUrls: ['./review-response.component.css']\r\n})\r\nexport class ReviewResponseComponent implements OnInit {\r\n approve : number = 0;\r\n memberId: number = 0;\r\n invite : number = 0;\r\n status : number = 0;\r\n comment : number = 0;\r\n response : number = 0;\r\n impact : number = 0;\r\n total : number = 0;\r\n selectedTab: boolean = true;\r\n public mainList: any[] = [];\r\n public reviewList: any[] = [];\r\n public enableFilter : boolean = false;\r\n\r\n\r\n constructor(private ListService: PeerReviewService, private dialog: MatDialog, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getList();\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n \r\n getList(){\r\n let obj = {'Project_Id': this.commonService.getProjectId()}\r\n this.ListService.getReviewStatus(obj).subscribe(data => {\r\n this.mainList = data;\r\n })\r\n }\r\n\r\n viewDocumentClick(dataItem:any) {\r\n this.selectedTab = false;\r\n this.reviewList = dataItem;\r\n }\r\n\r\n closeViewTab() {\r\n this.selectedTab = true;\r\n this.reviewList = [];\r\n }\r\n\r\n viewPeerdoc(dataItem: any) {\r\n let datainput =\r\n {\r\n strDocNumber: dataItem.requestNo,\r\n intUID: this.memberId\r\n };\r\n\r\n this.ListService.getPeerDocView(datainput).subscribe({next:(resDoc: DocDetailsOutput) => {\r\n if (resDoc) {\r\n let dialogRef = this.dialog.open(ReviewViewComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docvalue: resDoc, input: datainput }\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n });\r\n }\r\n }, error:()=>{}});\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Peer Review No : {{reviewList.review_No}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.review_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.deD_Desc}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.req_Status}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.date | date:'dd-MMM-yyyy'}}\r\n {{dataItem.time_From | date:'h:mm:ss a'}} -\r\n {{dataItem.time_To | date:'h:mm:ss a'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Location}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.approved_By}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n\r\n \r\n \r\n
\r\n Yes\r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit, Input, OnChanges, DoCheck, Output, EventEmitter, OnDestroy, ViewChild } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport * as moment from 'moment';\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { ReviewViewComponent } from \"../review-view/review-view.component\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { IApproveInputModel, IReviewListViewModel, IApproveReviewViewModel, DocDetailsOutput, IStatusInputModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { DataBindingDirective, ExcelExportEvent } from '@progress/kendo-angular-grid';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Time } from '@angular/common';\r\nimport { PrInvitationComponent } from \"../pr-invitation/pr-invitation.component\";\r\n\r\n\r\nconst createFormGroup = (dataItem: { date: any; time_From: any; time_To: any; doc_Location: any; }) => new FormGroup({\r\n 'date': new FormControl(dataItem.date),\r\n 'time_from': new FormControl(dataItem.time_From),\r\n 'time_to': new FormControl(dataItem.time_To),\r\n 'doc_Location': new FormControl(dataItem.doc_Location)\r\n});\r\n@Component({\r\n selector: 'app-review-status',\r\n templateUrl: './review-status.component.html',\r\n styleUrls: ['./review-status.component.css']\r\n})\r\nexport class ReviewStatusComponent implements OnInit {\r\n public project_Id !: number;\r\n public groupId !: number;\r\n public memberId!: number;\r\n isViewDoc:boolean=false;\r\n public enableFilter : boolean = false;\r\n public reviewList: IReviewListViewModel[] = [];\r\n public statusList: any[] = [];\r\n public Tabname!: string;\r\n public Feature!: any[];\r\n public ReviewList!: IReviewListViewModel[];\r\n public _Data:any;\r\n public pr_response: boolean = false;\r\n public pr_impacts: boolean = false;\r\n public ProjectTeam: boolean = false;\r\n public pr_comments: boolean = false;\r\n public edit_res_imp : boolean = false;\r\n public skip=20;\r\n public pr_status: boolean = false;\r\n public pr_approval: boolean = false;\r\n public pr_invite_feature: boolean = false;\r\n selected!:any;\r\n Roles: any[];\r\n editedDate!: Date;\r\n editedRowIndex:any = null;\r\n public formGroup!: FormGroup;\r\n public datevalue = new Date();\r\n public fromtime!: Time;\r\n public uptotime!: Time;\r\n public docLocation!: string;\r\n public sheduleFrom:string;\r\n public sheduleTo:string;\r\n\r\n public updatestatusbtn: boolean = true;\r\n\r\n\r\n @Input() set Data(val:any){\r\n if(val)\r\n {\r\n this._Data = val;\r\n this.filter();\r\n }\r\n } \r\n get Data():any\r\n {\r\n return this._Data;\r\n }\r\n @Output() ReviewListEmitter=new EventEmitter();\r\n \r\n\r\n @ViewChild(DataBindingDirective) directive!:DataBindingDirective;\r\n constructor(private statusService: PeerReviewService, private dialog: MatDialog, public notificationService: NotificationService,\r\n private mapRoleFeatureService: MapRoleFeatureService, private commonService: CommonService) { }\r\n\r\n filter()\r\n {\r\n if(this._Data ){\r\n this.Tabname = this._Data.tabname;\r\n this.Feature = this._Data.Feature;\r\n this.ReviewList =this._Data.ReviewList;\r\n if (this.directive != undefined)\r\n this.directive.skip=0;\r\n this.skip = 0;\r\n this.isViewDoc = false;\r\n this.reviewList = [];\r\n this.enableFilter = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.project_Id = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.pr_status = this.Feature.some(x => x.feature_Desc == \"PR Status Update\" && x.feature_Id==600004);\r\n this.pr_comments=this.Feature.some(x => x.feature_Desc==\"PR Comments\" && x.feature_Id == 600005);\r\n this.pr_response=this.Feature.some(x => x.feature_Desc==\"PR Response And Impacts\" && x.feature_Id == 600007);\r\n this.pr_impacts=this.Feature.some(x => x.feature_Desc==\"PR Impacts\" && x.feature_Id == 600006);\r\n this.pr_approval=this.Feature.some(x => x.feature_Desc==\"PR Approval\" && x.feature_Id == 600002);\r\n this.pr_invite_feature = this.Feature.some(x => x.feature_Desc == \"PR Invitation\" && x.feature_Id == 600003);\r\n this.commonService.getProjectMemberRoles(this.project_Id,this.groupId,this.memberId).subscribe((res:any[])=>{\r\n this.Roles = res;\r\n this.edit_res_imp = this.Roles.some(x=>x.role_Short_Desc.toUpperCase().trim()=='ECD'.toLocaleUpperCase().trim() || x.role_Short_Desc.toUpperCase().trim()=='MECD'.toLocaleUpperCase().trim());\r\n }); \r\n this.allData=this.allData.bind(this);\r\n }\r\n\r\n ngDoCheck() {\r\n let x:any = document.getElementById(\"grvEDMOrgList\");\r\n if(this.isViewDoc)\r\n { x.style.display = \"none\"; }\r\n else\r\n { x.style.display = \"block\"; }\r\n }\r\n\r\n public onClickEmit()\r\n {\r\n this.ReviewListEmitter.emit(true);\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n editRowData({ sender, rowIndex, dataItem }:any) {\r\n this.updatestatusbtn = false;\r\n this.sheduleFrom = this.convertTo12HourFormat(dataItem.time_From);\r\n this.sheduleTo = this.convertTo12HourFormat(dataItem.time_To);\r\n this.editedDate = new Date(dataItem.date);\r\n if (this.editedRowIndex >= 0) {\r\n sender.closeRow(this.editedRowIndex);\r\n }\r\n this.editedRowIndex = rowIndex;\r\n this.formGroup = createFormGroup(dataItem);\r\n dataItem.is_approve = true;\r\n sender.editRow(rowIndex);\r\n }\r\n\r\n UpdateRowData({ sender, rowIndex, dataItem }:any)\r\n {\r\n // if(!this.checkfromtime())\r\n // {\r\n // this.notificationService.showPopup(\"Select Time above 9:00\", \"Warning\");\r\n // }\r\n // else if(!this.checktotime())\r\n // {\r\n // this.notificationService.showPopup(\"Select Time below 18:00\", \"Warning\");\r\n // }\r\n // else\r\n // {\r\n this.updatestatusbtn = true;\r\n let _input: IApproveInputModel = \r\n {\r\n intUID: this.memberId,\r\n strDocNumber: dataItem.requestNo,\r\n dtmScheduledOn: !!this.datevalue ? this.datevalue : dataItem.date,\r\n tmScheduledFrom: !!this.fromtime ? this.fromtime : dataItem.time_From,\r\n tmScheduledUpto: !!this.uptotime ? this.uptotime : dataItem.time_To,\r\n strDocLocation: !!this.docLocation ? this.docLocation : dataItem.doc_Location,\r\n bitIsFromStatus: true,\r\n chrIsApproved: null,\r\n }\r\n this.statusService.PostApproveReviewDetails(_input).subscribe((data) => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n this.onClickEmit();\r\n }\r\n else {\r\n this.notificationService.showToast(data.successMessage, \"Error\");\r\n }\r\n dataItem.is_approve = false;\r\n });\r\n \r\n sender.closeRow(rowIndex);\r\n }\r\n // }\r\n\r\n updatescheduledOn(event: any) {\r\n this.datevalue = event.value;\r\n }\r\n\r\n // updatescheduledFrom(event: any) {\r\n // this.fromtime = this.getFormValue(this.formGroup, 'time_from');\r\n // }\r\n\r\n // updatescheduledUpto(event: any) {\r\n // this.uptotime = this.getFormValue(this.formGroup,'time_to');\r\n // }\r\n public fromTimeSelected(time:string,type:string){\r\n if(type == 'shFrom'){\r\n this.formGroup.get('time_from').setValue(time.trim());\r\n this.fromtime = this.formGroup.get('time_from').value\r\n }else {\r\n this.formGroup.get('time_to').setValue(time.trim());\r\n this.uptotime = this.formGroup.get('time_to').value\r\n }\r\n }\r\n\r\n public convertTo12HourFormat(time24: string): string {\r\n const [hours, minutes] = time24.split(':');\r\n \r\n let period = 'AM';\r\n let hours12 = parseInt(hours, 10);\r\n \r\n if (hours12 >= 12) {\r\n period = 'PM';\r\n if (hours12 > 12) {\r\n hours12 -= 12;\r\n }\r\n }\r\n \r\n return `${hours12.toString().padStart(2, '0')}:${minutes} ${period}`;\r\n }\r\n\r\n\r\n isFromtimeInvalid : boolean = true;\r\n isTotimeInvalid: boolean = true;\r\n from_Time!: Time;\r\n\r\n checkfromtime()\r\n {\r\n let mintime :Time = {\r\n hours: 9,\r\n minutes: 0\r\n };\r\n let maxtime :Time = {\r\n hours: 17,\r\n minutes: 0\r\n };\r\n this.from_Time = this.getFormValue(this.formGroup, 'time_from');\r\n let fromtime = this.getFormValue(this.formGroup, 'time_from');\r\n let hr = fromtime.substr(0, 2);\r\n let min = fromtime.substr(3, 2);\r\n if(hr >= mintime.hours && hr <= maxtime.hours)\r\n {\r\n this.isFromtimeInvalid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.isFromtimeInvalid = true;\r\n return false;\r\n }\r\n }\r\n\r\n checktotime()\r\n {\r\n let fromtime = this.getFormValue(this.formGroup, 'time_from');\r\n let from_hr = fromtime.substr(0, 2);\r\n let from_min = fromtime.substr(3, 2);\r\n let maxtime :Time = {\r\n hours: 17,\r\n minutes: 59\r\n };\r\n \r\n let totime = this.getFormValue(this.formGroup, 'time_to');\r\n let hr = totime.substr(0, 2);\r\n let min = totime.substr(3, 2);\r\n if (hr >= from_hr && hr <= maxtime.hours) \r\n {\r\n if(hr == from_hr)\r\n {\r\n if(min > from_min)\r\n {\r\n this.isTotimeInvalid = false;\r\n return true;\r\n }\r\n else\r\n {\r\n this.isTotimeInvalid = true;\r\n return false;\r\n }\r\n }\r\n else\r\n {\r\n this.isTotimeInvalid = false;\r\n return true;\r\n }\r\n } \r\n else\r\n {\r\n this.isTotimeInvalid = true;\r\n return false;\r\n } \r\n }\r\n\r\n private getFormValue(form: FormGroup, formControlName: string): any {\r\n return form.get(formControlName)?.value;\r\n }\r\n\r\n cancelRowData({ sender, rowIndex, dataItem }:any){\r\n this.updatestatusbtn = true;\r\n dataItem.is_approve = false;\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n async GetPeerReviewEditInvite(payload: any) {\r\n return await this.statusService.GetPeerReviewEditInvite(payload)\r\n .toPromise().catch((err) => { return [] });\r\n }\r\n\r\n async openInvitation(data: any) {\r\n var payload = { strDocNumber: data.requestNo, intUID: this.commonService.getLoggedInUserId()}\r\n var editData = await this.GetPeerReviewEditInvite(payload)\r\n let dialogRef = this.dialog.open(PrInvitationComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '60',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n disableClose: true,\r\n data: { requestNo: data.requestNo, document_Location: data.document_Location,editData:editData,newReqNo:data.old_Ref_Id }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n this.onClickEmit();\r\n })\r\n }\r\n\r\n public saveStatus(dataItem:any) {\r\n if (dataItem){\r\n let obj = {\r\n ProjectId : this.commonService.getProjectId(),\r\n DocNum : dataItem.requestNo ,\r\n DsCode : dataItem.ds_code,\r\n UID : this.commonService.getLoggedInUserId(),\r\n Schdate : dataItem.date\r\n }\r\n this.statusService.postReviewStatus(obj).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n //this.selected=null;\r\n //this.getStatus();\r\n this.onClickEmit();\r\n }\r\n else if (data.successCode == 205) {\r\n if(dataItem.ds_code==30)\r\n {\r\n this.notificationService.showToast(data.successMessage, \"Warning\");\r\n }\r\n else\r\n {\r\n this.notificationService.showPopup(data.successMessage, 'Confirm').then(data => {\r\n if (data == 'yes') \r\n {\r\n let obj1: IStatusInputModel = {\r\n ProjectId : this.commonService.getProjectId() ,\r\n DocNum : dataItem.requestNo ,\r\n DsCode : dataItem.ds_code,\r\n UID : this.commonService.getLoggedInUserId(),\r\n Schdate : dataItem.date,\r\n Confirm : '1'\r\n }\r\n this.statusService.postReviewStatus(obj1).subscribe(data => {\r\n if (data.successCode == 200) {\r\n this.notificationService.showToast(data.successMessage, \"Success\");\r\n //this.selected=null;\r\n // this.getStatus();\r\n this.onClickEmit();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(\"Select an Status Update\", \"Warning\");\r\n }\r\n }\r\n\r\n viewDocumentClick(dataItem:any) {\r\n this.isViewDoc = true;\r\n this.reviewList = dataItem;\r\n }\r\n\r\n closeViewTab(val:boolean) {\r\n if(val) {\r\n this.onClickEmit();\r\n }\r\n this.isViewDoc = false;\r\n this.reviewList = [];\r\n }\r\n \r\n\r\n viewPeerdoc(dataItem: any) {\r\n let datainput =\r\n {\r\n strDocNumber: dataItem.requestNo,\r\n intUID: this.memberId\r\n };\r\n\r\n this.statusService.getPeerDocView(datainput).subscribe((resDoc: DocDetailsOutput) => {\r\n if (resDoc) {\r\n let dialogRef = this.dialog.open(ReviewViewComponent,\r\n {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docvalue: resDoc, input: datainput }\r\n });\r\n dialogRef.afterClosed().subscribe(res => {\r\n });\r\n }\r\n }, err => { });\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.ReviewList.map((data,idx)=>({\r\n ...data,\r\n review_No:data.requestNo ? data.requestNo : '',\r\n Date_Time:data.date ? (moment(data.date)).format('DD-MMM-yyyy')+' '+data.time_From+' - '+data.time_To:'',\r\n created_On:data.created_On ? (moment(data.created_On)).format('DD-MMM-yyyy'):'',\r\n approved_on:data.approved_on ? (moment(data.approved_on)).format('DD-MMM-yyyy'):'',\r\n ded_Desc:data.discipline ? data.discipline:'',\r\n req_Status:data.request_Status ? data.request_Status:''\r\n }))\r\n };\r\n return result;\r\n }\r\n\r\n public onExcelExport(e: ExcelExportEvent): void {\r\n e.workbook.sheets[0].columns.forEach((data: { width: number; autoWidth: boolean; textAlign: string; })=>{\r\n data.width=25\r\n data.autoWidth=true;\r\n data.textAlign=\"left\"\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Peer Review No: {{reviewList.old_Ref_Id}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.old_Ref_Id}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.request_Status}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.created_By}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.created_On | date:'dd-MMM-yyyy'}} \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.date | date:'dd-MMM-yyyy'}} {{dataItem.time_From}} - {{dataItem.time_To}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_by}}\r\n \r\n \r\n\r\n \r\n \r\n {{dataItem.approved_on | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Update Status\r\n \r\n {{dataItem.status_Update}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { PeerReviewService } from 'src/app/Service/peerReview/peer-review.service';\r\nimport { DocPresenterDetails } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { ExcelExportEvent } from '@progress/kendo-angular-grid';\r\nimport * as moment from 'moment';\r\nimport { orderBy } from 'lodash';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-review-view',\r\n templateUrl: './review-view.component.html',\r\n styleUrls: ['./review-view.component.css']\r\n})\r\nexport class ReviewViewComponent implements OnInit {\r\n\r\n public dataView: any[] = [];\r\n public gridData: any[] = [];\r\n public docDetails: any[] = [];\r\n public docflow: any[] = [];\r\n public presenterdata: DocPresenterDetails[] = [];\r\n public location: string | null = null;\r\n public panel: any[] = [];\r\n public cri: any[] = [];\r\n public enableFilter : boolean = false;\r\n public isProjectOverviewAvailable: boolean = false;\r\n public isChecklistAvailable: boolean = false;\r\n\r\n\r\n public grid2: any[] = [];\r\n public input;\r\n\r\n constructor(private dialog: MatDialog,private _fileService: FileService, private _peerReviewService: PeerReviewService, private commonService: CommonService, public _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (data) {\r\n this.docDetails = this.data.docvalue;\r\n this.input = this.data.input;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getProjectFiles('0');\r\n this.getProjectFiles('1');\r\n this.gridData.push({\r\n doc_no: this.docDetails[0].doc_no,\r\n review_type: this.docDetails[0].review_type,\r\n peer_review_refno: this.docDetails[0].peer_review_refno,\r\n review_date: this.docDetails[0].review_date,\r\n review_from_time: this.docDetails[0].review_from_time,\r\n review_upto_time: this.docDetails[0].review_upto_time,\r\n project_description: this.docDetails[0].project_description,\r\n document_status: this.docDetails[0].document_status,\r\n scope_of_review: this.docDetails[0].scope_of_review,\r\n services_included: this.docDetails[0].services_included,\r\n required_documents: this.docDetails[0].required_documents,\r\n type_of_structure: this.docDetails[0].type_of_structure,\r\n stages_of_review: this.docDetails[0].stages_of_review,\r\n document_location: this.docDetails[0].document_location,\r\n vc_required: this.docDetails[0].vc_required == \"Yes\" ? \"Required\" : \"Not Required\",\r\n ecd_for_project: this.docDetails[0].ecd_for_project,\r\n mep_ecd_for_project: this.docDetails[0].mep_ecd_for_project,\r\n decd_for_project: this.docDetails[0].decd_for_project,\r\n project_name: this.docDetails[0].project_name,\r\n project_code: this.docDetails[0].project_code,\r\n building_type: this.docDetails[0].building_type,\r\n client_name: this.docDetails[0].client_name,\r\n project_value_in_lakhs: this.docDetails[0].project_value_in_lakhs,\r\n design_fee_in_lakhs: this.docDetails[0].design_fee_in_lakhs,\r\n project_brief_desc: this.docDetails[0].project_brief_desc,\r\n nature_of_project: this.docDetails[0].nature_of_project,\r\n contract_type: this.docDetails[0].contract_type,\r\n project_scope_of_work: this.docDetails[0].project_scope_of_work,\r\n built_up_area_in_sqm: this.docDetails[0].built_up_area_in_sqm,\r\n plot_area_in_sqm: this.docDetails[0].plot_area_in_sqm,\r\n proof_consultant_name: this.docDetails[0].proof_consultant_name,\r\n architectural_consultant_name: this.docDetails[0].architectural_consultant_name,\r\n structural_consultant_name: this.docDetails[0].structural_consultant_name,\r\n any_other_consultants: this.docDetails[0].any_other_consultants,\r\n project_start_date: this.docDetails[0].project_start_date,\r\n project_end_date: this.docDetails[0].project_end_date,\r\n project_submission_date: this.docDetails[0].project_submission_date,\r\n date_of_loi: this.docDetails[0].date_of_loi,\r\n edms_available: this.docDetails[0].edms_available == \"Yes\" ? \"Available\" : \"Not Available\",\r\n scope_for_peer_review: this.docDetails[0].scope_for_peer_review,\r\n created_by: this.docDetails[0].created_by,\r\n created_on: this.docDetails[0].created_on,\r\n approved_by: this.docDetails[0].approved_by,\r\n approved_on: this.docDetails[0].approved_on,\r\n comments_status: this.docDetails[0].comments_status,\r\n response_status: this.docDetails[0].response_status,\r\n impact_status: this.docDetails[0].impact_status,\r\n ds_code: this.docDetails[0].ds_code\r\n });\r\n\r\n this._peerReviewService.getPeerDocFlow(this.input).subscribe((resDocflow)=>\r\n {\r\n this.docflow = resDocflow;\r\n });\r\n this._peerReviewService.getPeerPresenter(this.input).subscribe((resPresenter)=>\r\n {\r\n this.presenterdata = resPresenter;\r\n });\r\n this._peerReviewService.getPeerPanelMembers(this.input).subscribe((resPanel)=>\r\n {\r\n this.panel = orderBy(resPanel,['member_Discipline','member_Name']);\r\n if(this.panel[0].location_name)\r\n this.location = this.panel[0].location_name;\r\n });\r\n this._peerReviewService.getPeerCRI(this.input).subscribe((resCRI)=>\r\n {\r\n this.cri = resCRI;\r\n });\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n public viewCommentsAttachmentClick(dataItem: any) \r\n {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w100'],\r\n data: { projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRC', libraryName: FileUploadLibrary.WorkflowDocument, \r\n createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: false },\r\n });\r\n }\r\n\r\n public viewImpactsAttachmentClick(dataItem: any) \r\n {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w100'],\r\n data: { projectId: this.commonService.getProjectId(), docId: dataItem.comment_Id, revisionNo: 'PRI', libraryName: FileUploadLibrary.WorkflowDocument, \r\n createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: false },\r\n });\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n openFile(revisionNo:string)\r\n {\r\n let id = this.commonService.getProjectId()+'001'\r\n if(revisionNo=='1')\r\n {\r\n let value:string[] = this.docDetails[0]?.peer_review_refno?.split('-');\r\n let peerDocno = value[1].substring(2,value[1].length);\r\n id = this.docDetails[0]?.intProjectId + peerDocno;\r\n }\r\n\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w100'],\r\n data: { projectId: this.commonService.getProjectId(), docId: id, revisionNo: revisionNo, libraryName: FileUploadLibrary.WorkflowDocument, \r\n createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: false },\r\n });\r\n }\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.cri.map((x,indx) => \r\n ({\r\n ...x,\r\n Sl_No:indx+1,\r\n commented_By: x.commented_By ? x.commented_By + ` - ${x.commented_On ? moment(x.commented_On).format('DD-MMM-yyyy') : ''}` : '',\r\n response_Received_From : x.response_Received_From ? x.response_Received_From + ` - ${x.response_Received_On ? moment(x.response_Received_On).format('DD-MM-YYYY'): ''}` : '',\r\n project_Design_Team_Response : x.project_Design_Team_Response ? x.project_Design_Team_Response == 'Comply' ? x.project_Design_Team_Response + ` (Action) - ${x.response_Remarks ? x.response_Remarks:''}` : x.project_Design_Team_Response + ` (Reason) - ${x.disAgree_Reason_Remarks\r\n ? x.disAgree_Reason_Remarks:''}`:'',\r\n response_Entry_Done_By: x.response_Entry_Done_By ? x.response_Entry_Done_By + ` - ${x.response_Entry_Done_On ? moment(x.response_Entry_Done_On).format('DD-MM-YYYY'):''}`:'',\r\n comment_Category: x.comment_Category ? x.comment_Category : '',\r\n potential_Comment: x.potential_Comment ? x.potential_Comment + `.${x.comment_Category ? x.comment_Category : ''}` : ''\r\n }))\r\n }\r\n return result;\r\n }\r\n public onExcelExport(e: ExcelExportEvent): void {\r\n e.workbook.sheets[0].columns.forEach((data: { width: number; autoWidth: boolean; textAlign: string; }, i) => {\r\n if(i==0 || i==1 )\r\n {\r\n data.width = 30;\r\n data.autoWidth = true;\r\n }\r\n else\r\n {\r\n data.width = 300;\r\n data.autoWidth =false;\r\n }\r\n })\r\n let values = e.workbook.sheets[0].rows;\r\n values[0].height = 50;\r\n values[0].cells[5].wrap = true;\r\n for (let i = 0; i < e.workbook.sheets[0].columns.length; i++) {\r\n values[0].cells[i].background = '#507bd1'\r\n values[0].cells[i].color = \"#ffffff\"\r\n values[0].cells[i].textAlign = \"center\"\r\n values[0].cells[i].verticalAlign = \"center\"\r\n values[0].cells[i].wrap = true;\r\n }\r\n\r\n for(let i=1;i 250) || (len2 > 250) || (len3 > 250)) {\r\n values[i].height = (maxlength / 3) * 1.75;\r\n values[i].cells[3].wrap = true;\r\n values[i].cells[6].wrap = true;\r\n values[i].cells[8].wrap = true;\r\n }\r\n else if((len1 > 100 && len1 < 250) || (len2 > 100 && len2 < 250) || (len3 > 100 && len3 < 250))\r\n {\r\n values[i].height = (maxlength / 4) * 1.75;\r\n values[i].cells[3].wrap = true;\r\n values[i].cells[6].wrap = true;\r\n values[i].cells[8].wrap = true;\r\n }\r\n else if ((len1 < 100 && len1 > 50) || (len2 < 100 && len2 > 50) || (len3 < 100 && len3 > 50)) {\r\n values[i].height = (maxlength / 2) * 2.25;\r\n values[i].cells[3].wrap = true;\r\n values[i].cells[6].wrap = true;\r\n values[i].cells[8].wrap = true;\r\n }\r\n else {\r\n values[i].height = maxlength < 30 ? 20 : maxlength;\r\n values[i].cells[3].wrap = true;\r\n values[i].cells[6].wrap = true;\r\n values[i].cells[8].wrap = true;\r\n }\r\n \r\n let category:string = values[i].cells[4].value\r\n let categoryValue = category.split('.')[1];\r\n values[i].cells[4].value = category.split('.')[0];\r\n if (categoryValue == 'High Risk') { values[i].cells[4].background = '#ff0000'; values[i].cells[4].color = \"#fff\"; values[i].cells[4].bold = true; values[i].cells[4].verticalAlign = \"top\" }\r\n if (categoryValue == 'Medium Risk') { values[i].cells[4].background = '#ffbf00'; values[i].cells[4].color = \"#fff\"; values[i].cells[4].bold = true; values[i].cells[4].verticalAlign = \"top\" }\r\n if (categoryValue == 'Low Risk') { values[i].cells[4].background = '#007800'; values[i].cells[4].color = \"#fff\"; values[i].cells[4].bold = true; values[i].cells[4].verticalAlign = \"top\" }\r\n }\r\n for (var i = 1; i < values.length; i++) {\r\n for (var j = 0; j < e.workbook.sheets[0].columns.length; j++) {\r\n if (j == 0 || j == 1 || j==2 || j==7) {\r\n values[i].cells[j].textAlign = \"center\";\r\n values[i].cells[j].verticalAlign = \"center\"\r\n }\r\n else {\r\n values[i].cells[j].textAlign = \"left\"\r\n values[i].cells[j].verticalAlign = \"top\"\r\n }\r\n if (i != 0 && j != 4) {\r\n values[i].cells[j].background = (i + 1) % 2 ? '#eff3fb' : '#ffffff';\r\n }\r\n values[i].cells[j].borderTop = { color: '#000', size: 1 };\r\n values[i].cells[j].borderBottom = { color: '#000', size: 1 };\r\n values[i].cells[j].borderLeft = { color: '#000', size: 1 };\r\n values[i].cells[j].borderRight = { color: '#000', size: 1 };\r\n\r\n }\r\n }\r\n for(var i=0;i<1;i++)\r\n {\r\n for(var j=0;j {\r\n // let fileName: string = res.fileName;\r\n // let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n // this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n // });\r\n dialog.afterClosed().subscribe(()=>{\r\n this.getProjectFiles('1');\r\n })\r\n }\r\n\r\n uploadProjectOverview()\r\n {\r\n let uniqueProjectId = '00'+this.commonService.getProjectId()+'001';\r\n const dialog = this.dialog.open( FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '80%',\r\n data: { projectId: this.commonService.getProjectId(), docId: uniqueProjectId, revisionNo: '0', moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument,\r\n createdBy: this.commonService.getLoggedInUserId, \r\n documents: [{ value: uniqueProjectId, text: 'ProjectOverview', revisionNo: '0', task_SNo: 0 }],\r\n isEditable: false,isEnableFullScreen:true },\r\n });\r\n\r\n dialog.afterClosed().subscribe(()=>{\r\n this.getProjectFiles('0');\r\n })\r\n }\r\n\r\n getProjectFiles(revisionNo:string)\r\n {\r\n let id = Number(this.docDetails[0].peer_review_refno.split('-')[1]?.substring(2,this.docDetails[0].peer_review_refno.split('-')[1]?.lenght));\r\n let uniqueId = (this.commonService.getProjectId()) + (revisionNo == '0' ? '001' : id.toString());\r\n\r\n this._fileService.GetFiles({libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(\r\n { projectId: this.commonService.getProjectId(), docId: Number(uniqueId), revisionNo: revisionNo })}).subscribe((res:any)=>{\r\n if(revisionNo=='0')\r\n {\r\n this.isProjectOverviewAvailable = res && res.length>0 ? true:false\r\n }\r\n if(revisionNo=='1')\r\n {\r\n this.isChecklistAvailable = res && res.length>0 ? true:false;\r\n }\r\n })\r\n }\r\n\r\n \r\n \r\n}\r\n\r\n\r\n","
\r\n
\r\n

Peer Review Request No. {{data.peer_review_refno}}

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

Request Details

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

Request No.

\r\n

{{data.peer_review_refno}}

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

Review Type

\r\n

{{data.review_type}}

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

Project Description

\r\n

{{data.project_description}}\r\n

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

Request Status

\r\n

{{data.document_status}}

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

Services Included

\r\n

\r\n {{data.services_included}}\r\n

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

Required Documents

\r\n \r\n
\r\n Upload Checklist\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Project OverView

\r\n \r\n
\r\n Upload Project Overview\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Stages Of Review

\r\n

{{data.stages_of_review}}

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

Date

\r\n

\r\n {{data.review_date | date:'dd-MMM-yyyy'}}\r\n

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

Video Conference?

\r\n

{{data.vc_required}}

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

Document Location

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

ECD For Project

\r\n

{{data.ecd_for_project}}

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

MEIC For Project

\r\n

{{data.mep_ecd_for_project}}

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

DEIC For Project

\r\n

{{data.decd_for_project}}

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

Workflow Details

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.action_By}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.action_Desc}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.action_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.remarks}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n

Panel Members

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

Location : {{location}}

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.member_Name}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Yes\r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n \r\n \r\n
\r\n Yes\r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n \r\n \r\n
\r\n Yes\r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n

Comments and Response

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.commented_By}} / {{ dataItem.commented_On | date:'dd-MMM-yyyy' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.comment}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{dataItem.potential_Comment}}\r\n
\r\n
\r\n \r\n

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

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.response_Received_From ? dataItem.response_Received_From + '/':''}} {{dataItem.response_Received_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.project_Design_Team_Response}} {{dataItem.project_Design_Team_Response == 'Comply' ? '(Action) - ' : dataItem.project_Design_Team_Response == 'Unable to comply' ? '(Reason) - ':''}} {{dataItem.project_Design_Team_Response == 'Comply' ? dataItem.response_Remarks : dataItem.disAgree_Reason_Remarks}} \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.response_Entry_Done_By ? dataItem.response_Entry_Done_By + '/':''}} {{dataItem.response_Entry_Done_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.impacts}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n No\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, ElementRef,EventEmitter, HostListener, Input, NgZone, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.css']\r\n})\r\nexport class TimePickerComponent implements OnInit {\r\n\r\n @Output() selectedTime = new EventEmitter();\r\n @Input() lable: string = '';\r\n @Input() inputselectedTime:any;\r\n\r\n // Generate time slots with intervals of 1.5 hours\r\n\r\n timeControl = new FormControl('',[Validators.required]);\r\n timeSlots: string[] = this.generateTimeSlots();\r\n filteredTimeSlots: Observable;\r\n\r\n constructor(private elementRef: ElementRef, private ngZone: NgZone) { \r\n this.filteredTimeSlots = this.timeControl.valueChanges.pipe(\r\n startWith(''),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n if(this.timeSlots.filter((time) => time.toLowerCase().includes(filterValue)).length){\r\n return this.timeSlots.filter((time) => time.toLowerCase().includes(filterValue));\r\n }else{\r\n this.clearInput();\r\n }\r\n \r\n }\r\n\r\n // Function to generate time slots\r\n private generateTimeSlots(): string[] {\r\n const startTime = 540; // Start time in minutes\r\n const endTime = 18.5 * 60; // End time in minutes (24 hours)\r\n const interval = 30; // Interval in minutes (1.5 hours)\r\n\r\n const timeSlots: string[] = [];\r\n for (let time = startTime; time < endTime; time += interval) {\r\n const hours = Math.floor(time / 60);\r\n const minutes = time % 60;\r\n const period = hours < 12 ? 'AM' : 'PM';\r\n\r\n // Convert hours to 12-hour format\r\n const formattedHours = hours % 12 || 12;\r\n\r\n const formattedTime = `${this.pad(formattedHours)}:${this.pad(minutes)} ${period}`;\r\n timeSlots.push(formattedTime);\r\n }\r\n \r\n\r\n return timeSlots;\r\n }\r\n \r\n // Function to pad single-digit numbers with leading zero\r\n private pad(n: number): string {\r\n return n < 10 ? `0${n}` : `${n}`;\r\n }\r\n \r\n // Emit selected time when a time slot is clicked\r\n selectTime(time: string): void {\r\n const [hours, minutes, period] = time.split(/[:\\s]+/);\r\n let militaryHours = parseInt(hours, 10);\r\n \r\n if (period.toLowerCase() === 'pm' && militaryHours !== 12) {\r\n militaryHours += 12;\r\n } else if (period.toLowerCase() === 'am' && militaryHours === 12) {\r\n militaryHours = 0;\r\n }\r\n \r\n const militaryTime = `${this.pad(militaryHours)}:${this.pad(parseInt(minutes, 10))}`;\r\n \r\n \r\n // Emit the converted time\r\n this.selectedTime.emit(militaryTime);\r\n \r\n // Optionally reset the input value\r\n // this.timeControl.reset();\r\n // this.selectedTime.emit(time);\r\n }\r\n\r\n \r\n clearInput(): void {\r\n this.timeControl.setValue('');\r\n this.selectedTime.emit('');\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n handleClickOutside(event: Event): void {\r\n const clickedElement = event.target as HTMLElement;\r\n const inputElement = this.elementRef.nativeElement.querySelector('input');\r\n \r\n if (inputElement && !inputElement.contains(clickedElement)) {\r\n // Clicked outside the input element\r\n let filterValue = this.timeControl.value?.toLowerCase();\r\n \r\n const matches = this.timeSlots.filter((time) => time.toLowerCase() === filterValue);\r\n \r\n if (!matches.length) {\r\n this.clearInput();\r\n } \r\n // You can trigger your event or perform other actions here\r\n }\r\n }\r\n\r\n}\r\n","\r\n {{lable}} \r\n \r\n \r\n \r\n {{ time }}\r\n \r\n \r\n \r\n {{lable}} is Required\r\n ","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { EIPDatePickerComponent } from 'eipdate-picker';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { finalDrawingList } from 'src/app/ViewModel/Tender-Quantity.Model';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { ICommunicationProtocol, ICommunicationInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { IProjectMasterViewModel } from 'src/app/ViewModel/ProjectMasterModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-Communication-Protocol',\r\n templateUrl: './Communication-Protocol.component.html',\r\n styleUrls: ['./Communication-Protocol.component.css']\r\n})\r\nexport class CommunicationProtocolComponent implements OnInit {\r\n public projectId!: number;\r\n public projectCode!: string;\r\n public memberId!: number;\r\n public groupId!: number;\r\n public dynamicField: FieldConfig[] = [];\r\n public enableFilter = false;\r\n public from_Date: string|null = null;\r\n public to_Date: string|null = null;\r\n public stages: number |null= null;\r\n public drg_Type: string|null = null;\r\n public projectList: IProjectMasterViewModel[] = [];\r\n public fromDate: any;\r\n public ToMinDate!: Date;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public finalDrawingList: finalDrawingList[] = [];\r\n public CommunicationProtocolList: any[] = [];\r\n public ExternalCommunicationProtocolList: any[] = [];\r\n numElements: Map = new Map();\r\n public Project_Code!: string;\r\n public Trans_Type!: string;\r\n public GrdVisible = false;\r\n @ViewChild('todatePicker')\r\n dateRange!: EIPDatePickerComponent;\r\n \r\n constructor(\r\n private _commonService: CommonService, private dialog: MatDialog, private _notificationService: NotificationService, private CommunicationService: CommunicationService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.Project_Code = this._commonService.getProjectCode();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n //this.ComProtocalForm.get('ToggleControl').setValue(\"Internal\");\r\n this.Trans_Type = \"Internal\";\r\n\r\n }\r\n\r\n finalView() {\r\n this.ExternalCommunicationProtocolList = [];\r\n this.CommunicationProtocolList = [];\r\n if (!this.projectId) {\r\n this._notificationService.showToast(\"Please select project\", \"Warning\");\r\n return;\r\n }\r\n this.GrdVisible = false;\r\n let obj: ICommunicationInputModel = {} as ICommunicationInputModel;\r\n obj.Proj_Code = this.Project_Code;\r\n obj.Trans_Type = this.Trans_Type;\r\n obj.Project_Id = this.projectId;\r\n this.CommunicationService.GetCommunicationProtocol(obj).subscribe((data: ICommunicationProtocol[]) => {\r\n if (data && data.length > 0) {\r\n if (this.Trans_Type == 'External')\r\n this.ExternalCommunicationProtocolList = data;\r\n else\r\n this.CommunicationProtocolList = data;\r\n\r\n this.GrdVisible = true;\r\n }\r\n else { this._notificationService.showToast(\"No Records avilable.\", \"Warning\"); }\r\n });\r\n }\r\n \r\n onToggleFormatChange(Value: string) {\r\n this.Trans_Type = Value\r\n }\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n addmembers(dataitem: ICommunicationProtocol) {\r\n dataitem.projectId = this.projectId;\r\n dataitem.groupId = this.groupId;\r\n this.CommunicationService.PostProjectCommunicationProtocol(dataitem).subscribe((res: any) => {\r\n\r\n if (res && res.successCode == 200) {\r\n\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Internal\r\n External\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-message-sent-count',\r\n templateUrl: './message-sent-count.component.html',\r\n styleUrls: ['./message-sent-count.component.css']\r\n})\r\nexport class MessageSentCountComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

\r\n message-sent-count works!\r\n

\r\n","import { DatePipe, formatDate } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-message-status-summary',\r\n templateUrl: './message-status-summary.component.html',\r\n styleUrls: ['./message-status-summary.component.css']\r\n})\r\nexport class MessageStatusSummaryComponent implements OnInit {\r\n\r\n\r\n public reportServer!: string|null;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n public date!: Date;\r\n projectId!: number ;\r\n memberId!: number ;\r\n groupId!: number ;\r\n hasSuperView: boolean = false;\r\n public buttonType = 'MyMessages';\r\n\r\n constructor(private commonService: CommonService, public datepipe: DatePipe) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId()\r\n this.callMemberRoleandFeature();\r\n this.EmbedSSRSReport();\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.hasSuperView = result1.some(data => data.feature_Desc == 'Msg Super View');\r\n });\r\n }\r\n\r\n public onValChange(val: string) {\r\n this.buttonType = val;\r\n this.reportServer = null;\r\n this.reportUrl = '';\r\n this.parameters = null;\r\n setTimeout(() => {\r\n this.EmbedSSRSReport();\r\n }, 50);\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.date = new Date();\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/MessageStatusSummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/MessageStatusSummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId(),\r\n \"Member_Id\": this.buttonType == \"MyMessages\" ? this.memberId : null,\r\n \"To_Date\": formatDate(this.date, 'MM/dd/yyyy', 'en-US'),\r\n \"Message_Type\": null,\r\n \"Message_Type_Desc\": null,\r\n \"Trans_Type\": 'Fetch',\r\n \"Project_Description\": null,\r\n \"Project_Short_Desc\": null,\r\n \"Project_URL\": null,\r\n \"Project_Logo_URL\": null,\r\n \"UserId\": 0,\r\n \"Active_Tag\": true,\r\n \"error\": null,\r\n \"Job_Code\": null,\r\n \"Project_Code\": null,\r\n \"Search_Text\": null,\r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n My Messages\r\n Other Messages\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-document-count',\r\n templateUrl: './document-count.component.html',\r\n styleUrls: ['./document-count.component.css']\r\n})\r\nexport class DocumentCountComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

\r\n document-count works!\r\n

\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-document-summary-report',\r\n templateUrl: './document-summary-report.component.html',\r\n styleUrls: ['./document-summary-report.component.css']\r\n})\r\nexport class DocumentSummaryReportComponent implements OnInit {\r\n\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n\r\n constructor( private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.EmbedSSRSReport();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ProjectGroupDocumentSummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ProjectGroupDocumentSummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId(),\r\n \"MemberId\" : this.commonService.getLoggedInUserId(),\r\n \"XMLDynamicId\": null\r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { EIPDatePickerComponent } from 'eipdate-picker';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport * as moment from 'moment';\r\nimport { ProjectMasterService } from 'src/app/Service/projectmaster/projectmaster.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { DrawingScheduleAdherenceCalculationmodel } from 'src/app/ViewModel/Report.Model';\r\nimport { ReportService } from 'src/app/Service/Report/Report.service';\r\nimport { DataBindingDirective, RowClassArgs } from '@progress/kendo-angular-grid';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-Drawings_Adherence_report',\r\n templateUrl: './Drawings_Adherence_report.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./Drawings_Adherence_report.component.css']\r\n})\r\nexport class DrawingsAdherenceComponent implements OnInit {\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n public ScheduleStartDate;\r\n public ScheduleEndDate;\r\n ShowSearch: boolean = false;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public dynamicField: FieldConfig[] = [];\r\n public stageList: IProjectElementDetailsOutput[] = [];\r\n public dwgList!: IProjectElementDetailsOutput[];\r\n public enableFilter = false;\r\n public cal_enableFilter = false;\r\n public from_Date!: string;\r\n public to_Date!: string;\r\n public stages: number | null | undefined;\r\n public drg_Type: string | undefined | null;\r\n public fromDate: any;\r\n public Datalist: any[] = [];\r\n public CalDatalist: DrawingScheduleAdherenceCalculationmodel[] = [];\r\n numElements: Map = new Map();\r\n public Project_Code!: string;\r\n public Trans_Type!: string;\r\n public GrdVisible = false;\r\n public structure: any[] = [];\r\n public discipline: any[] = [];\r\n public disciplineId: string | undefined | null;\r\n public structureId: string | undefined | null;\r\n public projectCode!: string;\r\n public Legend: any[] = [];\r\n @ViewChild('todatePicker') dateRange!: EIPDatePickerComponent;\r\n\r\n @ViewChild(\"docSetForm\") dynamicForm: DynamicFormComponent;\r\n projectElements: IProjectElementsOutput[] = [];\r\n elementsConfig: FieldConfig[] = [];\r\n\r\n public DrawingsAdherenceForm: FormGroup = new FormGroup({\r\n\r\n ScheduleStartDate: new FormControl(),\r\n ScheduleEndDate: new FormControl(),\r\n\r\n });\r\n\r\n constructor(private _projectService: ProjectMasterService, private _projInfoService: ProjectInfoService,\r\n private _commonService: CommonService, private dialog: MatDialog, private _notificationService: NotificationService,\r\n private ReportService: ReportService) {\r\n this.allData = this.allData.bind(this);\r\n this.fullData = this.fullData.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.projectCode = this._commonService.getProjectCode();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.getDropDownValue();\r\n this.CallLegend();\r\n this.getDynamicForm().then((res: any) => {\r\n this.finalView();\r\n });\r\n }\r\n\r\n toggleShowSearch() {\r\n this.ShowSearch = !this.ShowSearch;\r\n }\r\n\r\n async getDynamicForm() {\r\n this._projInfoService.getProjectElements({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n IsQueryForStaticElement: false\r\n }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n\r\n this.elementsConfig = res.filter(s => {\r\n return s.isMandatory == true;\r\n }).map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n value: new BehaviorSubject(null)\r\n };\r\n\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n this.onCascadingAutocomplete_Change();\r\n this.copyElementDetailsFromSource();\r\n });\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach((data: any) => {\r\n if (!!data.child_de_id) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe(x => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projInfoService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n } else {\r\n _field[0].values = [];\r\n }\r\n }, err => { });\r\n } else {\r\n _field[0].values = [];\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n private copyElementDetailsFromSource() {\r\n let sourceProjElementForm: FormGroup = this.dynamicForm.value;\r\n this.projectElements.filter(s => {\r\n return s.isNumbering == false\r\n }).forEach(x => {\r\n let selectedValue: IProjectElementDetailsOutput = sourceProjElementForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let field: FieldConfig | undefined = this.elementsConfig.find(ele => ele.de_id == selectedValue.deId && ele.deDescription == selectedValue.deDescription);\r\n if (field && field.value) {\r\n field.value.next(selectedValue.dedId);\r\n }\r\n }\r\n })\r\n }\r\n\r\n async LoadSearchDetails(): Promise {\r\n let resForm: FormGroup | undefined | null = this.dynamicForm.form;\r\n\r\n let FilterDetails: any[] = [];\r\n\r\n this.projectElements.map(async x => {\r\n let result: any;\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n result = {\r\n dE_Id: x.elementId,\r\n dED_Id: selectedValue.dedId\r\n }\r\n FilterDetails.push(result);\r\n })\r\n\r\n return FilterDetails;\r\n }\r\n\r\n getDropDownValue() {\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Workflow Status'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.stageList = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'DWG / DOC'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.dwgList = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Discipline'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.discipline = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Structure / Package'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.structure = res;\r\n });\r\n }\r\n\r\n selectedDwg(value: any) {\r\n if (value.value != \"-2\") {\r\n this.drg_Type = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.drg_Type = null;\r\n }\r\n }\r\n selectedProject(value: any) {\r\n this.Project_Code = value.additionalValues.additionalValues.project_Code;\r\n }\r\n\r\n getFromDateValue(date: any) {\r\n this.from_Date = date;\r\n }\r\n\r\n getToDateValue(date: any) {\r\n this.to_Date = date;\r\n }\r\n\r\n selectedStage(value: any) {\r\n if (value.value != \"-2\") {\r\n this.stages = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.stages = null;\r\n }\r\n }\r\n\r\n getFormValue(controlName: string): any {\r\n return this.DrawingsAdherenceForm.get(controlName)?.value;\r\n }\r\n\r\n getStartDateValue(selectedText: any) {\r\n this.DrawingsAdherenceForm.get('ScheduleStartDate')?.setValue(selectedText);\r\n }\r\n\r\n getEndDateValue(selectedText: any) {\r\n this.DrawingsAdherenceForm.get('ScheduleEndDate')?.setValue(selectedText);\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n caltoggleFilter() {\r\n this.cal_enableFilter = !this.cal_enableFilter;\r\n }\r\n\r\n selectedDiscipline(value: any) {\r\n if (value.value != \"-2\") {\r\n this.disciplineId = value.additionalValues.additionalValues.dedId.toString();\r\n } else {\r\n this.disciplineId = null;\r\n }\r\n }\r\n\r\n selectedSturcture(value: any) {\r\n if (value.value != \"-2\") {\r\n this.structureId = value.additionalValues.additionalValues.dedId.toString();\r\n } else {\r\n this.structureId = null;\r\n }\r\n }\r\n public rowCallback(context: RowClassArgs) {\r\n if (context.dataItem.delay_Days < 0) { // change this condition as you need\r\n return {\r\n AdvanceRelease: true\r\n };\r\n } else if (context.dataItem.delay_Days > 0) {\r\n return {\r\n Delay: true\r\n };\r\n } else if (context.dataItem.delay_Days == 0) {\r\n return {\r\n ReleasedOnTime: true\r\n };\r\n\r\n } else\r\n return;\r\n\r\n }\r\n public rowClassCallback = (context: RowClassArgs): void | object => {\r\n\r\n switch (context.dataItem.Delay) {\r\n case -1:\r\n return {\r\n Col_AdvanceRelease: true\r\n };\r\n case 0:\r\n return {\r\n Col_ReleasedOnTime: true\r\n };\r\n case 1:\r\n return {\r\n Col_Delay: true\r\n };\r\n }\r\n }\r\n CallLegend() {\r\n this.Legend = [];\r\n let Delayed_Release: any = {\r\n Doc_Release: \"Delayed Release\",\r\n Delay: 1\r\n }\r\n let Advanced_Release: any = {\r\n Doc_Release: \"Advanced Release\",\r\n Delay: -1\r\n }\r\n let Released_On_time: any = {\r\n Doc_Release: \"Released on time\",\r\n Delay: 0\r\n }\r\n this.Legend.push(Delayed_Release);\r\n this.Legend.push(Advanced_Release);\r\n this.Legend.push(Released_On_time);\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n let _data: any = this.Datalist;\r\n\r\n for (let index = 0; index < _data.length; index++) {\r\n _data[index].scheduled_On = this.getFormattedDate(_data[index].scheduled_On);\r\n _data[index].completed_On = this.getFormattedDate(_data[index].completed_On);\r\n }\r\n const result: ExcelExportData = {\r\n data: _data\r\n };\r\n return result;\r\n }\r\n\r\n public fullData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.CalDatalist\r\n };\r\n return result;\r\n }\r\n\r\n public getFormattedDate(date: moment.MomentInput) {\r\n if (date != null) {\r\n let res = (moment(date)).format('DD-MMM-yyyy');\r\n return res;\r\n }\r\n return null\r\n }\r\n\r\n finalView() {\r\n this.GrdVisible = false;\r\n\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj: any = {\r\n Project_Id: this.projectId,\r\n Dynamic_Id: res,\r\n From_Date: !!this.getFormValue('ScheduleStartDate') ? this.getFormValue('ScheduleStartDate') : null,\r\n To_Date: !!this.getFormValue('ScheduleEndDate') ? this.getFormValue('ScheduleEndDate') : null,\r\n Stages: this.stages,\r\n Proj_Code: this.projectCode\r\n }\r\n\r\n this.Datalist = [];\r\n this.CalDatalist = [];\r\n this.ReportService.GetDrawingScheduleAdherenceList(obj).subscribe((data: any) => {\r\n if (data) {\r\n this.Datalist = data.drawingScheduleAdherenceOutputModel;\r\n this.CalDatalist = data.drawingScheduleCalOutputtModel;\r\n if (this.Datalist && this.Datalist.length > 0)\r\n this.GrdVisible = true;\r\n } else {\r\n this.Datalist = [];\r\n //this._notificationService.showToast(\"No Records avilable.\", \"Warning\");\r\n }\r\n });\r\n })\r\n }\r\n\r\n delayed_Filter() {\r\n if (this.GrdVisible == true) {\r\n this.dataBinding.skip = 0;\r\n\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj: any = {\r\n Project_Id: this.projectId,\r\n Dynamic_Id: res,\r\n From_Date: !!this.getFormValue('ScheduleStartDate') ? this.getFormValue('ScheduleStartDate') : null,\r\n To_Date: !!this.getFormValue('ScheduleEndDate') ? this.getFormValue('ScheduleEndDate') : null,\r\n Stages: this.stages,\r\n Proj_Code: this.projectCode\r\n }\r\n\r\n this.Datalist = [];\r\n this.ReportService.GetDrawingScheduleAdherenceList(obj).subscribe((data: any) => {\r\n if (data) {\r\n this.Datalist = data.drawingScheduleAdherenceOutputModel;\r\n this.Datalist = this.Datalist.filter(x => x.delay_Days > 0);\r\n } else {\r\n this.Datalist = [];\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n advanced_Filter() {\r\n if (this.GrdVisible == true) {\r\n this.dataBinding.skip = 0;\r\n\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj: any = {\r\n Project_Id: this.projectId,\r\n Dynamic_Id: res,\r\n From_Date: !!this.getFormValue('ScheduleStartDate') ? this.getFormValue('ScheduleStartDate') : null,\r\n To_Date: !!this.getFormValue('ScheduleEndDate') ? this.getFormValue('ScheduleEndDate') : null,\r\n Stages: this.stages,\r\n Proj_Code: this.projectCode\r\n }\r\n\r\n this.Datalist = [];\r\n this.ReportService.GetDrawingScheduleAdherenceList(obj).subscribe((data: any) => {\r\n if (data) {\r\n this.Datalist = data.drawingScheduleAdherenceOutputModel;\r\n this.Datalist = this.Datalist.filter(x => x.delay_Days < 0);\r\n } else {\r\n this.Datalist = [];\r\n }\r\n });\r\n })\r\n }\r\n }\r\n\r\n ontime_Filter() {\r\n if (this.GrdVisible == true) {\r\n this.dataBinding.skip = 0;\r\n\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let obj: any = {\r\n Project_Id: this.projectId,\r\n Dynamic_Id: res,\r\n From_Date: !!this.getFormValue('ScheduleStartDate') ? this.getFormValue('ScheduleStartDate') : null,\r\n To_Date: !!this.getFormValue('ScheduleEndDate') ? this.getFormValue('ScheduleEndDate') : null,\r\n Stages: this.stages,\r\n Proj_Code: this.projectCode\r\n }\r\n\r\n this.Datalist = [];\r\n this.ReportService.GetDrawingScheduleAdherenceList(obj).subscribe((data: any) => {\r\n if (data) {\r\n this.Datalist = data.drawingScheduleAdherenceOutputModel;\r\n this.Datalist = this.Datalist.filter(x => x.delay_Days == 0);\r\n } else {\r\n this.Datalist = [];\r\n }\r\n });\r\n })\r\n }\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Search Filter\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.stages_desc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.size}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.scheduled_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{(dataItem.completed_On !== null) ?(dataItem.completed_On | date:'dd-MMM-yyyy'): \"\" }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.delay_Days}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.delay_Reason}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.value}}\r\n \r\n \r\n \r\n \r\n {{dataItem.avg_delayed_days}}\r\n \r\n \r\n \r\n \r\n {{dataItem.percentage}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-erm-reports',\r\n templateUrl: './erm-reports.component.html',\r\n styleUrls: ['./erm-reports.component.css']\r\n})\r\nexport class ErmReportsComponent implements OnInit {\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n selectedTabIndex = 0;\r\n\r\n constructor(private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.bindReport();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n public viewTabClick(event: { index: number; }) {\r\n this.selectedTabIndex = event.index;\r\n this.bindReport();\r\n }\r\n\r\n public bindReport() {\r\n if (this.selectedTabIndex == 0) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMSProjectEngineeringReport\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMSProjectEngineeringReport\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId()\r\n };\r\n }\r\n else {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMSProjectVendorReport\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMSProjectVendorReport\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId()\r\n };\r\n }\r\n this.EmbedSSRSReport();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-schedule-document-reports',\r\n templateUrl: './schedule-document-reports.component.html',\r\n styleUrls: ['./schedule-document-reports.component.css']\r\n})\r\nexport class ScheduleDocumentReportsComponent implements OnInit {\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters!: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n public isChecked:boolean =false;\r\n selectedTabIndex = 0;\r\n\r\n constructor(private commonService: CommonService,private loaderService: LoaderService) { }\r\n\r\n ngOnInit() {\r\n this.bindReport();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n this.loaderService.isLoading.next(false);\r\n }\r\n\r\n public viewTabClick(event: { index: number; }) {\r\n this.selectedTabIndex = event.index;\r\n this.bindReport();\r\n }\r\n\r\n public bindReport() {\r\n if (this.selectedTabIndex == 0) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DocumentWorkflowStatusPlannedActualSummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DocumentWorkflowStatusPlannedActualSummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId(),\r\n \"XMLDynamicId\": null,\r\n \"Schedule_Type\": null\r\n };\r\n }\r\n else if (this.selectedTabIndex == 1) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DocumentControlIndexSummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DocumentControlIndexSummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId()\r\n };\r\n }\r\n else {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ISOStandardDCISummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ISOStandardDCISummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId(),\r\n \"isChecked\": this.isChecked\r\n };\r\n }\r\n this.EmbedSSRSReport();\r\n \r\n }\r\n onChange(event:any)\r\n {\r\n this.isChecked=event.checked;\r\n this.clearReport();\r\n setTimeout(()=>{\r\n this.bindReport();\r\n },1000)\r\n }\r\n\r\n clearReport() {\r\n this.reportUrl = null;\r\n this.reportServer = null;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Predictive Report\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-ccn-summary-report',\r\n templateUrl: './ccn-summary-report.component.html',\r\n styleUrls: ['./ccn-summary-report.component.css']\r\n})\r\nexport class CCNSummaryReportComponent implements OnInit {\r\n\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n\r\n constructor(private commonService: CommonService) { }\r\n\r\n ngOnInit(): void {\r\n this.EmbedSSRSReport();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMS40_CCN_Summary_report\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/EDMS40_CCN_Summary_report\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n //\"Group_Id\": this.commonService.getLoggedInUserGroupId(),\r\n \r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n ReportViewerModule\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-dci-status-summary-report',\r\n templateUrl: './dci-status-summary-report.component.html',\r\n styleUrls: ['./dci-status-summary-report.component.css']\r\n})\r\nexport class DCIStatusSummaryReportComponent implements OnInit {\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n\r\n constructor(private commonService: CommonService,) { }\r\n\r\n ngOnInit() {\r\n this.EmbedSSRSReport();\r\n }\r\n public EmbedSSRSReport() {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DCIStatusSummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DCIStatusSummary\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Group_Id\": this.commonService.getLoggedInUserGroupId(),\r\n \r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n ReportViewerModule\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { IDashboardProjOutputModel, IProjDocDashboardOutputModel, IGFCDrawingOutputModel, IDCIAdherenceOutputModel, IStageRevOutputModel, IStageDetailsOutputModel, IJobMHOutputModel, IJobMHInputModel } from 'src/app/ViewModel/DashboardModel';\r\nimport { DashboardService } from 'src/app/Service/dashboard/dashboard.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ChartComponent, LegendTitle, LegendLabelsContentArgs, SeriesLabels } from \"@progress/kendo-angular-charts\";\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\n\r\n@Component({\r\n selector: 'app-drawing-dashboard',\r\n templateUrl: './drawing-dashboard.component.html',\r\n styleUrls: ['./drawing-dashboard.component.css']\r\n})\r\n\r\nexport class DrawingDashboardComponent implements OnInit {\r\n dashboardDetails!: IDashboardProjOutputModel;\r\n totalDays: number = 0;\r\n completedDays: number = 0;\r\n remainingDays: number = 0;\r\n plannedDocuments: number = 0;\r\n completedDocuments: number = 0;\r\n balanceDocuments: number = 0;\r\n plannedManHours: number = 0;\r\n actualManHours: number = 0;\r\n balanceManHours: number = 0;\r\n projectId!: number;\r\n memberId!: number;\r\n groupId!: number;\r\n projectDetails: IProjDocDashboardOutputModel[] = [];\r\n projectScheduleDetails: IProjDocDashboardOutputModel[] = [];\r\n projectDocScheduleMHDetails: IProjDocDashboardOutputModel[] = [];\r\n drawingGFCDetails: IGFCDrawingOutputModel[] = [];\r\n dciAdherenceDetails: IDCIAdherenceOutputModel[] = [];\r\n dciRevWiseDetails: IStageRevOutputModel[] = [];\r\n dciStageWiseDetails: IStageRevOutputModel[] = [];\r\n dciDiscWiseDetails: IStageRevOutputModel[] = [];\r\n dciStageRevDetails: IStageDetailsOutputModel[] = [];\r\n jobMHDetails: IJobMHOutputModel[] = [];\r\n\r\n dciCategories: string[] = [];\r\n\r\n category: string[] = [];\r\n scheduleCount: number = 0;\r\n scheduleMHCount: number = 0;\r\n projectList!: ProjectViewModel[];\r\n disciplineDetails!: IProjectElementDetailsOutput[];\r\n StageDetails!: IProjectElementDetailsOutput[];\r\n\r\n selectedProject!: number;\r\n selectedDiscipline!: number;\r\n selectedStage!: number;\r\n selectedProjectCode!: string;\r\n manHour: number = 0;\r\n public seriesLabels: SeriesLabels = {\r\n visible: true, // Note that visible defaults to false\r\n padding: 1,\r\n font: \"bold 12px Arial, sans-serif\",\r\n position: \"insideBase\"\r\n\r\n };\r\n Colors: string[] = [\"#5DADE2\", \"#F7DC6F\", \"#F1948A\"];\r\n\r\n public dynamicHeight = true;\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlProject: new FormControl(),\r\n ctrlDiscipline: new FormControl(),\r\n ctrlStage: new FormControl(),\r\n });\r\n public data: any[] = [];\r\n constructor(private _dashboardService: DashboardService, private _commonService: CommonService,\r\n private projectInfoService: ProjectInfoService, private notificationService: NotificationService,) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n\r\n this.getProjectList();\r\n }\r\n\r\n loadGFCDrawingDetails() {\r\n this._dashboardService.GetDrawingGFCDetails({ project_Id: this.projectId }).subscribe((res: IGFCDrawingOutputModel[]) => {\r\n this.drawingGFCDetails = res;\r\n this.category = res[0].category;\r\n });\r\n }\r\n\r\n loadStageWiseDocDetails() {\r\n this._dashboardService.GetStageWiseDocDetails({ project_Id: this.projectId }).subscribe((res: IStageRevOutputModel[]) => {\r\n this.dciStageWiseDetails = res;\r\n });\r\n }\r\n\r\n loadRevWiseDocDetails() {\r\n this._dashboardService.GetRevisionWiseDocDetails({ project_Id: this.projectId }).subscribe((res: IStageRevOutputModel[]) => {\r\n this.dciRevWiseDetails = res;\r\n });\r\n }\r\n\r\n loadDiscWiseDocDetails() {\r\n this._dashboardService.GetDiscWiseDocDetails({ project_Id: this.projectId }).subscribe((res: IStageRevOutputModel[]) => {\r\n this.dciDiscWiseDetails = res;\r\n });\r\n }\r\n\r\n loadDCIAdherenceDetails() {\r\n this._dashboardService.GetDCiAdherenceDetails({ project_Id: this.projectId }).subscribe((res: IDCIAdherenceOutputModel[]) => {\r\n this.dciAdherenceDetails = res;\r\n });\r\n }\r\n\r\n loadStageRevisionDetails() {\r\n this._dashboardService.GetStageRevisionWiseDocDetails({ project_Id: this.projectId }).subscribe((res: IStageDetailsOutputModel[]) => {\r\n this.dciStageRevDetails = res;\r\n this.dciCategories = this.dciStageRevDetails[0].stages;\r\n });\r\n }\r\n\r\n\r\n loadJobManhourDetails() {\r\n\r\n let projInput: IJobMHInputModel = {\r\n project_Code: this.selectedProjectCode\r\n }\r\n\r\n this._dashboardService.GetJobWiseMHDetails(projInput).subscribe((res: IJobMHOutputModel[]) => {\r\n let resData: any[] = [{\r\n status: \"Actual\",\r\n actual_Manhour: res[0].actual_Manhour,\r\n color: \"#49cc90\"\r\n }]\r\n this.data = resData;\r\n this.manHour = res[0].actual_Manhour;\r\n });\r\n\r\n }\r\n\r\n getStatusColor(index: number): string {\r\n return this.Colors[index];\r\n }\r\n\r\n\r\n public categories: string[] = this.category;\r\n\r\n public labelContent(e: any): string {\r\n return e.category + \" : \" + e.dataItem.doc_Percentage + \" %\";\r\n }\r\n\r\n getProjectList() {\r\n this.projectInfoService.getProjectList(this.memberId).subscribe((data: ProjectViewModel[]) => {\r\n this.projectList = data;\r\n for (let i = 0; i < this.projectList.length; i++) {\r\n this.projectList[i]['projCodeDesc'] = this.projectList[i].projectCode + ' - ' + this.projectList[i].projectDescription;\r\n }\r\n });\r\n }\r\n\r\n getDisciplineDetails() {\r\n this.projectInfoService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Workflow, deDescription: 'Workflow Status' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.StageDetails = res;\r\n });\r\n this.projectInfoService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, deDescription: 'Discipline' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.disciplineDetails = res;\r\n\r\n });\r\n\r\n }\r\n\r\n public setSelectedProject(event: any) {\r\n this.selectedProject = event.value;\r\n if (this.selectedProject != -2) {\r\n this.projectId = this.selectedProject;\r\n this.selectedProjectCode = this.projectList.filter(x => x.projectId == this.selectedProject)[0].projectShortDescription;\r\n this.loadGFCDrawingDetails();\r\n this.loadDCIAdherenceDetails();\r\n this.loadStageWiseDocDetails();\r\n this.loadRevWiseDocDetails();\r\n this.loadDiscWiseDocDetails();\r\n this.loadStageRevisionDetails();\r\n this.getDisciplineDetails();\r\n this.loadJobManhourDetails();\r\n }\r\n else {\r\n this.notificationService.showToast(\"Kindly select Project\", \"Warning\");\r\n }\r\n }\r\n\r\n public setSelectedDiscipline(event: any) {\r\n this.selectedProject = event.value;\r\n if (this.selectedProject != -2) {\r\n this.loadDiscWiseDocDetails();\r\n }\r\n }\r\n\r\n public setSelectedStage(event: any) {\r\n this.selectedProject = event.value;\r\n if (this.selectedProject != -2) {\r\n this.loadStageRevisionDetails();\r\n }\r\n }\r\n\r\n} ","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

GFC Planned Vs Actual

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

Schedule Adherance

\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Count }} \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n

Revision Wise Approval Count

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Count }} \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Stage Wise Approval Count

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Count }} \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Discipline Wise Count

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Count }} \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n

Revisions Stage Wise Count

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

Man Hours

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

{{manHour}}

\r\n Hours\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { EIPDatePickerComponent } from 'eipdate-picker';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { FinaDrawingReportService } from 'src/app/Service/fina-drawing-report.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { finalDrawingList } from 'src/app/ViewModel/Tender-Quantity.Model';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n\r\n@Component({\r\n selector: 'app-final-drawing',\r\n templateUrl: './final-drawing.component.html',\r\n styleUrls: ['./final-drawing.component.css']\r\n})\r\nexport class FinalDrawingComponent implements OnInit {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public isCLient!: boolean;\r\n public enableFilter = false;\r\n public obj: any;\r\n public enableFullscreen: boolean = false;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public finalDrawingList: finalDrawingList[] = [];\r\n DCI_Type!: FormGroup;\r\n numElements: Map = new Map();\r\n\r\n @ViewChild('todatePicker') dateRange!: EIPDatePickerComponent;\r\n is_Show_Attachment_In_DTN!: boolean;\r\n ShowSearch: boolean = false;\r\n\r\n constructor(private _projInfoService: ProjectInfoService, private _formBuilder: FormBuilder,\r\n private _commonService: CommonService, private dialog: MatDialog, private finaDrawingReportService: FinaDrawingReportService, private _WorkflowTemplateService: WorkflowTemplateService) {\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n receviewData(data: any) {\r\n this.finalView(data);\r\n }\r\n\r\n ngOnInit() {\r\n this.obj = \"final_drawing\";\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.callMemberRoleandFeature();\r\n\r\n this.finalView({\r\n \"project_Id\": this.projectId,\r\n \"group_Id\": this.groupId,\r\n \"from_Date\": null,\r\n \"to_Date\": null,\r\n \"stages\": null,\r\n \"schedule_Type\": null,\r\n \"drg_Type\": null,\r\n \"disc_Id\": null,\r\n \"struct_Id\": null,\r\n \"Dynamic_Id\": []\r\n });\r\n\r\n }\r\n\r\n toggleShowSearch() {\r\n this.ShowSearch = !this.ShowSearch;\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n this._commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n result = result.filter(data => data.role_Desc != 'Client');\r\n if (result.length > 0) {\r\n this.isCLient = false;\r\n }\r\n else {\r\n this.isCLient = true;\r\n }\r\n });\r\n }\r\n\r\n openAttachmentFileList(dataItem: any, fileUploadLibrary: number) {\r\n\r\n this._WorkflowTemplateService.getWorkflowTemplate(dataItem.workflow_Id).subscribe((data: WorkflowTemplateDialogModel) => {\r\n if (data && data.workflowStatus) {\r\n let _task_ID!: string;\r\n if (data.workflowStatus.some(x => x.is_Show_Attachment_In_DTN == true)) {\r\n fileUploadLibrary = FileUploadLibrary.WorkflowDocument;\r\n _task_ID = data.workflowStatus.filter(x => x.is_Show_Attachment_In_DTN == true).map(y => y.task_Id).join();\r\n }\r\n\r\n let obj = {\r\n \"projectId\": this.projectId,\r\n \"docId\": dataItem.doc_Id,\r\n \"revisionNo\": dataItem.revision_No,\r\n \"libraryName\": fileUploadLibrary,\r\n \"documentNo\": dataItem.doc_No,\r\n \"createdBy\": this.memberId,\r\n \"isDeleteEnable\": false,\r\n \"task_ID\": _task_ID\r\n }\r\n let dialogRef = this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n maxWidth: '70vw',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n finalView(obj?: any) {\r\n this.finaDrawingReportService.getFinalDrawingList(obj).subscribe(data => {\r\n this.finalDrawingList = data;\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.finalDrawingList\r\n };\r\n return result;\r\n }\r\n\r\n public toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n}","\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Search Filter\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.print_Size}}\r\n \r\n \r\n \r\n \r\n {{dataItem.scheduled_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.submitted_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.completed_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.comment_Sheet_No}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport * as Flexmonster from 'flexmonster';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DashboardService } from 'src/app/Service/dashboard/dashboard.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-flex-manhour',\r\n templateUrl: './flex-manhour.component.html',\r\n styleUrls: ['./flex-manhour.component.css']\r\n})\r\nexport class FlexManhourComponent implements OnInit {\r\n flexmonsterLicense: string = environment.flexLicenseKey;\r\n private flexData: any;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public newreport: any;\r\n public flexmonsterHeight = (screen.availHeight - 20);\r\n @ViewChild('flexManhourGrid') flexManhourGrid: any;\r\n constructor(private _dashboardService: DashboardService,\r\n private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.callAPI();\r\n }\r\n callAPI() {\r\n this._dashboardService.GetManHourDetails({ projectId: this.projectId, groupId: this.groupId }).subscribe((res: any[]) => {\r\n this.flexData = res;\r\n if (this.flexData.length > 0) {\r\n this.callreportdata();\r\n }\r\n });\r\n }\r\n\r\n callreportdata() {\r\n this.newreport = {\r\n \"dataSource\": {\r\n dataSourceType: 'json',\r\n \"data\": this.flexData\r\n },\r\n slice: {\r\n rows: [\r\n {\r\n uniqueName: \"Stage\"\r\n },\r\n {\r\n uniqueName: \"Month\"\r\n }\r\n \r\n ],\r\n\r\n // columns: [{\r\n // uniqueName: \"Stage\"\r\n // },\r\n // ],\r\n measures: [ {\r\n uniqueName: \"Planned_ManHours\", caption: \"Planned ManHours\"\r\n },\r\n {\r\n uniqueName: \"Actual_ManHours\", caption: \"Actual ManHours\"\r\n }\r\n\r\n ],\r\n },\r\n options: {\r\n viewType: \"charts\",\r\n chart: {\r\n title: \"Manhour Report - DCI\",\r\n type: \"stacked column\"\r\n }\r\n },\r\n width: \"96%\",\r\n height: '95%',\r\n formats: [{\r\n // thousandsSeparator: \",\",\r\n // decimalSeparator: \".\",\r\n // decimalPlaces: 2,\r\n // currencySymbol: \"$\",\r\n // currencySymbolAlign: \"left\",\r\n nullValue: \"\",\r\n textAlign: \"left\",\r\n isPercent: false\r\n }]\r\n };\r\n\r\n this.flexManhourGrid.flexmonster.setReport(this.newreport);\r\n\r\n }\r\n\r\n\r\n createDialogFlexmonster(): void {\r\n const tempFlexmonster = new Flexmonster({\r\n container: 'idFMGridCommonDialog',\r\n licenseKey: this.flexmonsterLicense,\r\n toolbar: false,\r\n height: '96%',\r\n width: '95%',\r\n customizeCell: (cell: any, data: any) => {\r\n\r\n },\r\n global: {\r\n localization: {\r\n grid: {\r\n blankMember: ''\r\n }\r\n }\r\n }\r\n });\r\n this.flexManhourGrid.flexmonster = tempFlexmonster;\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DashboardService } from 'src/app/Service/dashboard/dashboard.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Component({\r\n\tselector: 'app-flex-report',\r\n\ttemplateUrl: './flex-report.component.html',\r\n\tstyleUrls: ['./flex-report.component.css'],\r\n\tencapsulation: ViewEncapsulation.None\r\n\r\n})\r\n\r\nexport class FlexReportComponent implements OnInit {\r\n\tflexmonsterLicense: string = environment.flexLicenseKey;\t\r\n\tprivate flexData: any;\r\n\tpublic projectId!: number;\r\n\tpublic groupId!: number;\r\n\tpublic newreport: any;\r\n\tpublic flexmonsterHeight = (screen.availHeight - 20);\r\n\t@ViewChild('flexMonsterGrid') flexMonsterGrid: any;\r\n\tconstructor(private _dashboardService: DashboardService,\r\n\t\tprivate commonService: CommonService) {\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.projectId = this.commonService.getProjectId();\r\n\t\tthis.groupId = this.commonService.getLoggedInUserGroupId();\r\n\t\tthis.callAPI();\r\n\t}\r\n\tcallAPI() {\r\n\t\tthis._dashboardService.GetFlexDCIDetails({ projectId: this.projectId, groupId: this.groupId }).subscribe((res: any[]) => {\r\n\t\t\tthis.flexData = res;\r\n\t\t\tif (this.flexData.length > 0) {\r\n\t\t\t\tthis.callreportdata();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcallreportdata() {\r\n\t\r\n\t\tthis.newreport = {\t\t\t\r\n\t\t\tglobal: {\r\n\t\t\t\tlocalization: {\r\n\t\t\t\tgrid: {\r\n\t\t\t\t blankMember: \"\"\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t\t},\r\n\t\t\t\"dataSource\": {\r\n\t\t\t\tdataSourceType: 'json',\r\n\t\t\t\t\"data\": this.flexData\r\n\t\t\t},\t\t\t\r\n\t\t\tslice: {\r\n\t\t\t\tcolumns: [{\r\n\t\t\t\t\tuniqueName: \"ProjectCode\" ,caption: \"Project Code\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Discipline\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Structure\" ,caption: \"Structure / Package\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"DocumentNo\" ,caption: \"Document No\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"DocumentTitle\" ,caption: \"Document Title\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"DrawingSize\" ,caption: \"Drawing Size\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Stage\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"RevisionNo\",caption: \"Revision No\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"DocumentStatus\" ,caption: \"Document Status\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Scheduled\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Submitted\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Approved\", \r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"TransmittalNo\",caption: \"Transmittal No\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"TransmittalDate\" ,caption: \"Transmittal Date\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"EngineeringManHours\" ,caption: \"Engineering Man Hours\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"DraftingManHours\" ,caption: \"Drafting Man Hours\"\r\n\t\t\t\t}, {\r\n\t\t\t\t\tuniqueName: \"Timesheet\"\r\n\t\t\t\t}]\r\n\t\t\t},\r\n\r\n\t\t\toptions: {\r\n\t\t\t\tgrid: {\r\n\t\t\t\t\ttitle: \"Flex Report - DCI\",\r\n\t\t\t\t\ttype: \"flat\",\r\n\t\t\t\t\tshowGrandTotals: \"off\",\r\n\t\t\t\t\t// \"grandTotalsPosition\": \"bottom\",\r\n\t\t\t\t\t// \"showHierarchies\": true,\r\n\t\t\t\t\t// \"showHierarchyCaptions\": true,\r\n\t\t\t\t\t// \"showReportFiltersArea\": true,\r\n\t\t\t\t\t// \"pagesFilterLayout\": \"horizontal\",\t\t\t\t\t\r\n\t\t\t\t\t//  \"showTotals\": \"off\",\r\n\t\t\t\t},\r\n\t\t\t\tconfiguratorActive: false\r\n\t\t\t},\r\n\t\t\tlocalization: {\r\n\t\t\t\tgrid: {\r\n\t\t\t\t \tblankMember: \"\"\r\n\t\t\t\t}\r\n\t\t \t},\r\n\t\t\twidth: \"96%\",\r\n\t\t\theight: '95%',\r\n\t\t\tcustomizeCell: this.customizeCellFunction,\r\n\r\n\t\t\tformats: [{\r\n\t\t\t\t// thousandsSeparator: \",\",\r\n\t\t\t\t// decimalSeparator: \".\",\r\n\t\t\t\t// decimalPlaces: 2,\r\n\t\t\t\t// currencySymbol: \"$\",\r\n\t\t\t\t// currencySymbolAlign: \"left\",\r\n\t\t\t\tname: \"\",\r\n\t\t\t\tnullValue: \" \",\r\n\t\t\t\ttextAlign: \"left\"\r\n\t\t\t\t\r\n\t\t\t}]\r\n\r\n\t\t\t\r\n\t\t};\r\n\r\n\t\r\n\r\n\t}\r\n\r\n\t customizeCellFunction(cell: { addClass: (arg0: string) => void; }, data: { isClassicTotalRow: any; }) {\t\r\n\t\tif (data.isClassicTotalRow) \r\n\t\t\tcell.addClass(\"fm-total-classic-r\");\r\n\t }\r\n\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n ","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { EIPDatePickerComponent } from 'eipdate-picker';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DashboardService } from 'src/app/Service/dashboard/dashboard.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { PendingDrawingStatus } from 'src/app/ViewModel/Tender-Quantity.Model';\r\n\r\n@Component({\r\n selector: 'app-pending-drawing-status',\r\n templateUrl: './pending-drawing-status.component.html',\r\n styleUrls: ['./pending-drawing-status.component.css']\r\n})\r\nexport class PendingDrawingStatusComponent implements OnInit {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public isCLient!: boolean;\r\n public obj: any;\r\n public enableFilter = false;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public pendingDrawingStatus: PendingDrawingStatus[] = [];\r\n DCI_Type!: FormGroup;\r\n numElements: Map = new Map();\r\n\r\n @ViewChild('todatePicker') dateRange!: EIPDatePickerComponent;\r\n ShowSearch: boolean = false;\r\n\r\n constructor(private _projInfoService: ProjectInfoService, private _formBuilder: FormBuilder,\r\n private _commonService: CommonService, private dialog: MatDialog, private dashboardService: DashboardService\r\n ) { }\r\n\r\n viewData(data: any) {\r\n this.finalView(data);\r\n }\r\n ngOnInit() {\r\n this.obj = \"pending_drawing_status\";\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.callMemberRoleandFeature();\r\n\r\n this.finalView({\r\n \"project_Id\": this.projectId,\r\n \"group_Id\": this.groupId,\r\n \"from_Date\": null,\r\n \"to_Date\": null,\r\n \"stages\": null,\r\n \"schedule_Type\": null,\r\n \"drg_Type\": null,\r\n \"disc_Id\": null,\r\n \"struct_Id\": null,\r\n \"Dynamic_Id\": []\r\n });\r\n\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.pendingDrawingStatus\r\n };\r\n return result;\r\n }\r\n\r\n\r\n toggleShowSearch() {\r\n this.ShowSearch = !this.ShowSearch;\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n this._commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n result = result.filter(data => data.role_Desc != 'Client');\r\n if (result.length > 0) {\r\n this.isCLient = false;\r\n }\r\n else {\r\n this.isCLient = true;\r\n }\r\n });\r\n }\r\n\r\n finalView(obj?: any) {\r\n this.dashboardService.GetPendingDrawingStatus(obj).subscribe(data => {\r\n this.pendingDrawingStatus = data;\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Search Filter\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex + 1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.scheduled_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.statusdesc}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n@Component({\r\n selector: 'app-documentwise-productivity',\r\n templateUrl: './documentwise-productivity.component.html',\r\n styleUrls: ['./documentwise-productivity.component.css']\r\n})\r\nexport class DocumentwiseProductivityComponent implements OnInit {\r\n projectId!: number;\r\n groupId!: number;\r\n userId!: number;\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n\r\n\r\n constructor(private commonService: CommonService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.userId = this.commonService.getLoggedInUserId();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"ProjectId\": this.projectId,\r\n \"GroupId\": this.groupId\r\n };\r\n }\r\n\r\n onValueChange(val: { value: string; }) { \r\n if (val.value == 'Document') {\r\n this.parameters = {\r\n \"ProjectId\": this.projectId,\r\n \"GroupId\": this.groupId\r\n };\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DocumentwiseProductivityReport\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DocumentwiseProductivityReport\";\r\n }\r\n if (val.value == 'Discipline') {\r\n this.parameters = {\r\n \"ProjectId\": this.projectId,\r\n \"GroupId\": this.groupId\r\n };\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DisciplinewiseProductivityReport\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DisciplinewiseProductivityReport\";\r\n }\r\n if (val.value == 'Member') {\r\n this.parameters = {\r\n \"ProjectId\": this.projectId,\r\n \"GroupId\": this.groupId,\r\n \"MemberId\" : this.userId\r\n };\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/MemberwiseProductivityReport\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/MemberwiseProductivityReport\";\r\n }\r\n if (val.value) {\r\n this.EmbedSSRSReport();\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n Select Report\r\n \r\n Document Wise Productivity\r\n Discipline Wise Productivity\r\n Member Wise Productivity \r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\n\r\n@Component({\r\n selector: 'app-productivity-report',\r\n templateUrl: './productivity-report.component.html',\r\n styleUrls: ['./productivity-report.component.css']\r\n})\r\nexport class ProductivityReportComponent implements OnInit {\r\n projectId!: number;\r\n groupId!: number;\r\n memberId: number = 0;\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n projectList: ProjectViewModel[] = [];\r\n searchMemberList: any[] = [];\r\n public selectedProject: number = -2;\r\n public selectedMember: number = -2;\r\n\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlProject: new FormControl(),\r\n ctrlMember: new FormControl()\r\n });\r\n\r\n constructor(\r\n private commonService: CommonService,\r\n private projectInfoService: ProjectInfoService,\r\n private notificationService: NotificationService,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n private loaderService: LoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.loaderService.isLoading.next(true);\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getProjectList();\r\n this.getMemberList();\r\n this.loaderService.isLoading.next(false);\r\n }\r\n\r\n async getProjectList() {\r\n await this.projectInfoService.getProjectList(this.memberId).subscribe((data: ProjectViewModel[]) => {\r\n this.projectList = data;\r\n for (let i = 0; i < this.projectList.length; i++) {\r\n this.projectList[i]['projCodeDesc'] = this.projectList[i].projectCode + ' - ' + this.projectList[i].projectDescription;\r\n }\r\n });\r\n }\r\n\r\n async getMemberList() {\r\n this.searchMemberList = await this.projectMemberLinkService.getSelectedMemberList(this.projectId, this.groupId).toPromise();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n this.showParameters = \"false\";\r\n }\r\n\r\n public setSelectedProject(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n this.selectedProject = event.value;\r\n\r\n this.reportUrl = '';\r\n this.parameters = null;\r\n this.EmbedSSRSReport();\r\n this.loaderService.isLoading.next(false);\r\n }\r\n\r\n public setSelectedMember(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n this.selectedMember = event.value;\r\n\r\n this.reportUrl = '';\r\n this.parameters = null;\r\n this.EmbedSSRSReport();\r\n this.loaderService.isLoading.next(false);\r\n }\r\n\r\n public getReport() {\r\n this.loaderService.isLoading.next(true);\r\n this.reportUrl = '';\r\n\r\n if (this.selectedProject != -2 && this.selectedMember == -2) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ProjectProductivitySummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ProjectProductivitySummary\";\r\n this.parameters = {\r\n \"Project_Id\": this.selectedProject\r\n };\r\n }\r\n else if (this.selectedProject == -2 && this.selectedMember != -2) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/MemberProductivitySummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/MemberProductivitySummary\";\r\n\r\n this.parameters = {\r\n \"Member_Id\": this.selectedMember\r\n };\r\n }\r\n else if (this.selectedProject != -2 && this.selectedMember != -2) {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ProjectProductivitySummary\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/ProjectProductivitySummary\";\r\n this.parameters = {\r\n \"Project_Id\": this.selectedProject,\r\n \"Member_Id\": this.selectedMember\r\n };\r\n }\r\n\r\n this.EmbedSSRSReport();\r\n this.loaderService.isLoading.next(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport {IDashboardProjOutputModel, IProjDocDashboardOutputModel, IJobMHInputModel, IJobMHOutputModel } from 'src/app/ViewModel/DashboardModel';\r\nimport { DashboardService } from 'src/app/Service/dashboard/dashboard.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { forkJoin, Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-project-dashboard',\r\n templateUrl: './project-dashboard.component.html',\r\n styleUrls: ['./project-dashboard.component.css']\r\n})\r\n\r\nexport class ProjectDashboardComponent implements OnInit {\r\n dashboardDetails!: IDashboardProjOutputModel;\r\n totalDays: number = 0;\r\n completedDays: number = 0;\r\n remainingDays: number = 0;\r\n overDueDays: number = 0;\r\n plannedDocuments: number = 0;\r\n completedDocuments: number = 0;\r\n balanceDocuments: number = 0;\r\n plannedManHours: number = 0;\r\n actualManHours: number = 0;\r\n balanceManHours: number = 0;\r\n projectId!: number ;\r\n memberId!: number ;\r\n projectCode!: string ;\r\n center:any=\"center\"\r\n projectDetails: IProjDocDashboardOutputModel[] =[];\r\n projectScheduleDetails: IProjDocDashboardOutputModel[] = [];\r\n projectDocScheduleMHDetails: IProjDocDashboardOutputModel[] = [];\r\n projectDocScheduleMHDetails1: IProjDocDashboardOutputModel[] = [];\r\n scheduleCount: number = 0;\r\n scheduleMHCount: number = 0;\r\n public data: any[] = [];\r\n\r\n public dynamicHeight = true;\r\n constructor(private _dashboardService: DashboardService, private _commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.projectCode = this._commonService.getProjectCode();\r\n this.loadDashboardDocDetails();\r\n \r\n \r\n }\r\n\r\n loadJobManhourDetails(){\r\n let projInput: IJobMHInputModel = {\r\n project_Code : this.projectCode\r\n }\r\n\r\n this._dashboardService.GetJobWiseMHDetails(projInput).subscribe((res: IJobMHOutputModel[]) => {\r\n this.projectDocScheduleMHDetails1 = this.projectDocScheduleMHDetails;\r\n this.actualManHours = !!res[0].actual_Manhour ? res[0].actual_Manhour : 0;\r\n this.balanceManHours = this.plannedManHours - this.actualManHours;\r\n let index = this.projectDocScheduleMHDetails1.findIndex(x => x.status == \"Completed ManHours\");\r\n this.projectDocScheduleMHDetails1[index].doc_Count = res[0].actual_Manhour;\r\n this.projectDocScheduleMHDetails1[index].doc_Percentage = ((res[0].actual_Manhour * 100) / this.plannedManHours).toFixed(2);\r\n let index1 = this.projectDocScheduleMHDetails1.findIndex(x => x.status == \"Remaining ManHours\");\r\n this.projectDocScheduleMHDetails1[index1].doc_Count = this.balanceManHours;\r\n this.projectDocScheduleMHDetails1[index1].doc_Percentage = ((this.balanceManHours * 100) / this.plannedManHours).toFixed(2);\r\n });\r\n \r\n }\r\n\r\n\r\n loadDashboardDetails(res: IDashboardProjOutputModel) {\r\n this.dashboardDetails = res;\r\n this.totalDays = res.totalDays;\r\n this.completedDays = res.completedDays;\r\n this.remainingDays = Math.sign(res.remainingDays) == 1 ? res.remainingDays : 0;\r\n this.overDueDays = Math.sign(res.remainingDays) == -1 ? res.remainingDays : 0;\r\n this.plannedDocuments = res.plannedDocuments;\r\n this.completedDocuments = res.completedDocuments;\r\n this.balanceDocuments = res.balanceDocuments;\r\n this.plannedManHours = res.plannedManHours;\r\n this.actualManHours = res.actualManHours;\r\n this.balanceManHours = res.balanceManHours;\r\n }\r\n\r\n loadDashboardDocDetails() {\r\n let dashboardDetails: Observable = this._dashboardService.GetProjDashboardDetails({ project_Id: this.projectId });\r\n let projectDetails: Observable = this._dashboardService.GetProjDashboardDocDetails({ project_Id: this.projectId, trans_Type: 'Project' });\r\n let scheduleDocDetails: Observable = this._dashboardService.GetProjDashboardDocDetails({ project_Id: this.projectId, trans_Type: 'Schedule' });\r\n let scheduleMHDetails: Observable = this._dashboardService.GetProjDashboardDocDetails({ project_Id: this.projectId, trans_Type: 'ManHours' });\r\n\r\n\r\n forkJoin(dashboardDetails, projectDetails, scheduleDocDetails, scheduleMHDetails).subscribe((res: any[]) => {\r\n this.loadDashboardDetails(res[0]);\r\n this.projectDetails = res[1];\r\n this.projectScheduleDetails = res[2];\r\n this.projectDocScheduleMHDetails = res[3];\r\n \r\n this.scheduleCount = this.projectScheduleDetails.filter(x=> x.doc_Count > 0).length;\r\n this.scheduleMHCount = this.projectDocScheduleMHDetails.filter(x=> x.doc_Count > 0).length;\r\n this.loadJobManhourDetails();\r\n }\r\n );\r\n \r\n \r\n }\r\n\r\n\r\n public labelContent(e: any): string {\r\n return e.category;\r\n }\r\n\r\n}","\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Project Schedule
\r\n

{{totalDays}} Days

\r\n

Completed Days{{completedDays}}

\r\n

Remaining Days{{remainingDays}}

\r\n

Overdue Days{{overDueDays}}

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Schedule Documents
\r\n

{{plannedDocuments}}

\r\n

Completed Documents{{completedDocuments}}

\r\n

Remaining Documents{{balanceDocuments}}

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Schedule Document Man Hours
\r\n

{{plannedManHours}}

\r\n

Actual Man Hours{{actualManHours}}

\r\n

Remaining Man Hours{{balanceManHours}}

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

Project Schedule

\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Percentage }} %\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Schedule Documents

\r\n\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Percentage }} %\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n

Schedule Document Man Hours

\r\n
\r\n\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ category }} - {{ dataItem.doc_Percentage }} %\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\n@Component({\r\n selector: 'app-project-progress-dashboard',\r\n templateUrl: './project-progress-dashboard.component.html',\r\n styleUrls: ['./project-progress-dashboard.component.css']\r\n})\r\nexport class ProjectProgressDashboardComponent implements OnInit {\r\n projectId!: number;\r\n groupId!: number;\r\n memberId!: number;\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n selectedTabIndex = 0;\r\n\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlDiscipline: new FormControl(),\r\n ctrlStructure: new FormControl()\r\n });\r\n discList: any[] = [];\r\n structureList: any[] = [];\r\n public selectedDiscipline!: number;\r\n public selectedStructure!: number;\r\n\r\n constructor(private commonService: CommonService,\r\n private projService: ProjectInfoService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n // this.getElementDetails(\"Discipline\");\r\n // this.getElementDetails(\"Structure\");\r\n this.EmbedSSRSReport();\r\n }\r\n \r\n public getElementDetails(elementName: string) {\r\n this.projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Discipline\":\r\n this.discList = res;\r\n break;\r\n case \"Structure\":\r\n this.structureList = res;\r\n break;\r\n }\r\n }, err => { });\r\n}\r\n\r\n public EmbedSSRSReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/NewDashboard\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/NewDashboard\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.projectId\r\n };\r\n }\r\n\r\n public setSelectedDiscipline(event: any) {\r\n this.selectedDiscipline = event.value;\r\n }\r\n\r\n public setSelectedStructure(event: any) {\r\n this.selectedStructure = event.value;\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n","import { DatePipe, formatDate } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as moment from 'moment';\r\nimport { ElementdetailsService } from 'src/app/Service/elementdetails/elementdetails.service';\r\nimport { IElementDetailsViewModel, IElementDetailsDynamicOutputModel, IElementDetailsDynamicInputModel } from 'src/app/ViewModel/ElementDetailsModel';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\n@Component({\r\n selector: 'app-stage-wise-dashboard',\r\n templateUrl: './stage-wise-dashboard.component.html',\r\n styleUrls: ['./stage-wise-dashboard.component.css']\r\n})\r\nexport class StageWiseDashboardComponent implements OnInit {\r\n projectId!: number;\r\n groupId!: number;\r\n public structurelist: any[] = [];\r\n public reportServer!: string | null;\r\n public reportUrl!: string | null;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n\r\n DCI_Type!: FormGroup;\r\n CCNType!: FormGroup;\r\n DocType!: FormGroup;\r\n\r\n public projectCode!: string;\r\n public tranType!: string;\r\n public isStatic!: string;\r\n public start = new Date();\r\n public end = new Date();\r\n public startdate!: string;\r\n public enddate!: string;\r\n public structureId!: string | null;\r\n public ccnTypeList!: IElementDetailsDynamicOutputModel[];\r\n public docTypeList!: IElementDetailsDynamicOutputModel[];\r\n public scheduleTypeList!: IElementDetailsDynamicOutputModel[];\r\n public SelectedccnTypeList: string[] = [];\r\n public SelecteddocTypeList: string[] = ['1286'];\r\n public SelectedscheduleTypeList: string[] = [];\r\n memberId: number = 0;\r\n public projectdetails!: ProjectViewModel;\r\n public selectedDocTypes: string[] = ['DWG'];\r\n\r\n constructor(\r\n private commonService: CommonService,\r\n private projInfoService: ProjectInfoService,\r\n private formBuilder: FormBuilder,\r\n public datepipe: DatePipe,\r\n private elementdetailsService: ElementdetailsService,\r\n private _projService: ProjectInfoService,\r\n private loaderService: LoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectCode = this.commonService.getProjectCode();\r\n var date = new Date();\r\n this.start = new Date(date.getFullYear(), date.getMonth(), 1);\r\n this.end = new Date();\r\n this.projectdetails = this.commonService.getCurrentProjectDetails();\r\n if (this.projectdetails.startDate)\r\n this.start = new Date(this.projectdetails.startDate);\r\n this.getStructureList();\r\n this.bindScheduleTypes();\r\n this.bindDOCType();\r\n this.bindCCNType();\r\n this.DCI_Type = this.formBuilder.group({\r\n dci_dwg: new FormControl(true),\r\n ext_dci: new FormControl(true),\r\n std_drawing: new FormControl(true),\r\n ven_dwg: new FormControl(true),\r\n });\r\n this.CCNType = this.formBuilder.group({\r\n external: new FormControl(true),\r\n internal: new FormControl(true),\r\n fcn: new FormControl(true),\r\n });\r\n this.DocType = this.formBuilder.group({\r\n doc: new FormControl(true),\r\n dwg: new FormControl(false),\r\n });\r\n this.tranType = \"count\";\r\n this.isStatic = \"0\";\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Tran_Type\": this.tranType,\r\n \"Project_Id\": this.projectId,\r\n \"Project_Code\": this.projectCode,\r\n \"Group_Id\": this.groupId,\r\n \"IsStatic\": this.isStatic,\r\n \"CCN_Type\": this.SelectedccnTypeList && this.SelectedccnTypeList.length > 0 ? this.SelectedccnTypeList.map(x => x).join(\",\") : null,\r\n \"Schedule_Type\": this.SelectedscheduleTypeList && this.SelectedscheduleTypeList.length > 0 ? this.SelectedscheduleTypeList.map(x => x).join(\",\") : null,\r\n \"Doc_Drawing\": this.SelecteddocTypeList && this.SelecteddocTypeList.length > 0 ? this.SelecteddocTypeList.map(x => x).join(\",\") : null,\r\n \"Doc_buliding\": this.structureId,\r\n \"From_Date\": this.startdate,\r\n \"To_Date\": this.enddate,\r\n }\r\n this.loaderService.isLoading.next(false);\r\n }\r\n\r\n async getStructureList() {\r\n let x: IElementDetailsDynamicInputModel = {\r\n de_Description: 'Structure / Package',\r\n isProjectSpecific: true,\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: 2\r\n };\r\n await this.elementdetailsService.GetElementDetailsDynamic(x).toPromise().then(res => {\r\n if (res && res.length > 0) {\r\n res = res.map(l => {\r\n let obj: IElementDetailsDynamicOutputModel = {\r\n dE_Id: l.dE_Id,\r\n dE_Description: l.dE_Description,\r\n deD_Id: l.deD_Id,\r\n deD_Short_Description: l.deD_Short_Description,\r\n deD_Description: (l.deD_Short_Description ? l.deD_Short_Description.concat(' - ', (l.deD_Description ? l.deD_Description : \"\")) : \"\"),\r\n deD_CODE: l.deD_CODE,\r\n sort_By: l.sort_By,\r\n project_Id: l.project_Id,\r\n group_Id: l.group_Id,\r\n module_Id: l.module_Id,\r\n is_Active: l.is_Active\r\n }\r\n return obj;\r\n })\r\n this.structurelist = res;\r\n }\r\n });\r\n }\r\n\r\n async bindScheduleTypes() {\r\n let x: IElementDetailsDynamicInputModel = {\r\n de_Description: 'Schedule Type',\r\n };\r\n\r\n await this.elementdetailsService.GetElementDetailsDynamic(x).toPromise().then(res => {\r\n if (res && res.length > 0) {\r\n this.scheduleTypeList = res;\r\n res.forEach(s => {\r\n if (this.SelectedscheduleTypeList && s.deD_CODE)\r\n this.SelectedscheduleTypeList.push(s.deD_CODE.toString());\r\n else\r\n this.SelectedscheduleTypeList = [];\r\n })\r\n }\r\n });\r\n }\r\n\r\n async bindDOCType() {\r\n let x: IElementDetailsDynamicInputModel = {\r\n de_Description: 'DWG / DOC',\r\n isProjectSpecific: true,\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: 2\r\n };\r\n await this.elementdetailsService.GetElementDetailsDynamic(x).toPromise().then(res => {\r\n if (res && res.length > 0) {\r\n this.docTypeList = res;\r\n }\r\n });\r\n }\r\n\r\n async bindCCNType() {\r\n let x: IElementDetailsDynamicInputModel = {\r\n de_Description: 'CCN Type',\r\n };\r\n await this.elementdetailsService.GetElementDetailsDynamic(x).toPromise().then(res => {\r\n if (res && res.length > 0) {\r\n this.ccnTypeList = res;\r\n }\r\n });\r\n }\r\n\r\n selectedSturcture(value: any) {\r\n if (value.value > 0) {\r\n this.structureId = value.additionalValues.additionalValues.deD_Id.toString();\r\n } else {\r\n this.structureId = null;\r\n }\r\n }\r\n\r\n onDocTypeChange(event: any, EleDetail: IElementDetailsViewModel) {\r\n debugger\r\n if (event.checked && EleDetail.deD_Id)\r\n this.SelecteddocTypeList.push(EleDetail.deD_Id.toString())\r\n else\r\n this.SelecteddocTypeList.forEach((value, index) => {\r\n if (EleDetail.deD_Id && value == EleDetail.deD_Id.toString()) this.SelecteddocTypeList.splice(index, 1);\r\n });\r\n }\r\n\r\n onCCNTypeChange(event: any, EleDetail: IElementDetailsViewModel) {\r\n if (event.checked && EleDetail.deD_Id)\r\n this.SelectedccnTypeList.push(EleDetail.deD_Id.toString())\r\n else\r\n this.SelectedccnTypeList.forEach((value, index) => {\r\n if (EleDetail.deD_Id && value == EleDetail.deD_Id.toString()) this.SelectedccnTypeList.splice(index, 1);\r\n });\r\n }\r\n\r\n onScheduleTypeChange(event: any, EleDetail: IElementDetailsViewModel) {\r\n if (event.checked && EleDetail.deD_CODE)\r\n this.SelectedscheduleTypeList.push(EleDetail.deD_CODE.toString())\r\n else\r\n this.SelectedscheduleTypeList.forEach((value, index) => {\r\n if (EleDetail.deD_CODE && value == EleDetail.deD_CODE.toString()) this.SelectedscheduleTypeList.splice(index, 1);\r\n });\r\n }\r\n\r\n tranTypeChange(value: string) {\r\n this.tranType = value;\r\n }\r\n isStaticChange(value: string) {\r\n this.isStatic = value;\r\n }\r\n\r\n getStartDateValue(selectedText: Date) {\r\n this.start = selectedText;\r\n }\r\n\r\n getEndDateValue(selectedText: Date) {\r\n this.end = selectedText;\r\n }\r\n clearReport() {\r\n this.reportUrl = null;\r\n this.reportServer = null;\r\n }\r\n\r\n viewReport() {\r\n this.loaderService.isLoading.next(true);\r\n this.clearReport();\r\n\r\n this.startdate = formatDate(this.start, \"MM/dd/yyyy HH:mm:ss\", 'en-US');\r\n this.enddate = formatDate(this.end, \"MM/dd/yyyy HH:mm:ss\", 'en-US');\r\n\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DrawingProjectProgressDashboard\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/DrawingProjectProgressDashboard\";\r\n\r\n this.EmbedSSRSReport();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
0\">\r\n
\r\n

Schedule Type :

\r\n
\r\n {{item.deD_Short_Description}}\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n

DWG / DOC :

\r\n
\r\n \r\n {{ item.deD_Short_Description }}\r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n

CCN Type :

\r\n
\r\n {{item.deD_Short_Description}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n No of Drawings\r\n A1 Equivalent\r\n \r\n
\r\n
\r\n \r\n Dynamic\r\n Static\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-qpap-consolidation-report',\r\n templateUrl: './qpap-consolidation-report.component.html',\r\n styleUrls: ['./qpap-consolidation-report.component.css']\r\n})\r\nexport class QpapConsolidationReportComponent implements OnInit {\r\n\r\n public reportServer!: string;\r\n public reportUrl!: string;\r\n public showParameters!: string;\r\n public parameters: any;\r\n public language!: string;\r\n public height!: number;\r\n public width!: number;\r\n public toolbar!: string;\r\n public date!: Date;\r\n projectId: number|null = null;\r\n\r\n constructor(private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.EmbedSSRSReport();\r\n }\r\n\r\n public EmbedSSRSReport() {\r\n this.reportServer = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/QPAPConsolidation\";\r\n this.reportUrl = environment.reportHost + \"EIP40Reports/EIP4EDMS/EDMS/QPAPConsolidation\";\r\n this.showParameters = \"false\";\r\n this.parameters = {\r\n \"Project_Id\": this.commonService.getProjectId(),\r\n \"Trans_Type\": \"Count\",\r\n \"Project_Code\": this.commonService.getProjectCode(),\r\n \"Doc_Drawing\": null\r\n };\r\n this.language = \"en-us\";\r\n this.width = 1000;\r\n this.height = 620;\r\n this.toolbar = \"true\";\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { MessageSentCountComponent } from './CommunicationReports/message-sent-count/message-sent-count.component';\r\nimport { MessageStatusSummaryComponent } from './CommunicationReports/message-status-summary/message-status-summary.component';\r\nimport { DocumentCountComponent } from './DocumentRepositoryReport/document-count/document-count.component';\r\nimport { DocumentSummaryReportComponent } from './DocumentRepositoryReport/document-summary-report.component';\r\nimport { FlexReportComponent } from './flex-report/flex-report.component';\r\nimport { ScheduleDocumentReportsComponent } from './ScheduleDocumentReports/schedule-document-reports/schedule-document-reports.component';\r\nimport { ProductivityReportComponent } from './productivity-report/productivity-report/productivity-report.component';\r\nimport { ProjectDashboardComponent } from './project-dashboard/project-dashboard.component';\r\nimport { ErmReportsComponent } from './ScheduleDocumentReports/erm-reports/erm-reports.component';\r\nimport { ProjectProgressDashboardComponent } from './project-dashboard/project-progress-dashboard/project-progress-dashboard.component';\r\nimport { DrawingDashboardComponent } from './drawing-dashboard/drawing-dashboard.component';\r\nimport { StageWiseDashboardComponent } from './project-dashboard/stage-wise-dashboard/stage-wise-dashboard.component';\r\nimport { DocumentwiseProductivityComponent } from './productivity-report/documentwise-productivity/documentwise-productivity.component';\r\nimport { FinalDrawingComponent } from './final-drawing/final-drawing.component';\r\nimport { FlexManhourComponent } from './flex-report/flex-manhour/flex-manhour.component';\r\nimport { PendingDrawingStatusComponent } from './pending-drawing-status/pending-drawing-status.component';\r\nimport { QpapConsolidationReportComponent } from './qpap-consolidation-report/qpap-consolidation-report.component';\r\nimport { SCurveComponent } from './s-curve/s-curve.component';\r\nimport { CommunicationProtocolComponent } from './Communication-Protocol/Communication-Protocol.component';\r\nimport { DrawingsAdherenceComponent } from './Drawings_Schedule_Adherence_report/Drawings_Adherence_report.component';\r\nimport { DCIStatusSummaryReportComponent } from './dci-status-summary-report/dci-status-summary-report.component';\r\nimport { CCNSummaryReportComponent } from './ccn-summary-report/ccn-summary-report.component';\r\n\r\nexport const ReportRoutes: Routes = [\r\n {\r\n path: 'scurve',\r\n component: SCurveComponent,\r\n data: { title: 'Schedule Document S-Curve Chart', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'flex',\r\n component: FlexReportComponent,\r\n data: { title: 'Flex Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'documentsummary',\r\n component: DocumentSummaryReportComponent,\r\n data: { title: 'Document Summary Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'documentcount',\r\n component: DocumentCountComponent,\r\n data: { title: 'Document Count Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'messagestatussummary',\r\n component: MessageStatusSummaryComponent,\r\n data: { title: 'Message Status Summary Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'messagesentcount',\r\n component: MessageSentCountComponent,\r\n data: { title: 'Message Count Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'scheduledocument',\r\n component: ScheduleDocumentReportsComponent,\r\n data: { title: 'Schedule Document Reports', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'productivity',\r\n component: ProductivityReportComponent,\r\n data: { title: 'Productivity Reports', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'projectdashboard',\r\n component: ProjectDashboardComponent,\r\n data: { title: 'Project Dashboard', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'projectprogressdashboard',\r\n component: ProjectProgressDashboardComponent,\r\n data: { title: 'Project Progress Dashboard', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'stagewisedashboard',\r\n component: StageWiseDashboardComponent,\r\n data: { title: 'Stage Wise Dashboard', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'drawingdashboard',\r\n component: DrawingDashboardComponent,\r\n data: { title: 'Drawing Dashboard', isProjectCodeRequired: false }\r\n },\r\n {\r\n path: 'erm',\r\n component: ErmReportsComponent,\r\n data: { title: 'ERM Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'documentwiseproductivity',\r\n component: DocumentwiseProductivityComponent,\r\n data: { title: 'Documentwise Productivity', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'finalDrawing',\r\n component: FinalDrawingComponent,\r\n data: { title: 'Final drawing', isProjectCodeRequired: true }\r\n },\r\n\r\n {\r\n path: 'flexmanhour',\r\n component: FlexManhourComponent,\r\n data: { title: 'Flex Man Hours Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'pendingdrawingstatus',\r\n component: PendingDrawingStatusComponent,\r\n data: { title: 'Pending drawing Status', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'qpapconsolidation',\r\n component: QpapConsolidationReportComponent,\r\n data: { title: 'QPAP Consolidation Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'CommunicationProtocol',\r\n component: CommunicationProtocolComponent,\r\n data: { title: 'Communication Protocol', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'dcistatussummary',\r\n component: DCIStatusSummaryReportComponent,\r\n data: { title: 'DCI Status Summary Report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'DrawingsAdherenceReport',\r\n component: DrawingsAdherenceComponent,\r\n data: { title: 'Drawings Schedule Adherence report', isProjectCodeRequired: true }\r\n },\r\n {\r\n path: 'CCNSummaryReport',\r\n component: CCNSummaryReportComponent,\r\n data: { title: 'CCN Summary Report', isProjectCodeRequired: true }\r\n }\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(ReportRoutes)],\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren, Inject } from '@angular/core';\r\nimport { ProjectMasterService } from 'src/app/Service/projectmaster/projectmaster.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ReportService } from 'src/app/Service/Report/Report.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ChartComponent, LegendTitle, LegendLabelsContentArgs, SeriesLabels } from \"@progress/kendo-angular-charts\";\r\nimport { ISCurveOutputModel, ISCurveStatusCompletionPercentage } from 'src/app/ViewModel/Report.Model';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { IProjectElementsOutput, IProjectElementDetailsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { FieldConfig } from \"src/app/CommonComponents/dynamic-form/interface/field.interface\";\r\nimport { BehaviorSubject, forkJoin, Observable } from \"rxjs\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { DynamicFormComponent } from \"src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { formatDate } from '@angular/common';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-s-curve',\r\n templateUrl: './s-curve.component.html',\r\n styleUrls: ['./s-curve.component.css']\r\n})\r\nexport class SCurveComponent implements OnInit {\r\n selectedOption: string = 'count';\r\n projectId!: number;\r\n memberId!: number;\r\n groupId!: number;\r\n //SCurveDetails: any[] = [];\r\n category: string[] = [];\r\n sCurveDetails: ISCurveOutputModel[] = [];\r\n panelOpenState = false;\r\n showFilterPanel = false;\r\n StatusCompletionPercentageDetails: ISCurveStatusCompletionPercentage[] = []\r\n projectElements: IProjectElementsOutput[] = [];\r\n elementsConfig: FieldConfig[] = [];\r\n numElements: Map = new Map();\r\n ProjectDetails: ProjectViewModel;\r\n projectStartDate: Date;\r\n projectEndDate: Date;\r\n TotalValue: string;\r\n ToDate: string;\r\n\r\n @ViewChild(\"docSetForm\") dynamicForm: DynamicFormComponent;\r\n\r\n public seriesLabels: SeriesLabels = {\r\n visible: true, // Note that visible defaults to false\r\n padding: 1,\r\n font: \"bold 12px Arial, sans-serif\",\r\n position: \"top\",\r\n };\r\n Colors: string[] = [\"#5DADE2\", \"#F7DC6F\", \"#F1948A\"];\r\n\r\n constructor(private _projectService: ProjectMasterService, private _projInfoService: ProjectInfoService,\r\n private _commonService: CommonService, private _notificationService: NotificationService,\r\n private ReportService: ReportService, private loaderService: LoaderService,) { }\r\n\r\n async ngOnInit() {\r\n this.projectId = this._commonService.getProjectId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n\r\n this.ProjectDetails = this._commonService.getCurrentProjectDetails();\r\n if (this.ProjectDetails) {\r\n this.projectStartDate = new Date(this.ProjectDetails.startDate);\r\n this.projectEndDate = new Date(this.ProjectDetails.endDate);\r\n this.ToDate = this.ProjectDetails.endDate;\r\n }\r\n\r\n await this.getDynamicForm().then((res) => this.changeButtonToggle({ source: null, value: 'count' }));\r\n }\r\n\r\n changeButtonToggle(event: any) {\r\n this.selectedOption = event.value;\r\n this.LoadSCurve();\r\n }\r\n\r\n /**\r\n * Is Weightage Chart\r\n */\r\n get isWeightage(): boolean {\r\n return this.selectedOption === 'weightage';\r\n };\r\n\r\n collapseAllClick() {\r\n this.panelOpenState = !this.panelOpenState;\r\n\r\n if (this.panelOpenState) {\r\n this.showFilterPanel = false\r\n this.LoadStatusCompletionPercentage();\r\n }\r\n }\r\n\r\n toggleFilter() {\r\n this.showFilterPanel = !this.showFilterPanel;\r\n if (!this.showFilterPanel) {\r\n this.getDynamicForm();\r\n this.LoadSCurve();\r\n this.ToDate = null;\r\n }\r\n }\r\n\r\n async LoadSCurve() {\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n let SCurveInput: any = {\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n chart_Value: this.selectedOption,\r\n filterElementDetails: res,\r\n ToDate: this.ToDate\r\n }\r\n\r\n this.ReportService.GetSCurveDetails(SCurveInput).subscribe((res: any) => {\r\n if (res) {\r\n this.sCurveDetails = res;\r\n this.category = res[0].yAxizCategories;\r\n this.TotalValue = res[0].totalValue;\r\n }\r\n });\r\n })\r\n }\r\n\r\n async LoadSearchDetails(): Promise {\r\n let resForm: FormGroup | undefined | null = this.dynamicForm.form;\r\n\r\n let FilterDetails: any[] = [];\r\n if (this.showFilterPanel) {\r\n this.projectElements.map(async x => {\r\n let result: any;\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n result = {\r\n dE_Id: x.elementId,\r\n dED_Id: selectedValue.dedId\r\n }\r\n FilterDetails.push(result);\r\n })\r\n }\r\n return FilterDetails;\r\n }\r\n\r\n\r\n getSelectedDate(selectedDate: any) {\r\n this.ToDate = selectedDate.value;\r\n }\r\n\r\n LoadStatusCompletionPercentage() {\r\n let StatusWiseCompletionPercentageInput: any = {\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n tran_Type: 'GET_STATUS_WEIGHTAGE'\r\n }\r\n this.ReportService.GetStatusWiseCompletionPercentage(StatusWiseCompletionPercentageInput).subscribe((res: any) => {\r\n if (res) {\r\n this.StatusCompletionPercentageDetails = res;\r\n }\r\n });\r\n }\r\n\r\n UpdateStatusCompletionPercentage() {\r\n let CompletionPercentageInput = this.StatusCompletionPercentageDetails.reduce((a, b) => +a + +(b.completion_Percentage ? b.completion_Percentage : 0), 0);\r\n if (CompletionPercentageInput != 100) {\r\n this._notificationService.showToast(\"Sum of Completion Percentage should be equal to 100 !!!\", \"Warning\");\r\n return\r\n }\r\n var seen = {};\r\n var hasDuplicates = this.StatusCompletionPercentageDetails.some(function (currentObject: any) {\r\n return seen.hasOwnProperty(currentObject.sequence)\r\n || (seen[currentObject.sequence] = false);\r\n });\r\n if (hasDuplicates) {\r\n this._notificationService.showToast(\"Sequence should be unique !!!\", \"Warning\");\r\n return\r\n }\r\n\r\n let StatusWiseCompletionPercentageInput: any = {\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n tran_Type: 'UPDATE_STATUS_WEIGHTAGE',\r\n statusWiseCompletionPercentageDetails: this.StatusCompletionPercentageDetails,\r\n actionBy: this._commonService.getLoggedInUserId(),\r\n }\r\n\r\n this.ReportService.UpdateStatusWiseCompletionPercentage(StatusWiseCompletionPercentageInput).subscribe((res: StandardOutputModel) => {\r\n if (res) {\r\n if (res.successCode == 200)\r\n this._notificationService.showPopup(res.successMessage, \"Success\").then(\r\n x => { this.panelOpenState = !this.panelOpenState; this.LoadSCurve(); }\r\n );\r\n else\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n\r\n }\r\n });\r\n }\r\n\r\n async getDynamicForm() {\r\n await this._projInfoService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n\r\n this.elementsConfig = res.filter(s => { return s.isMandatory == true }).map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.ScheduleDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n value: new BehaviorSubject(null)\r\n }\r\n\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n this.onCascadingAutocomplete_Change();\r\n this.copyElementDetailsFromSource();\r\n });\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach((data: any) => {\r\n if (!!data.child_de_id) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe(x => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projInfoService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n else {\r\n _field[0].values = [];\r\n }\r\n }, err => { });\r\n }\r\n else {\r\n _field[0].values = [];\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n private copyElementDetailsFromSource() {\r\n let sourceProjElementForm: FormGroup = this.dynamicForm.value;\r\n this.projectElements.filter(s => { return s.isNumbering == false }).forEach(x => {\r\n let selectedValue: IProjectElementDetailsOutput = sourceProjElementForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let field: FieldConfig | undefined = this.elementsConfig.find(ele => ele.de_id == selectedValue.deId && ele.deDescription == selectedValue.deDescription);\r\n if (field && field.value) {\r\n field.value.next(selectedValue.dedId);\r\n }\r\n }\r\n })\r\n }\r\n\r\n public GetSCurveExportDetails() {\r\n this.LoadSearchDetails().then((res: any[]) => {\r\n this.loaderService.isLoading.next(true);\r\n let SCurveInput: any = {\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n chart_Value: 'EXPORT_EXCEL',\r\n filterElementDetails: res\r\n }\r\n\r\n let fileName = \"SCurve ScheduleDocument Details As Of \" + formatDate(new Date(), 'dd-MMM-yyyy', 'en') + \".xlsx\";\r\n this.ReportService.GetSCurveExportDetails(SCurveInput).subscribe((res: any) => {\r\n if (res) {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(res);\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n },\r\n err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in Downloading Report\", \"Warning\");\r\n });\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Count\r\n Weightage\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Define Progress Level Weightage

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Progress Level Weightage Definition\r\n \r\n
\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Sl No.Progress LevelSequenceDuration In DaysCompletion Percentage\r\n
\r\n {{i+1}}\r\n \r\n {{data.deD_Description}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Note ★ Example to set Duration days :-\r\n
\r\n Schedule date for Progress level n = 01-Jan -2023\r\n
\r\n * Duration for Progress level n+1 set to 10 days,\r\n Then , Schedule date for Progress level n+1 = 11-Jan -2023\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Total Document Weightage Index Planned from {{projectStartDate | date:'dd-MMM-yyyy'}} to {{ToDate | date:'dd-MMM-yyyy'}} is : {{TotalValue}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Total Documents Scheduled from {{projectStartDate | date:'dd-MMM-yyyy'}} to {{ToDate | date:'dd-MMM-yyyy'}} is : {{TotalValue}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'documentCheckDeletePipe'\r\n})\r\nexport class DocumentCheckDeletePipe implements PipeTransform {\r\n\r\n transform(dataItem: any, memberName?: any,canDelete?:boolean): any {\r\n if ((dataItem.createdBy === memberName) && canDelete && (dataItem.trans_type != 'Approved'))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'documentCheckEditPipe'\r\n})\r\nexport class DocumentCheckEditPipe implements PipeTransform {\r\n\r\n transform(dataItem: any, canSuperEdit: boolean,canEdit:boolean,memberName:string,canSuperEditApprovedDocuments: boolean,createdOn:Date,projectId:number): boolean {\r\n const createdDate = new Date(createdOn);\r\n const daysToCompare = Math.ceil((new Date().getTime() - createdDate.getTime()) / (1000 * 60 * 60 * 24))\r\n if(canSuperEditApprovedDocuments && daysToCompare<=30 && projectId==1)\r\n {\r\n return true;\r\n }\r\n else if (canSuperEdit && dataItem.trans_type != 'Approved') {\r\n return true\r\n }\r\n else if (canEdit && dataItem.trans_type != 'Approved') {\r\n if (dataItem.createdBy === memberName) {\r\n return true;\r\n }\r\n else return false;\r\n }\r\n else {\r\n return false;\r\n }\r\n \r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'documentCheckSupersedePipe'\r\n})\r\nexport class DocumentCheckSupersedePipe implements PipeTransform {\r\n\r\n transform(dataItem: any, canSupersede?: boolean): any {\r\n if (canSupersede && dataItem.trans_type == 'Approved') {\r\n return true\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'isharePipe'\r\n})\r\nexport class IsharePipe implements PipeTransform {\r\n\r\n transform(dataItem: any, canSuperEdit: boolean,canEdit:boolean,memberName:string): any {\r\n if (canSuperEdit && dataItem.trans_type != 'Approved') {\r\n return false\r\n }\r\n else if (canEdit && dataItem.trans_type != 'Approved') {\r\n if (dataItem.createdBy === memberName) {\r\n return false;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit, QueryList, ViewChildren, OnDestroy } from \"@angular/core\";\r\nimport { FormControl, Validators } from \"@angular/forms\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DocumentInputsComponent } from \"../document-inputs/document-inputs.component\";\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { DocumentOutputModel, IDocumentApprovalModel, IElementInputModel } from \"src/app/ViewModel/DocumentModel\";\r\nimport { FileUploadComponent } from \"src/app/CommonComponents/file-upload/file-upload.component\";\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { formatDate } from \"@angular/common\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { DocumentService } from \"src/app/Service/document/document.service\";\r\nimport { FileUploadLibrary } from \"src/app/Service/file/file.service\";\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-doc-bulkupload',\r\n templateUrl: './bulkupload.component.html',\r\n styleUrls: ['./bulkupload.component.css']\r\n})\r\nexport class BulkUploadComponent implements OnInit, OnDestroy {\r\n @ViewChildren(DocumentInputsComponent) docInputComp!: QueryList;\r\n public noOfDocsArr: number[] = [];\r\n public numFormat!: string;\r\n public docNosOf!: number;\r\n public readonly = false;\r\n public projectId: number = 0;\r\n public groupId: number = 0;\r\n public memberId: number = 0;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RevisedOn: string = formatDate(this.datevalue, 'dd-MMM-yyyy', 'en-US');;\r\n public noOfDocs: number = 1;\r\n public IsSupersede: boolean = false;\r\n public IsEdit: boolean = false;\r\n public canManualNo: boolean = false;\r\n public rateControl = new FormControl(\"\", [Validators.max(5), Validators.min(1)]);\r\n public parentForm: FormControl = new FormControl();\r\n autoSerialNoMap: Map = new Map();\r\n sourceDocComponent!: DocumentInputsComponent | undefined;\r\n autoSerialSelectedValues: Map = new Map();\r\n public popupHeader: string = \"Upload Document\";\r\n public CurrentProjectDetails!: ProjectViewModel;\r\n UnsubscribeArray: Subscription[] = [];\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public document: any,\r\n private _notificationService: NotificationService,\r\n public dialogRef: MatDialogRef,\r\n private dialog: MatDialog,\r\n private commonService: CommonService,\r\n private _docService: DocumentService) { }\r\n ngOnInit() {\r\n this.numFormat = 'Auto';\r\n this.projectId = this.commonService.getProjectId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.CurrentProjectDetails = this.commonService.getCurrentProjectDetails();\r\n if (this.CurrentProjectDetails && this.CurrentProjectDetails.doc_Number_Format) {\r\n this.numFormat = this.CurrentProjectDetails.doc_Number_Format;\r\n }\r\n this.callMemberRoleandFeature();\r\n if (this.document.docId != 0 && this.document.isSupersede == false) {\r\n this.popupHeader = \"Edit - Upload Document\";\r\n this.IsEdit = true;\r\n }\r\n if (this.document.docId != 0 && this.document.isSupersede == true) {\r\n this.popupHeader = \"Supersede - Upload Document\";\r\n this.IsSupersede = true;\r\n }\r\n for (let i = 0; i < this.noOfDocs; i++) {\r\n this.noOfDocsArr.push(i);\r\n }\r\n }\r\n\r\n addDocument() {\r\n this.sourceDocComponent = this.docInputComp.find(x => x.docIndex == 1)\r\n let count = this.rateControl.value;\r\n if (count > 0) {\r\n let previousCount = this.noOfDocsArr.length;\r\n if (count > 5) {\r\n count = 5;\r\n }\r\n // 1 < 3 // normal scenario\r\n if (previousCount < count) {\r\n let countdiff = count - previousCount;\r\n for (let i = previousCount; i < count; i++) {\r\n this.noOfDocsArr.push(i);\r\n }\r\n } else {\r\n let countdiff = previousCount - count;\r\n for (let i = 0; i < countdiff; i++) {\r\n this.noOfDocsArr.splice(previousCount - 1, countdiff);\r\n previousCount = previousCount - 1;\r\n }\r\n }\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please enter No of Docs to Upload\", \"Warning\");\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n async saveAllDocument() {\r\n let validForm: boolean = true;\r\n this.docInputComp.forEach(elements => {\r\n elements.ValidateForm();\r\n if (!elements.isDocumentValid) {\r\n validForm = false;\r\n }\r\n });\r\n if (validForm) {\r\n let results: DocumentOutputModel[] = [];\r\n let failureResult: string = \"\";\r\n for (let i = 0; i < this.docInputComp.length; i++) {\r\n let docInpComp: DocumentInputsComponent = this.docInputComp.toArray()[i];\r\n let x: DocumentOutputModel = await docInpComp.saveDocument();\r\n if (!!x)\r\n results.push(x);\r\n }\r\n let successResult: string = \"\";\r\n results.forEach(res => {\r\n if (!!res) {\r\n if (res.successCode == 200) {\r\n successResult += res.successMessage + \"
\";\r\n }\r\n else {\r\n failureResult += res.successMessage + \"
\";\r\n }\r\n }\r\n });\r\n\r\n if (failureResult && failureResult.length > 0) {\r\n this._notificationService.showPopup(failureResult, \"Warning\");\r\n //this.closeDialog();\r\n }\r\n if (successResult && successResult.length > 0) {\r\n this.closeDialog();\r\n if (this.IsEdit != true && results.length == 1) {\r\n this.attachmentClick(results[0].DocId, results[0].RevisionNo, results[0].DocAuthorizedBy);\r\n }\r\n if (this.IsSupersede) {\r\n this._notificationService.showPopup(\"Document superseded successfully\", \"Success\");\r\n }\r\n else {\r\n\r\n this._notificationService.showPopup(successResult, \"Success\");\r\n }\r\n }\r\n\r\n }\r\n else {\r\n this._notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n }\r\n }\r\n\r\n reSetAll() {\r\n this.docInputComp.forEach(x => x.reSet());\r\n }\r\n\r\n onValChange(value: string) {\r\n this.numFormat = value;\r\n }\r\n onInputValChange() {\r\n this.docNosOf = this.rateControl.value;\r\n }\r\n\r\n getDocumentSerialNo(value: any) {\r\n this.autoSerialSelectedValues.set(value.index, value.selectedDedIds);\r\n this.autoSerialNoMap.set(value.index, value.serialNo);\r\n if (this.autoSerialSelectedValues.size > 1) {\r\n this.autoSerialSelectedValues.forEach((x, y) => {\r\n if (y != value.index && JSON.stringify(x) == JSON.stringify(value.selectedDedIds)) {\r\n let _x: any = this.autoSerialNoMap.get(y);\r\n if (_x)\r\n this.autoSerialNoMap.set(value.index, _x + 1)\r\n }\r\n })\r\n }\r\n }\r\n\r\n attachmentClick(result: number, RevisionNo: string, authorizedBy: number|null) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n //height: '50%',\r\n width: '50%',\r\n data: { projectId: this.projectId, docId: result, revisionNo: RevisionNo, moduleName: 'EDMS', libraryName: FileUploadLibrary.Documents, createdBy: this.memberId, documents: [{ value: result, text: \"\", revisionNo: RevisionNo, task_SNo: 0 }], isEditable: false },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n if (authorizedBy == this.memberId) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: result,\r\n RevisionNo: RevisionNo,\r\n RevisedOn: this.RevisedOn,\r\n IsApproved: true,\r\n ApprovedBy: this.memberId\r\n };\r\n let Attachmentclick = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(Attachmentclick);\r\n }\r\n });\r\n }\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n let memberrolefeature = await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canManualNo = result1.some(data => data.feature_Desc == 'Manual No');\r\n if (!this.canManualNo && this.numFormat == 'Manual')\r\n this.numFormat = 'Auto';\r\n });\r\n this.UnsubscribeArray.push(memberrolefeature);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n","
\r\n
\r\n

{{popupHeader}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Numbering Format : \r\n \r\n Semi\r\n Manual\r\n Auto\r\n \r\n
\r\n
\r\n
\r\n
\r\n

No of Docs to Upload :

\r\n
\r\n
\r\n 5\">\r\n Maximum value is 5\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
","import { formatDate } from '@angular/common';\r\nimport { Component, Inject, Input, OnInit, ViewChild, Output, EventEmitter, ViewChildren, QueryList, OnDestroy } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IDocSLNoInputModel, IDocumentInputModel, IDocumentLocInputModel, IDocumentRevInputModel, IElementInputModel, IDocumentByIdInputModel, DocumentOutputModel, IMSTOutputModel, IMSTDocDetailsInputModel, IMSTDetailsInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput, IProjectFeatureOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport * as moment from 'moment';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { EIPAutoCompleteComponent } from 'eipauto-complete';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ProjectMasterService } from 'src/app/Service/projectmaster/projectmaster.service';\r\nimport { IProjectMasterViewModel } from 'src/app/ViewModel/ProjectMasterModel';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\n\r\n@Component({\r\n selector: 'app-document-inputs',\r\n templateUrl: './document-inputs.component.html',\r\n styleUrls: ['./document-inputs.component.css']\r\n})\r\nexport class DocumentInputsComponent implements OnInit, OnDestroy {\r\n private _numFormat: string = 'Auto';\r\n @Input() docIndex: number = 0;\r\n @Input() docNosOf!: number;\r\n @Input() autoSerialNoMap: Map = new Map();\r\n @Input() set numFormat(val: string) {\r\n this._numFormat = val;\r\n if (val == 'Auto' || val == 'Manual') {\r\n this.readonly = true;\r\n this.isAutoEnabled = true;\r\n this.revisionInput(true);\r\n }\r\n else {\r\n this.readonly = false;\r\n this.isAutoEnabled = false;\r\n this.revisionInput(false);\r\n }\r\n this.enableDisableSerialNo(true);\r\n }\r\n get numFormat(): string {\r\n return this._numFormat;\r\n }\r\n @Input() readonly!: boolean;\r\n @Input() editDocument!: any;\r\n @Input() isEdit!: boolean;\r\n @Input() isSupersede!: boolean;\r\n @Output() isDocumentValid!: boolean;\r\n @Output() getDocumentSerialNo = new EventEmitter();\r\n @Input() sourceDocComponent!: DocumentInputsComponent;\r\n @ViewChild(\"docSetForm\") dynamicForm!: DynamicFormComponent;\r\n @ViewChildren(EIPAutoCompleteComponent) eipAutoCompleteComponents!: QueryList;\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n docnoreadonly: boolean = true;\r\n isShowSerialNo: boolean = true;\r\n serialNoLength: number = 5;\r\n public selectedDocument: any;\r\n public projectId: number = 0;\r\n public groupId: number = 0;\r\n public memberId: number = 0;\r\n public clickButton = true;\r\n public panelOpenState = true;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public isAutoEnabled: boolean = false;\r\n public regConfig: FieldConfig[] | null = [];\r\n public numElements: Map = new Map();\r\n public elementInp: IElementInputModel[] = [];\r\n public elementInput: IElementInputModel[] = [];\r\n public docRevInputModel: IDocumentRevInputModel[] = [];\r\n public printsizelist: IProjectElementDetailsOutput[] = [];\r\n public statusList: IProjectElementDetailsOutput[] = [];\r\n public approverList: IProjectFeatureOutput[] = [];\r\n public locationList: IProjectElementDetailsOutput[] = [];\r\n public buildingList: IProjectElementDetailsOutput[] = [];\r\n public floorList: IProjectElementDetailsOutput[] = [];\r\n public rackList: IProjectElementDetailsOutput[] = [];\r\n public shelfList: IProjectElementDetailsOutput[] = [];\r\n public DocId: number | null = null;\r\n public DocGroupId: number | null= null;\r\n public autoSerialNo!: string;\r\n public docSerialNo!: number | undefined;\r\n public docNo!: string;\r\n public documentNo!: string;\r\n public selectedPrintSize!: number | null;\r\n public selectedStatus!: number | null;\r\n public selectedLocation!: number | null;\r\n public selectedBuilding!: number | null;\r\n public selectedFloor!: number | null;\r\n public selectedRack!: number | null;\r\n public selectedShelf!: number | null;\r\n public titleTxt!: string;\r\n\r\n\r\n public selectedAuthorisedBy!: number | null;\r\n public isRevisedDateInvalid!: boolean;\r\n public isDocDateInvalid!: boolean;\r\n public datevalue = new Date(this.getDateFormat());\r\n public docdatevalue = new Date(this.getDateFormat());\r\n public RevisedOn: string = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public DocDate: string = formatDate(this.docdatevalue, 'dd-MM-yyyy', 'en-US');\r\n\r\n /*Set AutoComplete selected values for Edit*/\r\n public printSizeIndex: number = -1;\r\n public approverIndex: number = -1;\r\n public locationIndex: number = -1;\r\n public buildingIndex: number = -1;\r\n public floorIndex: number = -1;\r\n public rackIndex: number = -1;\r\n public shelfIndex: number = -1;\r\n public uid: number = 0;\r\n jobCode: string = '';\r\n mstList: IMSTOutputModel[] = [];\r\n mstNewList: IMSTDetailsInputModel[] = [];\r\n topSheetList: any[] = [];\r\n PONoList: any[] = [];\r\n MCodeList: any[] = [];\r\n topSheet_No !: string | null;\r\n PONo !: string | null;\r\n MaterialCode!: string | null;\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isMSTIntegration: boolean = false;\r\n public selectedDocumentElements: IElementInputModel[] = [];\r\n field!: FieldConfig;\r\n\r\n public documentForm: FormGroup = new FormGroup({\r\n txtDocSerialNo: new FormControl(),\r\n txtSerialNo: new FormControl({ value: '', disabled: true }, [Validators.pattern(\"^[0-9]*$\")]),\r\n lblIsConfidential: new FormControl(false),\r\n ddlPrintSize: new FormControl(),\r\n subDocumentType: new FormControl(),\r\n txtTitle: new FormControl(),\r\n autoPrintSize: new FormControl(),\r\n txtDocDate: new FormControl()\r\n });\r\n\r\n public revForm: FormGroup = new FormGroup({\r\n ddlStatus: new FormControl(),\r\n txtRevNo: new FormControl(),\r\n txtRevDate: new FormControl(),\r\n ddlAuthorisedBy: new FormControl(),\r\n txtRef: new FormControl(),\r\n txtQRCode: new FormControl(true),\r\n autoStatus: new FormControl(),\r\n dpRevDate: new FormControl(new Date),\r\n autoAuthorisedBy: new FormControl(),\r\n txtComments: new FormControl()\r\n });\r\n\r\n public locForm: FormGroup = new FormGroup({\r\n ddlLocation: new FormControl(),\r\n ddlBuilding: new FormControl(),\r\n ddlFloor: new FormControl(),\r\n ddlRack: new FormControl(),\r\n ddlShelf: new FormControl(),\r\n txtFileNo: new FormControl()\r\n });\r\n\r\n /**File List */\r\n public fileTypeList: RoleFeatureModel[] = [];\r\n public fileCollection: Array = new Array();\r\n\r\n private uris = {\r\n dedAgainstDEGetUrl: \"DEDED/GetCommonDEDAgainstDE\"\r\n };\r\n UnsubscribeArray: Subscription[] = [];\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialog: MatDialog,\r\n private _projService: ProjectInfoService,\r\n private _docService: DocumentService,\r\n private _notificationService: NotificationService,\r\n public restApiService: RestApiService,\r\n private commonService: CommonService,\r\n private _elementLinkService: ElementLinkService,\r\n private loaderService: LoaderService,\r\n private _fileService: FileService,\r\n private _projectService: ProjectMasterService) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.uid = this.commonService.getLoggedInUserEipUserId();\r\n if (!this.isSupersede && !this.isEdit) {\r\n this.getDynamicForm();\r\n }\r\n if (this._numFormat == \"Semi\") {\r\n if (this.isEdit || this.isSupersede)\r\n this.documentForm.get('txtSerialNo')?.disable();\r\n else\r\n this.documentForm.get('txtSerialNo')?.enable();\r\n }\r\n this.getSerialNoLength();\r\n this.getprintsizelist();\r\n this.getStatusList();\r\n this.getApproverList();\r\n this.getLocationList();\r\n this.getBuildingList();\r\n this.getFloorList();\r\n this.getRackList();\r\n this.getShelfList();\r\n if (this.editDocument.docId != 0 && this.docIndex == 1) {\r\n this.DocId = this.editDocument.docId;\r\n this.DocGroupId = this.editDocument.docGroupId\r\n this.getDocumentDetails();\r\n this.getFileType();\r\n this.getFileList();\r\n }\r\n this.getProjectStaticElements();\r\n if (!!this.sourceDocComponent)\r\n this.copyGeneralDetails();\r\n }\r\n\r\n async getSerialNoLength() {\r\n let slNoArray = await this._elementLinkService.getNumberingSlNoLength(this.projectId, this.groupId, Module.UploadDocument).toPromise();\r\n this.serialNoLength = slNoArray.serialNoLength != 0 ? slNoArray.serialNoLength : 5;\r\n }\r\n\r\n ValidateForm() {\r\n this.isDocumentValid = this.documentForm.valid && this.revForm.valid && this.locForm.valid && !this.isRevisedDateInvalid && !this.isDocDateInvalid;\r\n if (!this.isDocumentValid) {\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.documentForm);\r\n this.formMarkAsTouched(this.revForm);\r\n this.formMarkAsTouched(this.locForm);\r\n }\r\n return this.isDocumentValid;\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n\r\n attachmentClick() {\r\n let docId = this.editDocument.docId;\r\n let revisionNo = this.editDocument.revisionNo;\r\n this.clickButton = true;\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, docId: docId, revisionNo: revisionNo, moduleName: 'EDMS', libraryName: FileUploadLibrary.Documents, createdBy: this.memberId, documents: [{ value: docId, text: this.getFormValue(\"txtDocSerialNo\", this.documentForm), revisionNo: revisionNo, task_SNo: 0 }], isEditable: false },\r\n });\r\n\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.getFileList();\r\n });\r\n }\r\n\r\n collapseAllClick() {\r\n this.panelOpenState = !this.panelOpenState;\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n getDynamicForm() {\r\n let Getprojectelements = this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.regConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.UploadDocument,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select'\r\n }\r\n\r\n if (x.isMandatory) {\r\n field.validations = [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: field.name + \" Required\"\r\n }\r\n ]\r\n }\r\n if (x.isNumbering) {\r\n this.numElements.set(x.elementDescription, '');\r\n }\r\n\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.regConfig;\r\n this.dynamicForm.createControl();\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n //Numbering elements array\r\n let numberingElements: string[] = Array.from(this.numElements.keys());\r\n numberingElements.forEach(element => {\r\n resForm.get(element)?.valueChanges.subscribe((x: any) => {\r\n\r\n if (this.numElements.has(element)) {\r\n if (!!x) {\r\n this.numElements.set(element, x.dedShortDescription);\r\n }\r\n else {\r\n this.numElements.set(element, '');\r\n }\r\n }\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi') {\r\n this.GetDocumentSerialNo();\r\n }\r\n });\r\n });\r\n\r\n this.onCascadingAutocomplete_Change();\r\n\r\n if (!!this.sourceDocComponent)\r\n this.copyElementDetailsFromSource();\r\n });\r\n this.UnsubscribeArray.push(Getprojectelements);\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n if (this.regConfig)\r\n this.regConfig.forEach((data: any) => {\r\n if (!!data.child_de_id) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe((x: any) => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.UploadDocument,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId,\r\n memberId: this.memberId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n else {\r\n _field[0].values = [];\r\n }\r\n }, (err: any) => { });\r\n }\r\n else {\r\n _field[0].values = [];\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public getRepoDocNumber(): string {\r\n let docNo: string = this.getFormValue(\"txtDocSerialNo\", this.documentForm);\r\n let serialNo: string = this.getFormValue(\"txtSerialNo\", this.documentForm);\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi') {\r\n if (!!serialNo && serialNo.trim().length > 0)\r\n return docNo + '-' + this.getFormValue(\"txtSerialNo\", this.documentForm);\r\n else\r\n return docNo;\r\n }\r\n else\r\n return docNo;\r\n }\r\n\r\n\r\n /**\r\n * Bind Doc No\r\n */\r\n // bindDocIndex(i: number) {\r\n // this.bindDocIndex = i + 1;\r\n // }\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n /**\r\n *Get Document Serial No\r\n */\r\n GetDocumentSerialNo() {\r\n //Coin the Document number based on the element values selection changes\r\n let elementValues: string[] = Array.from(this.numElements.values());\r\n let selectedElementValues: string[] = elementValues.filter(val => val != '');\r\n this.docNo = elementValues.filter(val => val != '').join('-');\r\n this.documentForm.get('txtDocSerialNo')?.setValue(this.docNo);\r\n //Ensure all the mandatory numering elements selected\r\n if (elementValues.length > 0 && elementValues.length == selectedElementValues.length) {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInp = this.projectElements.filter(x => x.isNumbering).map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n let result: IElementInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n });\r\n let inputModel: IDocSLNoInputModel = { projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, elementDetails: this.elementInp };\r\n let getdocSerial = this._docService.GetDocSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n //Updates the serial no based on remaining document selected ded ids\r\n this.getDocumentSerialNo.emit({ index: this.docIndex, selectedDedIds: this.elementInp, serialNo: result.successCode });\r\n //Set manipulated value from the parent component(W.r.t other documents elements selection while bulk upload)\r\n this.docSerialNo = this.autoSerialNoMap.get(this.docIndex);\r\n this.documentForm.get('txtSerialNo')?.setValue(String(this.docSerialNo).padStart(this.serialNoLength, '0'));\r\n this.enableDisableSerialNo(false);\r\n });\r\n this.UnsubscribeArray.push(getdocSerial);\r\n }\r\n }\r\n /**\r\n * Get Print Size\r\n */\r\n public async getprintsizelist() {\r\n let Getprintsize = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Print Size' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.printsizelist = res;\r\n if (!!this.sourceDocComponent) {\r\n let printSize = this.sourceDocComponent.documentForm.get('ddlPrintSize')?.value;\r\n if (!!printSize)\r\n this.selectedPrintSize = printSize;\r\n this.documentForm.get('autoPrintSize')?.setValue(this.printsizelist.filter(x => x.dedId == printSize)[0].dedDescription);\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(Getprintsize);\r\n }\r\n\r\n /**\r\n * Get Status List\r\n */\r\n public async getStatusList() {\r\n let statuslist = await this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Status' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.statusList = res;\r\n if (!!this.sourceDocComponent) {\r\n let status = this.sourceDocComponent.revForm.get('ddlStatus')?.value;\r\n if (!!status)\r\n this.selectedStatus = status;\r\n this.revForm.get('autoStatus')?.setValue(this.statusList.filter(x => x.dedId == status)[0].dedDescription);\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(statuslist);\r\n }\r\n\r\n /**\r\n * Get ApproverList List\r\n */\r\n public async getApproverList() {\r\n let approverlist = await this._projService.getProjectFeatureWiseMembers({ projectId: this.projectId, groupId: this.groupId, featureDescription: 'Approve' })\r\n .subscribe((res: IProjectFeatureOutput[]) => {\r\n this.approverList = res;\r\n if (!!this.sourceDocComponent) {\r\n let approver = this.sourceDocComponent.revForm.get('ddlAuthorisedBy')?.value;\r\n if (!!approver)\r\n this.selectedAuthorisedBy = approver;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(approverlist);\r\n }\r\n\r\n /**\r\n * Get Location List\r\n */\r\n public async getLocationList() {\r\n let locationlist = await this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Location' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.locationList = res;\r\n if (!!this.sourceDocComponent) {\r\n let location = this.sourceDocComponent.locForm.get('ddlLocation')?.value;\r\n if (!!location)\r\n this.selectedLocation = location;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(locationlist);\r\n }\r\n\r\n /**\r\n * Get Building List\r\n */\r\n public async getBuildingList() {\r\n let buildinglist = await this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Building' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.buildingList = res;\r\n if (!!this.sourceDocComponent) {\r\n let building = this.sourceDocComponent.locForm.get('ddlBuilding')?.value;\r\n if (!!building)\r\n this.selectedBuilding = building;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(buildinglist);\r\n }\r\n\r\n /**\r\n * Get Floor List\r\n */\r\n public async getFloorList() {\r\n let floorlist = await this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Floor' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.floorList = res;\r\n if (!!this.sourceDocComponent) {\r\n let floor = this.sourceDocComponent.locForm.get('ddlFloor')?.value;\r\n if (!!floor)\r\n this.selectedFloor = floor;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(floorlist);\r\n }\r\n\r\n /**\r\n * Get Rack List\r\n */\r\n public async getRackList() {\r\n let racklist = await this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Rack' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.rackList = res;\r\n if (!!this.sourceDocComponent) {\r\n let rack = this.sourceDocComponent.locForm.get('ddlRack')?.value;\r\n if (!!rack)\r\n this.selectedRack = rack;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(racklist);\r\n }\r\n\r\n /**\r\n * Get Status List\r\n */\r\n public async getShelfList() {\r\n let shelflist = await this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Shelf' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.shelfList = res;\r\n if (!!this.sourceDocComponent) {\r\n let shelf = this.sourceDocComponent.locForm.get('ddlShelf')?.value;\r\n if (!!shelf)\r\n this.selectedShelf = shelf;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(shelflist);\r\n }\r\n\r\n getValue(selectedText: { value: any; }, field: string) {\r\n if (field == 'Revision Date') {\r\n this.isRevisedDateInvalid = selectedText.value == null;\r\n this.RevisedOn = selectedText.value;\r\n } else if (field == 'Document Date') {\r\n this.isDocDateInvalid = selectedText.value == null;\r\n this.DocDate = selectedText.value;\r\n }\r\n }\r\n getTimeValue(selectedText: any, field: any) {\r\n }\r\n\r\n setDocumentValues(event: { value: any; }, formControlName: string) {\r\n this.documentForm.get(formControlName)?.setValue(event.value);\r\n }\r\n setLocationValues(event: { value: any; }, formControlName: string) {\r\n this.locForm.get(formControlName)?.setValue(event.value);\r\n }\r\n setRevisionValues(event: { value: any; }, formControlName: string) {\r\n this.revForm.get(formControlName)?.setValue(event.value);\r\n }\r\n\r\n /**\r\n * Save Document\r\n */\r\n async saveDocument(): Promise {\r\n let notificationShown = false;\r\n let result: DocumentOutputModel = { DocId: null, RevisionNo: \"\", DocAuthorizedBy: null, result: \"\", successCode: 400, successMessage: this.docIndex + \" - \" + \"Mandatory fields are missing\" };\r\n if (this.DocId == 0 || this.DocId == null) {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInput = this.projectElements.map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n let selecetdMandatory = x.isMandatory;\r\n if(selecetdMandatory == true && selectedValue == null){\r\n this._notificationService.showToast(\"Mandatory fields are Required\", \"Warning\");\r\n notificationShown = true;\r\n return null;\r\n }\r\n if (selectedValue != null) {\r\n let result: IElementInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n }\r\n });\r\n }\r\n if (this.documentForm.valid && notificationShown == false) {\r\n let docRevInputModel: IDocumentRevInputModel = {\r\n DocId: this.DocId,\r\n RevisionNo: this.getFormValue('txtRevNo', this.revForm),\r\n DocStatus: this.getFormValue('ddlStatus', this.revForm),\r\n IsConfidential: this.getFormValue('lblIsConfidential', this.documentForm),\r\n PrintSize: this.getFormValue('ddlPrintSize', this.documentForm),\r\n Reference: this.getFormValue('txtRef', this.revForm),\r\n RevisedOn: this.RevisedOn,\r\n RevisionCategory: 1,\r\n DocAuthorizedBy: this.getFormValue('ddlAuthorisedBy', this.revForm),\r\n DocCreatedBy: this.memberId,\r\n Comments: this.getFormValue('txtComments', this.revForm),\r\n IsFileAttached: false,\r\n QRCodeStatus: this.getFormValue('txtQRCode', this.revForm),\r\n CreatedBy: this.memberId\r\n };\r\n let docLocInput: IDocumentLocInputModel = {\r\n DocId: this.DocId,\r\n RevisionNo: this.getFormValue('txtRevNo', this.revForm),\r\n Location: this.getFormValue('ddlLocation', this.locForm),\r\n Building: this.getFormValue('ddlBuilding', this.locForm),\r\n Floor: this.getFormValue('ddlFloor', this.locForm),\r\n Rack: this.getFormValue('ddlRack', this.locForm),\r\n Shelf: this.getFormValue('ddlShelf', this.locForm),\r\n FileNo: this.getFormValue('txtFileNo', this.locForm),\r\n UserId: this.memberId\r\n };\r\n let semiNo: string = '0';\r\n let docNo: string = this.getFormValue(\"txtDocSerialNo\", this.documentForm);\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(\"txtSerialNo\", this.documentForm);\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n if (!!semiNo && semiNo.length > 0)\r\n docNo = docNo + '-' + this.getFormValue(\"txtSerialNo\", this.documentForm);\r\n }\r\n let inputModel: IDocumentInputModel = {\r\n DocId: this.DocId,\r\n DocNo: docNo,\r\n DocTitle: this.getFormValue('txtTitle', this.documentForm),\r\n DocDate: this.DocDate,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n DocSerialNo: +semiNo,\r\n SchRevNo: 1,\r\n DocSheetNo: 1,\r\n Module: Module.UploadDocument,\r\n UserId: this.memberId,\r\n IsScheduled: false,\r\n elementDetails: this.elementInput,\r\n docRevInputs: docRevInputModel,\r\n docFLInputs: docLocInput\r\n };\r\n result = await this._docService.InsertDocument(inputModel).toPromise();\r\n\r\n\r\n if (!!this.isMSTIntegration) {\r\n if (result.successCode == 200 || result.successCode == 205) {\r\n\r\n let mstDocDetails: IMSTDocDetailsInputModel = {\r\n docId: +result.result,\r\n projectId: this.projectId,\r\n sSTDetails: this.mstNewList,\r\n userId: this.memberId\r\n\r\n }\r\n let result1: StandardOutputModel = await this._docService.InsertMSTDocDetails(mstDocDetails).toPromise();\r\n }\r\n }\r\n\r\n result = {\r\n DocId: +result.result,\r\n RevisionNo: this.getFormValue('txtRevNo', this.revForm),\r\n DocAuthorizedBy: this.getFormValue('ddlAuthorisedBy', this.revForm),\r\n result: result.result,\r\n successCode: result.successCode,\r\n successMessage: result.successMessage\r\n };\r\n return result;\r\n }\r\n else\r\n return Promise.resolve();\r\n }\r\n\r\n changeAutoStatus(event?: any) {\r\n if (event.checked || event == true) {\r\n this.revisionInput(true);\r\n }\r\n else {\r\n this.revisionInput(false);\r\n }\r\n }\r\n\r\n revisionInput(isChecked: boolean) {\r\n if (isChecked == true) {\r\n if (!this.isSupersede && !this.isEdit) {\r\n this.revForm.controls['txtRevNo'].setValue('0');\r\n }\r\n this.revForm.controls['txtRevNo'].disable();\r\n this.revForm.controls['txtRevDate'].disable();\r\n if (!!this.statusList && this.statusList.length > 0)\r\n this.statusList = [...this.statusList];\r\n this.revForm.controls['autoStatus'].updateValueAndValidity();\r\n this.selectedStatus = this.selectedStatus;\r\n }\r\n else {\r\n this.revForm.controls['txtRevNo'].enable();\r\n this.revForm.controls['txtRevDate'].enable();\r\n\r\n }\r\n }\r\n\r\n private enableDisableSerialNo(semiNoUpdateRequired: boolean) {\r\n this.isShowSerialNo = this.numFormat == 'Semi' || this.numFormat == 'Auto';\r\n if (!!this.documentForm) {\r\n if (this.numFormat == 'Auto') {\r\n this.docnoreadonly = true;\r\n this.documentForm.get('txtSerialNo')?.disable();\r\n this.documentForm.get('txtDocSerialNo')?.disable();\r\n if (semiNoUpdateRequired)\r\n this.GetDocumentSerialNo();\r\n }\r\n else if (this.numFormat == 'Semi') {\r\n this.docnoreadonly = true;\r\n this.documentForm.get('txtSerialNo')?.enable();\r\n this.documentForm.get('txtDocSerialNo')?.disable();\r\n if (semiNoUpdateRequired)\r\n this.GetDocumentSerialNo();\r\n }\r\n else if (this.numFormat == 'Manual') {\r\n this.docnoreadonly = false;\r\n this.documentForm.get('txtDocSerialNo')?.setValue('');\r\n this.documentForm.get('txtSerialNo')?.setValue('');\r\n this.documentForm.get('txtDocSerialNo')?.enable();\r\n this.documentForm.get('txtSerialNo')?.disable();\r\n }\r\n }\r\n }\r\n\r\n reSet() {\r\n this.printsizelist = [];\r\n this.statusList = [];\r\n this.approverList = [];\r\n this.locationList = [];\r\n this.buildingList = [];\r\n this.floorList = [];\r\n this.rackList = [];\r\n this.shelfList = [];\r\n this.selectedPrintSize = null;\r\n this.selectedStatus = null;\r\n this.selectedLocation = null;\r\n this.selectedBuilding = null;\r\n this.selectedFloor = null;\r\n this.selectedRack = null;\r\n this.selectedShelf = null;\r\n this.selectedAuthorisedBy = null;\r\n const txtTitleControl = this.documentForm.get('txtTitle');\r\n txtTitleControl.setValue(null);\r\n txtTitleControl.markAsPristine();\r\n txtTitleControl.markAsUntouched();\r\n\r\n const txtRefControl = this.revForm.get('txtRef');\r\n txtRefControl.setValue(null);\r\n txtRefControl.markAsPristine();\r\n txtRefControl.markAsUntouched();\r\n\r\n const txtCmntControl = this.revForm.get('txtComments');\r\n txtCmntControl.setValue(null);\r\n txtCmntControl.markAsPristine();\r\n txtCmntControl.markAsUntouched();\r\n\r\n const txtFileControl = this.locForm.get('txtFileNo');\r\n txtFileControl.setValue(null);\r\n txtFileControl.markAsPristine();\r\n txtFileControl.markAsUntouched();\r\n\r\n this.eipAutoCompleteComponents.forEach(x => x.clearText());\r\n this.ngOnInit();\r\n }\r\n\r\n collapsePanel() {\r\n }\r\n\r\n public getDocumentDetails() {\r\n let inputModel: IDocumentByIdInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.DocGroupId ? this.DocGroupId : this.groupId,\r\n docId: this.editDocument.docId,\r\n revisionNo: this.editDocument.revisionNo\r\n };\r\n let getDocdetails = this._docService.getDocumentById(inputModel).subscribe(x => {\r\n this.selectedDocument = [];\r\n this.selectedDocument.push({\r\n docId: x['docId'],\r\n docNo: x['documentNo'],\r\n title: x['title'],\r\n docDate: formatDate(x['docDate'], 'dd-MM-yyyy', 'en-US'),\r\n revision: x['revision'],\r\n nextRevision: x['nextRevision'],\r\n printSize: x['printSize'],\r\n status: x['status'],\r\n createdBy: x['createdBy'],\r\n createdByName: x['createdByName'],\r\n authorizedBy: x['authorisedBy'],\r\n docAuthorizedByName: x['docAuthorizedByName'],\r\n createdOn: x['createdOn'],\r\n revisiedOn: formatDate(x['revisedOn'], 'dd-MM-yyyy', 'en-US'),\r\n reviewedOn: x['reviewedOn'],\r\n comments: x['comments'],\r\n reference: x['reference'],\r\n isFileAttached: x['isFileAttached'],\r\n qrCodeStatus: x['qrCodeStatus'],\r\n isConfidential: x['isConfidential'],\r\n location: x['location'],\r\n building: x['building'],\r\n floor: x['floor'],\r\n rack: x['rack'],\r\n shelf: x['shelf'],\r\n fileNo: x['fileNo']\r\n });\r\n this.getDocumentElements();\r\n this.docNo = x['documentNo'];\r\n this.documentForm.get('txtDocSerialNo')?.setValue(this.docNo);\r\n //While editing the document, no need to show the serial no \r\n this.isShowSerialNo = false;\r\n this.documentForm.get('txtTitle')?.setValue(x['title']);\r\n this.documentForm.get('lblIsConfidential')?.setValue(x['isConfidential']);\r\n this.setSelectedPrintsize(x['printSize']);\r\n\r\n if (this.isSupersede) {\r\n this.revForm.get('txtRevNo')?.setValue(x['nextRevision']);\r\n let date = new Date();\r\n let startdate = moment(date, \"DD/MM/YYYY\");\r\n this.datevalue = startdate.toDate();\r\n this.RevisedOn = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n }\r\n else {\r\n this.revForm.get('txtRevNo')?.setValue(x['revision']);\r\n let date = formatDate(x['revisedOn'], 'dd-MM-yyyy', 'en-US');\r\n let startdate = moment(date, \"DD/MM/YYYY\");\r\n this.datevalue = startdate.toDate();\r\n this.RevisedOn = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n }\r\n\r\n let date = formatDate(x['docDate'], 'dd-MM-yyyy', 'en-US');\r\n let startdate = moment(date, \"DD/MM/YYYY\");\r\n this.docdatevalue = startdate.toDate();\r\n this.DocDate = formatDate(this.docdatevalue, 'dd-MM-yyyy', 'en-US');\r\n\r\n this.revForm.get('txtRef')?.setValue(x['reference']);\r\n this.setSelectedStatus(x['status']);\r\n this.setSelectedAuthorisedBy(x['authorisedBy']);\r\n this.setSelectedLocation(x['location']);\r\n this.setSelectedBuilding(x['building']);\r\n this.setSelectedFloor(x['floor']);\r\n this.setSelectedRack(x['rack']);\r\n this.setSelectedShelf(x['shelf']);\r\n this.locForm.get('txtFileNo')?.setValue(x['fileNo']);\r\n this.revForm.get('txtComments')?.setValue(x['comments']);\r\n });\r\n this.UnsubscribeArray.push(getDocdetails);\r\n }\r\n\r\n public setSelectedPrintsize(printSize: number) {\r\n this.selectedPrintSize = printSize;\r\n this.documentForm.get('autoPrintSize')?.setValue(printSize);\r\n this.documentForm.get('ddlPrintSize')?.setValue(printSize);\r\n }\r\n\r\n public setSelectedStatus(data: number) {\r\n this.selectedStatus = data;\r\n this.revForm.get('autoStatus')?.setValue(data);\r\n this.revForm.get('ddlStatus')?.setValue(data);\r\n }\r\n\r\n public setSelectedAuthorisedBy(data: number) {\r\n this.selectedAuthorisedBy = data;\r\n this.revForm.get('autoAuthorisedBy')?.setValue(data);\r\n this.revForm.get('ddlAuthorisedBy')?.setValue(data);\r\n }\r\n\r\n public setSelectedLocation(data: number) {\r\n this.selectedLocation = data;\r\n this.locForm.get('ddlLocation')?.setValue(data);\r\n }\r\n\r\n public setSelectedBuilding(data: number) {\r\n this.selectedBuilding = data;\r\n this.locForm.get('ddlBuilding')?.setValue(data);\r\n }\r\n\r\n public setSelectedFloor(data: number) {\r\n this.selectedFloor = data;\r\n this.locForm.get('ddlFloor')?.setValue(data);\r\n }\r\n\r\n public setSelectedRack(data: number) {\r\n this.selectedRack = data;\r\n this.locForm.get('ddlRack')?.setValue(data);\r\n }\r\n\r\n public setSelectedShelf(data: number) {\r\n this.selectedShelf = data;\r\n this.locForm.get('ddlShelf')?.setValue(data);\r\n }\r\n\r\n getDocumentElements() {\r\n let getdocElements = this._docService.getDocumentElementsById({ docId: this.editDocument.docId }).subscribe(\r\n (pde: IElementInputModel[]) => {\r\n this.selectedDocumentElements = pde;\r\n this.setDynamicForm();\r\n });\r\n this.UnsubscribeArray.push(getdocElements);\r\n }\r\n\r\n setDynamicForm() {\r\n let setdynamic = this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.regConfig = res.map((x): FieldConfig => {\r\n let field: FieldConfig = { type: \"label\", label: x.elementDescription, de_id: x.elementId }\r\n if (this.selectedDocumentElements.length > 0) {\r\n let dedValue: any = this.selectedDocumentElements.find(el => el.deId == x.elementId)?.dedShortDescription + \" - \" + this.selectedDocumentElements.find(el => el.deId == x.elementId)?.dedDescription;\r\n field.value = new BehaviorSubject(dedValue);\r\n\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.regConfig;\r\n this.dynamicForm.createControl();\r\n });\r\n this.UnsubscribeArray.push(setdynamic);\r\n }\r\n\r\n private copyElementDetailsFromSource() {\r\n let sourceProjElementForm: FormGroup = this.sourceDocComponent.dynamicForm.value;\r\n this.projectElements.forEach(x => {\r\n let selectedValue: IProjectElementDetailsOutput = sourceProjElementForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let field: FieldConfig | undefined = this.regConfig ? this.regConfig.find(ele => ele.de_id == selectedValue.deId && ele.deDescription == selectedValue.deDescription) : undefined;\r\n if (!!field) {\r\n field.value = new BehaviorSubject(selectedValue.dedId);\r\n }\r\n }\r\n })\r\n }\r\n\r\n private copyGeneralDetails() {\r\n let sourceDocumentForm: FormGroup = this.sourceDocComponent.documentForm;\r\n let sourceRevForm: FormGroup = this.sourceDocComponent.revForm;\r\n\r\n let lblIsConfidential: boolean = sourceDocumentForm.get('lblIsConfidential')?.value;\r\n this.documentForm.get('lblIsConfidential')?.setValue(lblIsConfidential);\r\n\r\n let txtRef: string = sourceRevForm.get('txtRef')?.value;\r\n if (!!txtRef)\r\n this.revForm.get('txtRef')?.setValue(txtRef);\r\n\r\n let txtRevNo: string = sourceRevForm.get('txtRevNo')?.value;\r\n if (!!txtRevNo)\r\n this.revForm.get('txtRevNo')?.setValue(txtRevNo);\r\n\r\n let txtQRCode: boolean = sourceRevForm.get('txtQRCode')?.value;\r\n this.revForm.get('txtQRCode')?.setValue(txtQRCode);\r\n }\r\n\r\n public getFileList() {\r\n this.fileCollection = [];\r\n\r\n let fileInput = {\r\n projectId: this.projectId,\r\n docId: this.editDocument.docId,\r\n revisionNo: this.editDocument.revisionNo\r\n }\r\n let getfilelist = this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.Documents, value: JSON.stringify(fileInput) }).subscribe(\r\n (data: any) => {\r\n let returnData = data;\r\n for (let index = 0; index < returnData['length']; index++) {\r\n this.fileCollection.push({\r\n serial: index + 1,\r\n fileId: returnData[index].fileId,\r\n fileName: returnData[index].fileName,\r\n fileSize: returnData[index].fileSize,\r\n fileExtension: returnData[index].fileExtension,\r\n fileFullName: returnData[index].fileName + '.' + returnData[index].fileExtension,\r\n uploadedBy: returnData[index].createdBy,\r\n uploadedByName: returnData[index].createdByName,\r\n uploadedOn: this.getFormattedDate(returnData[index].createdOn),\r\n fileType: returnData[index].fileType,\r\n fileTypeName: this.getFileTypeName(returnData[index].fileType),\r\n fileUrn: returnData[index].urn\r\n });\r\n }\r\n });\r\n this.UnsubscribeArray.push(getfilelist);\r\n }\r\n\r\n public getFormattedDate(date: moment.MomentInput) {\r\n let res;\r\n if (date != null) {\r\n res = (moment(date)).format('DD-MMM-yyyy');\r\n }\r\n return res;\r\n }\r\n\r\n public getFileType() {\r\n let reqData = { \"DEDescription\": \"File Type\" };\r\n return this.restApiService.new_POST(this.uris.dedAgainstDEGetUrl, reqData).subscribe((data: any) => {\r\n this.fileTypeList = data;\r\n });\r\n }\r\n\r\n public getFileTypeName(fileType: number) {\r\n if (this.fileTypeList.filter(item => item.dedId == fileType).length > 0)\r\n return this.fileTypeList.filter(item => item.dedId == fileType)[0][\"dedDescription\"];\r\n else\r\n return '';\r\n }\r\n\r\n public deleteFile(dataItem: { fileId: any; fileFullName: any; }) {\r\n this._notificationService.showPopup('Are you sure to delete', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let deletefile = this._fileService.DeleteFile({ libraryNumber: FileUploadLibrary.Documents, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode === 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(deletefile);\r\n }\r\n });\r\n }\r\n\r\n\r\n public downloadFile(dataItem: { fileId: any; fileFullName: string; }) {\r\n this.loaderService.isLoading.next(true);\r\n let downloadfile = this._fileService.DownloadFile({ libraryNumber: FileUploadLibrary.Documents, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(res);\r\n downloadLink.download = dataItem.fileFullName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, (err: any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n });\r\n this.UnsubscribeArray.push(downloadfile);\r\n }\r\n getMSTDetails() {\r\n this._projectService.getProjects(this.projectId, this.memberId).subscribe((data: IProjectMasterViewModel[]) => {\r\n this.jobCode = data[0].job_Code;\r\n let getmstdetails = this._docService.GetMSTDetails({ uid: this.uid, jobCode: this.jobCode })\r\n .subscribe((res: any) => {\r\n this.mstList = res;\r\n this.getTopSheetNoList();\r\n });\r\n this.UnsubscribeArray.push(getmstdetails);\r\n });\r\n }\r\n\r\n async getTopSheetNoList() {\r\n let mstList1 = this.mstList.map((element => {\r\n return { \"topSheet_No\": element.topSheet_No, \"topsheet_Description\": element.topsheet_Description };\r\n }));\r\n this.topSheetList = mstList1.reduce((accumalator: any, current) => {\r\n if (!accumalator.some(\r\n (item: any) => item.topSheet_No === current.topSheet_No)) {\r\n accumalator.push(current);\r\n }\r\n return accumalator;\r\n }, []);\r\n\r\n }\r\n\r\n TopSheetValueChange(val: any) {\r\n if (!!val.additionalValues.additionalValues) {\r\n this.topSheet_No = val.additionalValues.additionalValues.topSheet_No;\r\n }\r\n else {\r\n this.topSheet_No = null;\r\n }\r\n let mstList1 = this.mstList.filter(data => data.topSheet_No == this.topSheet_No);\r\n let poList1 = mstList1.map((element => {\r\n return { \"pO_No\": element.pO_No };\r\n }));\r\n this.PONoList = poList1.reduce((accumalator: any, current) => {\r\n if (!accumalator.some(\r\n (item: any) => item.pO_No === current.pO_No)) {\r\n accumalator.push(current);\r\n }\r\n return accumalator;\r\n }, [])\r\n }\r\n\r\n PONoValueChange(val: any) {\r\n if (!!val.additionalValues.additionalValues) {\r\n this.PONo = val.additionalValues.additionalValues.pO_No;\r\n }\r\n else {\r\n this.PONo = null;\r\n }\r\n let mstList1 = this.mstList.filter(data => data.topSheet_No == this.topSheet_No && data.pO_No == this.PONo);\r\n let mcList1 = mstList1.map((element => {\r\n return { \"material_Code_Description\": element.material_Code_Description, \"material_Code\": element.material_Code };\r\n }));\r\n this.MCodeList = mcList1;\r\n }\r\n\r\n ItemCodeValueChange(val: any) {\r\n if (!!val.additionalValues.additionalValues) {\r\n this.MaterialCode = val.additionalValues.additionalValues.material_Code;\r\n }\r\n else {\r\n this.MaterialCode = null;\r\n }\r\n }\r\n addMSTDocument() {\r\n let mstDocDetails: IMSTDetailsInputModel = {\r\n topSheetNo: this.topSheet_No,\r\n pONo: this.PONo,\r\n materialItemCode: this.MaterialCode,\r\n isActive: true\r\n }\r\n let checkMSTList = this.mstNewList.filter(x => x.topSheetNo == this.topSheet_No && x.pONo == this.PONo && x.materialItemCode == this.MaterialCode)\r\n if (checkMSTList.length == 0) {\r\n this.mstNewList.push(mstDocDetails);\r\n this.topSheet_No = null\r\n this.PONo = null\r\n this.MaterialCode = null\r\n }\r\n else {\r\n this._notificationService.showToast(\"Already Exists\", \"Warning\");\r\n return;\r\n }\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let isMSTIntegrationElement = this.projectStaticElements.filter(x => x.elementDescription == \"MST Integration\")[0];\r\n if (!!isMSTIntegrationElement) {\r\n this.isMSTIntegration = isMSTIntegrationElement.isMandatory;\r\n }\r\n }\r\n }, (err: any) => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n if (this.isMSTIntegration)\r\n this.getMSTDetails();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{docIndex}}\r\n Document\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Document Serial No\r\n \r\n \r\n
\r\n \r\n \r\n Serial No\r\n \r\n \r\n
\r\n \r\n \r\n Document Properties (Opt)\r\n Confidential\r\n  \r\n \r\n
\r\n \r\n \r\n Print Size is required\r\n
\r\n \r\n \r\n Title\r\n Title is required\r\n \r\n \r\n \r\n \r\n Document Date is required\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Document Revision\r\n Auto\r\n
\r\n
\r\n
\r\n
\r\n
 \r\n \r\n \r\n \r\n \r\n Status is required\r\n \r\n \r\n \r\n Revision\r\n Revision is required\r\n \r\n \r\n \r\n \r\n Revision Date is required\r\n \r\n \r\n \r\n Approved By is required\r\n \r\n \r\n \r\n Reference\r\n \r\n \r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n \r\n QR Code Tag\r\n Active\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n MST\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n File Location\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n File Number\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Attachments\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileFullName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.fileTypeName}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedByName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedOn}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IDocumentMailInputModel, IDocumentMailOutputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport * as moment from 'moment';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-document-mail-list',\r\n templateUrl: './document-mail-list.component.html',\r\n styleUrls: ['./document-mail-list.component.css']\r\n})\r\nexport class DocumentMailListComponent implements OnInit {\r\n public mailList: IDocumentMailOutputModel[] = [];\r\n public filteredList: IDocumentMailOutputModel[] = [];\r\n public docNo: string = '';\r\n public selectedMailType: number = 0;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private _docService: DocumentService,\r\n private dialog: MatDialog,\r\n private datepipe: DatePipe,\r\n @Inject(MAT_DIALOG_DATA) public _data: IDocumentMailInputModel\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this._data != null) {\r\n this.docNo = this._data.DocumentNo;\r\n this.selectedMailType = this._data.Category;\r\n this.initGrid();\r\n }\r\n }\r\n\r\n public async initGrid() {\r\n this.mailList = await this._docService.getDocumentMsgList(\r\n this._data.DocId,\r\n (this._data.ProjectId?this._data.ProjectId:0),\r\n (this._data.GroupId?this._data.GroupId:0),\r\n (this._data.MemberId?this._data.MemberId:0),\r\n this._data.TransType,\r\n null).toPromise();\r\n if (this._data.Category == 2) {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory == 3);\r\n }\r\n else {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory != 3);\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n filterMailType(event: any) { \r\n if (event.value == 2) {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory == 3);\r\n }\r\n else {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory != 3);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Document No : {{docNo}} :

\r\n \r\n \r\n Mail\r\n Transmittal\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n {{dataItem.to}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.respondBy | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.dateOfResponse | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n
","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { IDocumentRepositoryHistoryViewModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-document-repositoryhistory-dialog',\r\n templateUrl: './document-repositoryhistory-dialog.component.html',\r\n styleUrls: ['./document-repositoryhistory-dialog.component.css']\r\n})\r\nexport class DocumentRepositoryhistoryDialogComponent implements OnInit, OnDestroy {\r\n selectedRepositoryHistory!: any[];\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n pageSize = 15;\r\n doc_No!: string;\r\n UnsubscribeArray: Subscription[] = [];\r\n\r\n constructor(public dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data: any, public documentService: DocumentService,\r\n public _dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit() {\r\n this.doc_No = this.data.documentNo;\r\n this.getRepositoryHistoryDetails();\r\n }\r\n\r\n getRepositoryHistoryDetails() {\r\n let respositoryhistory = this.documentService.GetDocumentRepositoryhistory(this.data.docId, this.data.revision).subscribe((data: IDocumentRepositoryHistoryViewModel[]) => {\r\n if (data.length > 0) {\r\n data.forEach((value: any) => {\r\n value[\"Assigned_On\"] = (moment(value.assigned_On)).format('DD-MMM-yyyy')\r\n if (value.viewStatus == \"Read\") {\r\n value[\"Date\"] = (moment(value.viewed_On)).format('DD-MMM-yyyy');\r\n } else {\r\n value[\"Date\"] = \" \";\r\n }\r\n })\r\n this.selectedRepositoryHistory = data;\r\n }\r\n });\r\n this.UnsubscribeArray.push(respositoryhistory);\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n","
\r\n
\r\n

Shared History : {{doc_No}}

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

Details

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assigned_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assigned_To}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.viewStatus}}\r\n \r\n \r\n \r\n \r\n {{dataItem.Date}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.communication}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-document-review',\r\n templateUrl: './document-review.component.html',\r\n styleUrls: ['./document-review.component.css']\r\n})\r\nexport class DocumentReviewComponent implements OnInit {\r\n\r\npublic showAll!:boolean;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef,) { }\r\n\r\n ngOnInit() {\r\n if(!this.data.inputType){\r\n this.showAll = false;\r\n }else{\r\n this.showAll = true;\r\n }\r\n }\r\n\r\n closeDialog(){\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Document Review

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Document No\r\n \r\n \r\n
\r\n
\r\n \r\n Document Title\r\n \r\n \r\n
\r\n
\r\n \r\n Revision\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Reviewed On :

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Comments / Remarks \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

Reviewed On :

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Comments / Remarks \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { IDocumentRevHistoryModel, IDocRevHistoryOutputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\n\r\n@Component({\r\n selector: 'app-document-revision-history',\r\n templateUrl: './document-revision-history.component.html',\r\n styleUrls: ['./document-revision-history.component.css']\r\n})\r\nexport class DocumentRevisionHistoryComponent implements OnInit {\r\n @Input() inputModel!: IDocumentRevHistoryModel;\r\n revisionHistoryList: IDocRevHistoryOutputModel[] = [];\r\n\r\n constructor(\r\n private _docService: DocumentService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.inputModel != null) {\r\n this.bindGrid();\r\n }\r\n }\r\n\r\n public async bindGrid() {\r\n this.revisionHistoryList = await this._docService.getDocumentRevisionHistory(this.inputModel).toPromise();\r\n }\r\n}\r\n","\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.docStatusDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.authorizedByName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisedOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revCategoryDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.printSizeDesc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.noOfSheets}}\r\n \r\n \r\n \r\n","import { Component, OnInit, Input, ViewChild, OnDestroy } from '@angular/core';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { IDocumentByIdInputModel, IDocumentApprovalModel, IElementInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { formatDate } from '@angular/common';\r\nimport { IProjectElementDetailsOutput, IProjectFeatureOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { EmployeeCartDialogComponent } from '../employee-cart-dialog/employee-cart-dialog.component';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { CreateMessageComponent } from '../../communication/create-message/create-message.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n\r\n@Component({\r\n selector: 'app-document-view',\r\n templateUrl: './document-view.component.html',\r\n styleUrls: ['./document-view.component.css']\r\n})\r\nexport class DocumentViewComponent implements OnInit, OnDestroy {\r\n private _viewData!: any[];\r\n get viewData(): any {\r\n return this._viewData;\r\n }\r\n @Input() set viewData(value: any) {\r\n if (!!value && typeof value == \"object\") {\r\n this._viewData = value;\r\n this.loadData();\r\n }\r\n }\r\n\r\n @Input() set ViewOnly(value: boolean | undefined) {\r\n if (!!value) {\r\n this._ViewOnly = value;\r\n }\r\n }\r\n\r\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\r\n\r\n _ViewOnly: boolean = false;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public documentElements: IElementInputModel[] = [];\r\n public regConfig: FieldConfig[] = [];\r\n public projectId!: number;\r\n public groupId!: number;\r\n public isRejected: boolean = false;\r\n public documentId!: number;\r\n public revisionNo!: string;\r\n public memberId: number = 0;\r\n public approverId: number = 0;\r\n public canApprove!: boolean;\r\n public canShare!: boolean;\r\n public data: any[] = [];\r\n public printsizelist: IProjectElementDetailsOutput[] = [];\r\n public statusList: IProjectElementDetailsOutput[] = [];\r\n public approverList: IProjectFeatureOutput[] = [];\r\n public locationList: IProjectElementDetailsOutput[] = [];\r\n public buildingList: IProjectElementDetailsOutput[] = [];\r\n public floorList: IProjectElementDetailsOutput[] = [];\r\n public rackList: IProjectElementDetailsOutput[] = [];\r\n public shelfList: IProjectElementDetailsOutput[] = [];\r\n UnsubscribeArray: Subscription[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private _docService: DocumentService,\r\n private _notificationService: NotificationService,\r\n private _projService: ProjectInfoService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n }\r\n async loadData() {\r\n this.isRejected = this.viewData[0].trans_type == 'Rejected' ? false : true;\r\n let docData = this.viewData[0];\r\n if (!!docData) {\r\n if (this.documentId != docData.docId) {\r\n this.projectId = docData.projectId;\r\n this.groupId = docData.groupId;\r\n this.documentId = docData.docId;\r\n this.revisionNo = docData.revisionNo;\r\n this.canShare = docData.canShare;\r\n this.getDocument();\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n public getDocument() {\r\n let inputModel: IDocumentByIdInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n docId: this.documentId,\r\n revisionNo: this.revisionNo\r\n };\r\n let getDoc = this._docService.getDocumentById(inputModel).subscribe(x => {\r\n this.data = [];\r\n this.data.push({\r\n docId: x['docId'],\r\n docNo: x['documentNo'],\r\n title: x['title'],\r\n docDate: formatDate(x['docDate'], 'dd-MM-yyyy', 'en-US'),\r\n revision: x['revision'],\r\n nextRevision: x['nextRevision'],\r\n printSize: x['printSize'],\r\n status: x['status'],\r\n createdBy: x['createdBy'],\r\n createdByName: x['createdByName'],\r\n authorizedBy: x['authorisedBy'],\r\n docAuthorizedByName: x['docAuthorizedByName'],\r\n createdOn: x['createdOn'],\r\n revisiedOn: formatDate(x['revisedOn'], 'dd-MM-yyyy', 'en-US'),\r\n reviewedOn: x['reviewedOn'],\r\n comments: x['comments'],\r\n reference: x['reference'],\r\n isFileAttached: x['isFileAttached'],\r\n qrCodeStatus: x['qrCodeStatus'],\r\n isConfidential: x['isConfidential'],\r\n location: x['location'],\r\n building: x['building'],\r\n floor: x['floor'],\r\n rack: x['rack'],\r\n shelf: x['shelf'],\r\n fileNo: x['fileNo'] == null ? '-' : x['fileNo'],\r\n });\r\n this.approverId = x['authorisedBy'];\r\n this.getDocumentElements();\r\n this.getprintsizelist();\r\n this.getStatusList();\r\n this.getApproverList();\r\n this.getLocationList();\r\n this.getBuildingList();\r\n this.getFloorList();\r\n this.getRackList();\r\n this.getShelfList();\r\n this.checkApproval();\r\n });\r\n this.UnsubscribeArray.push(getDoc);\r\n }\r\n\r\n getDocumentElements() {\r\n let getDocelements = this._docService.getDocumentElementsById({ docId: this.documentId }).subscribe(\r\n (pde: IElementInputModel[]) => {\r\n this.documentElements = pde;\r\n this.getDynamicForm();\r\n });\r\n this.UnsubscribeArray.push(getDocelements);\r\n }\r\n\r\n getDynamicForm() {\r\n let getdynamicform = this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.regConfig = res.map(x => {\r\n let field: FieldConfig = {\r\n type: \"label\",\r\n label: x.projectElementDescription != null && x.projectElementDescription != '' ? x.projectElementDescription : x.elementDescription,\r\n de_id: x.elementId\r\n }\r\n let dedValue = this.documentElements.find(el => el.deId == x.elementId);\r\n if (!!dedValue) {\r\n field.value = new BehaviorSubject(dedValue.dedDescription);\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.regConfig;\r\n this.dynamicForm.createControl();\r\n });\r\n this.UnsubscribeArray.push(getdynamicform);\r\n }\r\n\r\n public getprintsizelist() {\r\n let getprintsize = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Print Size' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.printsizelist = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getprintsize);\r\n }\r\n\r\n public getSelectedPrintsize(printSize: number) {\r\n let printSizeVal: string = '';\r\n if (this.printsizelist.length > 0) {\r\n let result = this.printsizelist.filter(x => x.dedId == printSize);\r\n if (result.length > 0) {\r\n printSizeVal = result[0].dedDescription;\r\n }\r\n }\r\n return printSizeVal;\r\n }\r\n\r\n public getStatusList() {\r\n let getstatuslist = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Status' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.statusList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getstatuslist);\r\n }\r\n\r\n public getSelectedStatus(data: number) {\r\n let statusVal: string = '';\r\n if (this.statusList.length > 0) {\r\n let result = this.statusList.filter(x => x.dedId == data);\r\n if (result.length > 0) {\r\n statusVal = result[0].dedDescription;\r\n }\r\n }\r\n return statusVal;\r\n }\r\n\r\n public getApproverList() {\r\n let getapproverlist = this._projService.getProjectFeatureWiseMembers({ projectId: this.projectId, groupId: this.groupId, featureDescription: 'Approve' })\r\n .subscribe((res: IProjectFeatureOutput[]) => {\r\n this.approverList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getapproverlist);\r\n }\r\n\r\n public getLocationList() {\r\n let getlocationlist = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Location' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.locationList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getlocationlist);\r\n }\r\n\r\n public getSelectedLocation(data: number) {\r\n let result = this.locationList.filter(x => x.dedId == data);\r\n if (result.length > 0) {\r\n return result[0].dedDescription;\r\n }\r\n else {\r\n return '-';\r\n }\r\n }\r\n\r\n public getBuildingList() {\r\n let getbuildinglist = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Building' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.buildingList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getbuildinglist);\r\n }\r\n\r\n public getSelectedBuilding(data: number) {\r\n let result = this.buildingList.filter(x => x.dedId == data);\r\n if (result.length > 0) {\r\n return result[0].dedDescription;\r\n }\r\n else {\r\n return '-';\r\n }\r\n }\r\n\r\n public getFloorList() {\r\n let getfloorlist = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Floor' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.floorList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getfloorlist);\r\n }\r\n\r\n public getSelectedFloor(data: number) {\r\n let result = this.floorList.filter(x => x.dedId == data);\r\n if (result.length > 0) {\r\n return result[0].dedDescription;\r\n }\r\n else {\r\n return '-';\r\n }\r\n }\r\n\r\n public getRackList() {\r\n let getracklist = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Rack' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.rackList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getracklist);\r\n }\r\n\r\n public getSelectedRack(data: number) {\r\n let result = this.rackList.filter(x => x.dedId == data);\r\n if (result.length > 0) {\r\n return result[0].dedDescription;\r\n }\r\n else {\r\n return '-';\r\n }\r\n }\r\n\r\n public getShelfList() {\r\n let getshelflist = this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.UploadDocument, deDescription: 'Shelf' })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n this.shelfList = res;\r\n }, err => { });\r\n this.UnsubscribeArray.push(getshelflist);\r\n }\r\n\r\n public getSelectedShelf(data: number) {\r\n let result = this.shelfList.filter(x => x.dedId == data);\r\n if (result.length > 0) {\r\n return result[0].dedDescription;\r\n }\r\n else {\r\n return '-';\r\n }\r\n }\r\n\r\n /**\r\n * File attachment for each row documents in grid\r\n * @param data\r\n */\r\n attachmentClick() {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: { projectId: this.projectId, docId: this.documentId, revisionNo: this.revisionNo, libraryName: FileUploadLibrary.Documents, createdBy: this.memberId, isDeleteEnable: false, documentNo: this.data[0].docNo },\r\n });\r\n }\r\n\r\n approveDocument(isApproved: any) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: this.documentId,\r\n RevisionNo: this.revisionNo,\r\n RevisedOn: this.data[0].revisedOn,\r\n IsApproved: isApproved,\r\n ApprovedBy: this.memberId\r\n };\r\n let approvedoc = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(approvedoc);\r\n }\r\n\r\n shareDocument() {\r\n let shareDocList = [{\r\n docId: this.documentId, revision: this.revisionNo\r\n }];\r\n const dialogRef = this.dialog.open(EmployeeCartDialogComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '85%',\r\n data: { projectId: this.projectId, groupId: this.groupId, docList: shareDocList, userId: this.memberId }\r\n });\r\n }\r\n\r\n createMessageClick() {\r\n let selectedDocuments = [];\r\n let item = {\r\n docId: this.data[0].docId,\r\n documentNo: this.data[0].docNo,\r\n title: this.data[0].title,\r\n revision: this.data[0].revision,\r\n authorisedByName: this.data[0].docAuthorizedByName,\r\n createdByName: this.data[0].createdByName\r\n }\r\n selectedDocuments.push(item);\r\n const dialogRef = this.dialog.open(CreateMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createDocumentMail', selectedList: selectedDocuments }\r\n });\r\n }\r\n checkApproval() {\r\n if (this.canShare) {\r\n this.canApprove = false;\r\n }\r\n else {\r\n this.canApprove = this.memberId == this.approverId;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}\r\n\r\n\r\n","
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n

Document

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

Doc Serial No.

\r\n

\r\n {{data.docNo}}\r\n

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

Document Properties(Opt)

\r\n

\r\n \r\n Confidential\r\n \r\n

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

Print Size(Opt)

\r\n

{{getSelectedPrintsize(data.printSize)}}\r\n

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

Title

\r\n

{{data.title}}\r\n

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

Document Date

\r\n

{{data.docDate}}\r\n

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

Document Revision

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

Status

\r\n

{{getSelectedStatus(data.status)}}

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

Revision

\r\n

\r\n {{data.revision}}\r\n

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

Revision Date

\r\n

\r\n {{data.revisiedOn}}\r\n

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

Authorized By

\r\n

{{data.docAuthorizedByName}}\r\n

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

Reference

\r\n

{{data.reference}}

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

Comments

\r\n

\r\n {{data.comments}}\r\n

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

QR Code Tag

\r\n

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

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

Storage Location

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

Location

\r\n

{{getSelectedLocation(data.location)}}

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

Building

\r\n

\r\n {{getSelectedBuilding(data.building)}}\r\n

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

Floor

\r\n

\r\n {{getSelectedFloor(data.floor)}}\r\n

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

Rack

\r\n

{{getSelectedRack(data.rack)}}\r\n

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

Shelf

\r\n

{{getSelectedShelf(data.shelf)}}

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

File Number

\r\n

\r\n {{data.fileNo}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, QueryList, ViewChildren, ViewChild, IterableDiffers, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { BulkUploadComponent } from '../bulkupload/bulkupload.component';\r\nimport { ExceluploadComponent } from '../excelupload/excelupload.component';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { IDocumentApprovalModel, IDocumentExcelUploadModel, IDocumentRevHistoryModel, IDocumentMailInputModel, DocumentGridSettings, IDocumentListInputModel, IDocReceiverStatus, IDocumentDynamicSearchModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { EmployeeCartDialogComponent } from '../employee-cart-dialog/employee-cart-dialog.component';\r\n\r\nimport { CreateMessageComponent } from '../../communication/create-message/create-message.component';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { DocumentMailListComponent } from '../document-mail-list/document-mail-list.component';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { DocumentReviewComponent } from '../document-review/document-review.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport * as _ from 'lodash';\r\nimport { DocumentRepositoryhistoryDialogComponent } from '../document-repositoryhistory-dialog/document-repositoryhistory-dialog.component';\r\nimport { DynamickendoService } from 'src/app/CommonComponents/Dynamic-Kendo-UI/Service/Dynamic-kendo.service';\r\nimport { Router } from '@angular/router';\r\nimport { SortDescriptor, State } from '@progress/kendo-data-query';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { IMsgElementInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport * as moment from 'moment';\r\nimport { formatDate, DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-document',\r\n templateUrl: './document.component.html',\r\n styleUrls: ['./document.component.css']\r\n})\r\nexport class DocumentComponent implements OnInit, OnDestroy {\r\n @ViewChild(\"docSetForm\") dynamicForm: DynamicFormComponent;\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n foraction!: boolean;\r\n selectedIndex = 0;\r\n selectedRootIndex = 4;\r\n selectedTabIndex = 0;\r\n inprogress!: boolean;\r\n approved!: boolean;\r\n landingall!: boolean;\r\n rejected!: boolean;\r\n issued!: boolean;\r\n memberId: number = 0;\r\n memberName: string = '';\r\n projectId!: number;\r\n groupId: number = 0;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n pageSize = 15;\r\n LastViewingRecords = 30;\r\n LastViewingRecord: string = \"30\";\r\n noOfDays = [30, 60, 90, 120, 180, 360, 'All'];\r\n canEdit: boolean = false;\r\n canSuperEditApprovedDocuments: boolean = false;\r\n canSuperEdit: boolean = false;\r\n canSupersede: boolean = false;\r\n canUpload: boolean = false;\r\n canView: boolean = false;\r\n canDelete: boolean = false;\r\n hasOrgView: boolean = false;\r\n hasSuperView: boolean = false;\r\n isRedirected: boolean = false;\r\n hasWorkFlowHistory: boolean = false;\r\n public isSearch: any;\r\n public showRevHistory!: boolean;\r\n public canApprove!: boolean;\r\n public showInProgress!: boolean;\r\n public isLatest: boolean = true;\r\n public isPending: boolean = true;\r\n public gridData: any[] = [];\r\n public data: any[] = [];\r\n public dynamicHeader: any[] = [];\r\n public documentList: any[] = [];\r\n public searchList: any[] = [];\r\n public approvedList: any[] = [];\r\n public forActionList: any[] = [];\r\n public rejectedList: any[] = [];\r\n public inProgressList: any[] = [];\r\n public buttonType = 'MyDocuments';\r\n public lastscrollLeft!: number;\r\n public viewTabs: any = [];\r\n public viewData: any[] = [];\r\n public shareDocList: any[] = [];\r\n public revHistory: IDocumentRevHistoryModel | null = null;\r\n public anchorElementPopup: any;\r\n private anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n private popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public popupMargin = { horizontal: -15, vertical: 10 };\r\n @ViewChildren('docGrid') docGrid: any;\r\n @ViewChildren('docDynamicGrid') public docDynamicGrid: any;\r\n @ViewChild('file') file;\r\n acceptFileTypes: string = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n public searchGridParameters: any;\r\n public gridDatafrm: any;\r\n public grid!: any;\r\n public locked!: any;\r\n public _Url: string = \"\";\r\n public grdSettings!: any[];\r\n public sort: SortDescriptor[] = [];\r\n public iterableDiffer: any;\r\n private uris = {\r\n // uploadFile: \"/RepositoryDocuments/UploadTemplate\",\r\n downloadFile: \"/RepositoryDocuments/DownloadTemplate\",\r\n };\r\n UnsubscribeArray: Subscription[] = [];\r\n public regConfig: FieldConfig[] = [];\r\n public numElements: Map = new Map();\r\n public projectElements: any[];\r\n public elementInp: IMsgElementInputModel[] = [];\r\n public searchForm: FormGroup = new FormGroup({\r\n ctrlSearchText: new FormControl(),\r\n ctrlType: new FormControl(),\r\n ctrlGroup: new FormControl(),\r\n ctrlRevision: new FormControl()\r\n });\r\n public start: string;\r\n public end: string;\r\n public searchTypeList: any[];\r\n freesearch: IDocumentDynamicSearchModel;\r\n tempdata: any[] = [];\r\n onlyded: any[] = [];\r\n public dataglobal: any[] = [];\r\n public nodata: boolean = true;\r\n // field: FieldConfig;\r\n public selectedTypeIndex: number = -1;\r\n public selectedTypeValue: string;\r\n public isBulkDownload: boolean = false;\r\n\r\n @ViewChildren('divIcon') divIconHover!: QueryList;\r\n constructor(private dialog: MatDialog,\r\n private loaderService: LoaderService,\r\n private _docService: DocumentService,\r\n private _notificationService: NotificationService,\r\n private http: HttpClient,\r\n private restApiService: RestApiService,\r\n private commonService: CommonService,\r\n private encryptDecryptService: EncryptDecryptService,\r\n private _DynamickendoService: DynamickendoService,\r\n private router: Router,\r\n private iterableDiffers: IterableDiffers,\r\n private _projService: ProjectInfoService,\r\n public datepipe: DatePipe,\r\n private _fileService: FileService) {\r\n\r\n this.allData = this.allData.bind(this);\r\n this.iterableDiffer = iterableDiffers.find([]).create();\r\n }\r\n\r\n ngOnInit() {\r\n this._Url = this.router.url;\r\n if (this.commonService.hasRequestedObject()) {\r\n setTimeout(() => {\r\n this.initialPageLoad();\r\n }, 2000);\r\n }\r\n else {\r\n this.initialPageLoad();\r\n }\r\n this.GetGridsettigs();\r\n this.getDynamicForm();\r\n }\r\n\r\n public state: State = {\r\n skip: 0,\r\n take: 50,\r\n sort: [],\r\n filter: {\r\n logic: \"and\",\r\n filters: []\r\n }\r\n };\r\n\r\n async initialPageLoad() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberName = this.commonService.getLoggedInUserName();\r\n this.approved = false;\r\n await this.callMemberRoleandFeature();\r\n this.refreshGrid();\r\n this.grid = new DocumentGridSettings(true);\r\n this.locked = new DocumentGridSettings(false);\r\n }\r\n\r\n setRedirectObjects() {\r\n if (this.data.length > 0 && this.commonService.hasRequestedObject()) {/*Mail Redirection*/\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n let inputDocId = requestedObject['inputDocId'];\r\n let inputRevNo = requestedObject['inputRevNo'];\r\n\r\n if (inputDocId && inputRevNo) {\r\n this.commonService.checkAndDeleteRequestedObject();\r\n let _data = this.data.filter(x => x.docId == inputDocId && x.revision == inputRevNo);\r\n\r\n if (_data.length > 0) {\r\n this.viewDocumentClick(_data[0]);\r\n this.isRedirected = true;\r\n }\r\n else {\r\n this._notificationService.showToast(\"You are not authorized to view the document\", \"Warning\");\r\n }\r\n }\r\n }\r\n\r\n if (this.commonService.hasSearchedObject()) {/*Search Redirection*/\r\n if (this.data.length <= 0) {\r\n this._notificationService.showToast(\"You are not authorized to view the document\", \"Warning\");\r\n return;\r\n }\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('searchedObject')));\r\n let inputdocNo = searchedObject['searchDocNo'];\r\n let inputRevNo = searchedObject['searchRevNo'];\r\n\r\n if (inputdocNo && inputRevNo) {\r\n this.commonService.checkAndDeleteSearchedObject();\r\n let _data = this.data.filter(x => x.documentNo == inputdocNo && x.revision == inputRevNo);\r\n\r\n if (_data.length > 0) {\r\n this.viewDocumentClick(_data[0]);\r\n this.isRedirected = true;\r\n }\r\n else {\r\n this._notificationService.showToast(\"You are not authorized to view the document\", \"Warning\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n getGridData() {\r\n if (this.selectedTabIndex != 0) {\r\n this.viewData = [];\r\n let tab: any = this.viewTabs[this.selectedTabIndex - 1];\r\n this.viewData.push({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n docId: tab.docId,\r\n revisionNo: tab.revision\r\n });\r\n }\r\n if (this.searchList.length > 0) {\r\n this.documentList = this.searchList;\r\n this.dataBinding.skip = 0;\r\n }\r\n else {\r\n this.approvedList = this.data.filter(doc => doc.trans_type == 'Approved');\r\n this.forActionList = this.data.filter(doc => doc.trans_type == 'For Action');\r\n this.rejectedList = this.data.filter(doc => doc.trans_type == 'Rejected');\r\n this.inProgressList = this.data.filter(doc => doc.trans_type == 'In Progress' && doc.isFileAttached != this.isPending);\r\n switch (this.selectedRootIndex) {\r\n case 0:\r\n this.documentList = this.inProgressList;\r\n break;\r\n case 1:\r\n this.documentList = this.forActionList;\r\n break;\r\n case 2:\r\n this.documentList = this.approvedList;\r\n break;\r\n case 3:\r\n this.documentList = this.rejectedList;\r\n break;\r\n default:\r\n this.documentList = this.data;\r\n break;\r\n }\r\n this.dataBinding.skip = 0;\r\n }\r\n }\r\n\r\n /**\r\n * Status Tab Select based Grid Binding\r\n * @param event\r\n *\r\n */\r\n public tabClick(event: { tab: { textLabel: string; }; }) {\r\n if (this.docGrid && this.docGrid._results && this.docGrid._results.length > 0 && this.docGrid._results[0].defaultSelection)\r\n this.docGrid._results[0].defaultSelection.selectedKeys = [];\r\n else if (this.docDynamicGrid && this.docDynamicGrid._results && this.docDynamicGrid._results.length > 0 && this.docDynamicGrid._results[0].defaultSelection)\r\n this.docDynamicGrid._results[0].defaultSelection.selectedKeys = [];\r\n //Reset the isselected flag as false\r\n this.documentList.forEach(x => x.isSelected = false);\r\n this.searchList = [];\r\n this.canApprove = (event.tab.textLabel === 'For Action');\r\n this.showInProgress = (event.tab.textLabel === 'In Progress');\r\n this.getDocumentList1(event.tab.textLabel);\r\n if (event.tab.textLabel === 'Issued') {\r\n this.foraction = false;\r\n this.inprogress = false;\r\n this.landingall = false;\r\n this.approved = false;\r\n this.rejected = false;\r\n this.issued = true;\r\n } else if (event.tab.textLabel === 'For Action') {\r\n this.foraction = true;\r\n this.inprogress = false;\r\n this.landingall = false;\r\n this.approved = false;\r\n this.rejected = false;\r\n this.issued = false;\r\n } else if (event.tab.textLabel === 'In Progress') {\r\n this.foraction = false;\r\n this.inprogress = true;\r\n this.landingall = false;\r\n this.approved = false;\r\n this.rejected = false;\r\n this.issued = false;\r\n } else if (event.tab.textLabel === 'Approved') {\r\n this.foraction = false;\r\n this.inprogress = false;\r\n this.landingall = false;\r\n this.approved = true;\r\n this.rejected = false;\r\n this.issued = false;\r\n } else if (event.tab.textLabel === 'All') {\r\n this.foraction = false;\r\n this.inprogress = false;\r\n this.landingall = true;\r\n this.approved = false;\r\n this.rejected = false;\r\n this.issued = false;\r\n } else if (event.tab.textLabel === 'Rejected') {\r\n this.foraction = false;\r\n this.inprogress = false;\r\n this.landingall = false;\r\n this.approved = false;\r\n this.rejected = true;\r\n this.issued = false;\r\n }\r\n this.getGridData();\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n getDocumentList1(textLabel: string) {\r\n if (textLabel != 'In Progress') {\r\n this.documentList = (this.data.filter(doc => doc.trans_type == textLabel && doc.isFileAttached != this.isPending));\r\n }\r\n else if (textLabel == 'In Progress') {\r\n this.documentList = (this.data.filter(doc => doc.trans_type == textLabel));\r\n }\r\n else {\r\n this.documentList = this.data;\r\n }\r\n }\r\n\r\n /**\r\n * Button Type function changes\r\n * @param val\r\n */\r\n public onValChange(val: string) {\r\n this.searchList = [];\r\n //Reset the isselected flag as false\r\n this.documentList.forEach(x => x.isSelected = false);\r\n this.buttonType = val;\r\n this.refreshGrid();\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n /**\r\n * Data Binding in Grid\r\n * @param type\r\n *\r\n */\r\n public async refreshGrid() {\r\n let inputDocId = null;\r\n let inputdocNo = null;\r\n let inputRevNo = null;\r\n if (this.commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n inputDocId = requestedObject['inputDocId'];\r\n inputRevNo = requestedObject['inputRevNo'];\r\n this.selectedRootIndex = 4;\r\n }\r\n if (this.commonService.hasSearchedObject()) {\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('searchedObject')));\r\n inputdocNo = searchedObject['searchDocNo'];\r\n inputRevNo = searchedObject['searchRevNo'];\r\n this.selectedRootIndex = 4;\r\n }\r\n let inputModel: IDocumentListInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: this.buttonType,\r\n createdFromDays: this.LastViewingRecords,\r\n docId: inputDocId == null ? inputDocId : +inputDocId,\r\n docNo: inputdocNo,\r\n revisionNo: inputRevNo\r\n }\r\n this.data = await this._docService.getDocumentList(inputModel).toPromise();\r\n this.dataglobal = this.data;\r\n this.data.forEach(x => x.isSelected = false);\r\n\r\n if (this.isLatest) {\r\n this.data = this.data.filter(doc => doc.isLatest == true);\r\n }\r\n\r\n if (this.data && this.data[0].dynamicHeader) {\r\n this.dynamicHeader = this.data[0].dynamicHeader.split('~');\r\n this.data.forEach(x => {\r\n x.dynamicValue = x.dynamicValue ? x.dynamicValue.split('~') : null;\r\n this.dynamicHeader.forEach((value, index) => {\r\n if (x.dynamicValue)\r\n x['dynamicValue' + index] = x.dynamicValue[index];\r\n });\r\n });\r\n }\r\n\r\n this.getGridData();\r\n this.setRedirectObjects();\r\n }\r\n\r\n\r\n public downloadTemplate = async () => {\r\n this.loaderService.isLoading.next(true);\r\n let _apiURL = environment.uriHost + this.uris.downloadFile;\r\n let fileData = { projectId: this.projectId, groupId: this.groupId, memberId: this.memberId }\r\n\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n\r\n let download$: Observable = this.http.post(_apiURL, fileData, { 'headers': headers, responseType: 'blob' });\r\n download$.subscribe(\r\n (data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.setAttribute('style', 'display:none;');\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = 'Edms_excel_upload.xlsx';\r\n downloadLink.target = '_blank';\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n },\r\n (err: any) => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading Template, try after some time\", \"Warning\");\r\n });\r\n }\r\n\r\n handleClick() {\r\n this.file.nativeElement.click();\r\n }\r\n\r\n addAttachment(event: any) {\r\n this.loaderService.isLoading.next(true);\r\n if (event.target.files[0].type != this.acceptFileTypes) {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showPopup(\"File type is incorrect(*.xlsx file type expected)\", \"Warning\");\r\n this.file.nativeElement.value = '';\r\n return;\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('DocumentExcelTemplate', event.target.files[0], event.target.files[0].name);\r\n formData.append('ProjectId', this.projectId.toString());\r\n formData.append('GroupId', this.groupId.toString());\r\n formData.append('MemberId', this.memberId.toString());\r\n let _UploadDocumentExcelTemplate = this._docService.UploadDocumentExcelTemplate(formData).subscribe((res: IDocumentExcelUploadModel[]) => {\r\n this.loaderService.isLoading.next(false);\r\n if (res.length > 0) {\r\n let dialogRef = this.dialog.open(ExceluploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: res,\r\n });\r\n let _excelUploadComponent = dialogRef.afterClosed().subscribe((res: any) => {\r\n this.ngOnInit();\r\n });\r\n this.UnsubscribeArray.push(_excelUploadComponent);\r\n }\r\n else {\r\n this._notificationService.showPopup(\"No Records Found / Invalid File\", \"Warning\");\r\n }\r\n this.file.nativeElement.value = '';\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this.file.nativeElement.value = '';\r\n this._notificationService.showToast(\"Error in upload Template\", \"Warning\");\r\n })\r\n this.UnsubscribeArray.push(_UploadDocumentExcelTemplate);\r\n }\r\n private processFile = async (inputFile: Blob) => {\r\n const temporaryFileReader = new FileReader();\r\n return new Promise((resolve, reject) => {\r\n temporaryFileReader.readAsArrayBuffer(inputFile);\r\n temporaryFileReader.onload = (event: any) => {\r\n resolve(event.target['readyState'] == FileReader.DONE ? (new Uint8Array(event.target['result'])) : null);\r\n };\r\n });\r\n };\r\n\r\n /**Lastviewrecords change */\r\n public lastviewingrecordsmethod(event: any) {\r\n if (event == \"All\") {\r\n this.LastViewingRecords = 0;\r\n this.refreshGrid();\r\n this.LastViewingRecord = \"All\";\r\n }\r\n else {\r\n this.LastViewingRecords = event;\r\n this.LastViewingRecord = event;\r\n this.refreshGrid();\r\n }\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n public advanceSearch() {\r\n this.searchList = [];\r\n switch (this.selectedRootIndex) {\r\n case 0:\r\n this.documentList = this.inProgressList;\r\n break;\r\n case 1:\r\n this.documentList = this.forActionList;\r\n break;\r\n case 2:\r\n this.documentList = this.approvedList;\r\n break;\r\n case 3:\r\n this.documentList = this.rejectedList;\r\n break;\r\n default:\r\n this.documentList = this.data;\r\n break;\r\n }\r\n this.isSearch = !this.isSearch;\r\n this.showRevHistory = false;\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n this.state.filter = {\r\n logic: \"and\",\r\n filters: []\r\n };\r\n }\r\n\r\n /**\r\n * Closed Search\r\n * @param event\r\n */\r\n closeAdvSearch(event: any[]) {\r\n this.searchList = event;\r\n // this.isSearch = false;\r\n if (this.searchList.length == 0) {\r\n this._notificationService.showToast(\"Search returned no results\", \"Warning\");\r\n }\r\n else {\r\n this.documentList = this.searchList;\r\n this.dataBinding.skip = 0;\r\n }\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n public openRevHistory(event: { target: any; }, docId: number) {\r\n this.showRevHistory = !this.showRevHistory;\r\n if (this.showRevHistory) {\r\n this.revHistory = {\r\n docId: docId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: this.buttonType\r\n };\r\n }\r\n else {\r\n this.revHistory = null;\r\n }\r\n this.anchorElementPopup = event.target;\r\n }\r\n\r\n public closeRevHistory() {\r\n this.showRevHistory = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n\r\n /**\r\n * Toggle filter\r\n */\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n /**\r\n * Full screen\r\n */\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n /**\r\n * Grid Mouseover function\r\n * @param event\r\n */\r\n onHover(event: Event): void {\r\n if ((event.target as HTMLElement).closest('div.k-grid-content')) {\r\n let _x: any = event.target as HTMLElement;\r\n if (_x) {\r\n const newscrollLeft = _x.closest('div.k-grid-content').scrollLeft;\r\n if (this.lastscrollLeft !== newscrollLeft) {\r\n for (let i = 0; i < this.divIconHover.length; i++) {\r\n this.divIconHover['_results'][i]['nativeElement']['style'].right = (0 - newscrollLeft) + 'px';\r\n }\r\n this.lastscrollLeft = newscrollLeft;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * File attachment for each row documents in grid\r\n * @param data\r\n */\r\n attachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, docId: data.docId, revisionNo: data.revision, moduleName: 'EDMS', libraryName: FileUploadLibrary.Documents, createdBy: this.memberId, documents: [{ value: data.docId, text: data.documentNo, revisionNo: data.revision, task_SNo: 0 }], isEditable: false },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n if (data.authorisedBy == this.memberId) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: data.docId,\r\n RevisionNo: data.revision,\r\n RevisedOn: data.revisedOn,\r\n IsApproved: true,\r\n ApprovedBy: this.memberId\r\n };\r\n let docApprovalattachment = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n // if (res.successCode == 200) {\r\n // this._notificationService.showToast(res.successMessage, \"Success\");\r\n // }\r\n // else if (res.successCode == 500) {\r\n // this._notificationService.showToast(res.successMessage, \"Error\");\r\n // }\r\n });\r\n this.UnsubscribeArray.push(docApprovalattachment);\r\n }\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n viewAttachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectId, docId: data.docId, revisionNo: data.revision, libraryName: FileUploadLibrary.Documents, createdBy: this.memberId, isDeleteEnable: this.canEdit, documentNo: data.documentNo },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n })\r\n }\r\n\r\n viewMessageList(category: number, data: any) {\r\n let inputModel: IDocumentMailInputModel = {\r\n DocId: data.docId,\r\n DocumentNo: data.documentNo,\r\n Category: category,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n MemberId: this.memberId,\r\n TransType: this.buttonType,\r\n revisionNo: null\r\n };\r\n this.dialog.open(DocumentMailListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: inputModel\r\n });\r\n }\r\n\r\n viewDocumentClick(data: any) {\r\n let index = this.viewTabs.indexOf(data);\r\n if (index == -1) {\r\n if (!this.canView) {\r\n this._notificationService.showPopup(\"You do not have View access. Kindly contact Admin\", 'Information');\r\n return;\r\n }\r\n this.viewTabs.push(data);\r\n this.selectedTabIndex = 1;\r\n }\r\n }\r\n\r\n viewDocumentsClick() {\r\n this.documentList.forEach((element: any) => {\r\n if (element.isSelected) {\r\n let index = this.viewTabs.indexOf(element);\r\n if (index == -1) {\r\n this.viewTabs.push(element);\r\n this.selectedTabIndex = 1;\r\n }\r\n }\r\n });\r\n if (this.viewTabs.length == 0) {\r\n this._notificationService.showToast(\"No document is selected\", \"Warning\");\r\n }\r\n }\r\n\r\n /**\r\n * Multiple select of listed documents for approval or reject\r\n * @param event\r\n *\r\n */\r\n onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n }\r\n\r\n public approveAll(isApproved: any) {\r\n this.documentList.forEach(element => {\r\n if (element.isSelected) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: element.docId,\r\n RevisionNo: element.revision,\r\n RevisedOn: this.datepipe.transform(\r\n element.revisedOn,\r\n 'YYYY-MM-dd HH:MM:SS'\r\n ),\r\n IsApproved: isApproved,\r\n ApprovedBy: this.memberId\r\n };\r\n let docApprovalAll = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 && res.successMessage == \"Document Approved Successfully...\") {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 200 && res.successMessage == \"Document Rejected Successfully...\") {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n this.refreshGrid();\r\n });\r\n this.UnsubscribeArray.push(docApprovalAll);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Grid on hover approval function\r\n * @param data\r\n *\r\n */\r\n approvalClick(data: any) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: data.docId,\r\n RevisionNo: data.revision,\r\n RevisedOn: this.datepipe.transform(\r\n data.revisedOn,\r\n 'YYYY-MM-dd HH:MM:SS'\r\n ),\r\n IsApproved: true,\r\n ApprovedBy: this.memberId\r\n };\r\n let docApproveClick = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(docApproveClick);\r\n this.refreshGrid();\r\n }\r\n\r\n /**\r\n * Grid on hover reject function\r\n * @param data\r\n *\r\n */\r\n rejectedClick(data: any) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: data.docId,\r\n RevisionNo: data.revision,\r\n RevisedOn: data.revisedOn,\r\n IsApproved: false,\r\n ApprovedBy: this.memberId\r\n };\r\n let docrejectedClick = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(docrejectedClick);\r\n this.refreshGrid();\r\n }\r\n\r\n public createdocument() {\r\n let dialogRef = this.dialog.open(BulkUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n autoFocus: false,\r\n disableClose: true,\r\n data: { docId: 0, revisionNo: '', isSupersede: false },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n public editDocument(doc: any, isSupersede: boolean) {\r\n let dialogRef = this.dialog.open(BulkUploadComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { docId: doc.docId, revisionNo: doc.revision, isSupersede: isSupersede,docGroupId: doc.groupId },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.refreshGrid();\r\n });\r\n }\r\n\r\n public deleteDocument(doc: any) {\r\n this._notificationService.showPopup('Are you sure you want to delete', 'Confirm').then(msg => {\r\n if (msg == 'yes') {\r\n let reaData = {\r\n \"docId\": doc.docId,\r\n \"revisionNo\": doc.revision,\r\n \"userId\": this.commonService.getLoggedInUserId(),\r\n };\r\n let deleteDoc = this._docService.DeleteDoc(reaData).subscribe((res: any) => {\r\n if (res.successCode == 200) {\r\n this.refreshGrid();\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(deleteDoc);\r\n }\r\n });\r\n }\r\n\r\n public viewTabClick(event: { tab: { textLabel: { docId: any; revision: any; groupId: any; }; }; }) {\r\n let docId = event.tab.textLabel.docId;\r\n let document = this.documentList.find(x => x.docId == docId);\r\n this.viewData = [];\r\n if (document && this.selectedTabIndex != 0) {\r\n this.viewData.push({\r\n projectId: this.projectId,\r\n groupId: event.tab.textLabel.groupId,\r\n docId: event.tab.textLabel.docId,\r\n revisionNo: event.tab.textLabel.revision,\r\n canShare: document.trans_type == 'Approved',\r\n trans_type: document.trans_type\r\n });\r\n }\r\n }\r\n\r\n public closeViewTab(tab: { docId: any; }) {\r\n this.viewTabs.forEach(async (value: { docId: any; revision: any; }, index: any) => {\r\n if (value.docId == tab.docId) {\r\n let delindex = index;\r\n this.viewTabs.splice(index, 1);\r\n let input: IDocReceiverStatus = {\r\n doc_Id: value.docId,\r\n member_Id: this.memberId,\r\n is_Read: 'Y',\r\n read_On: new Date(),\r\n revisionNo: value.revision\r\n };\r\n let setreposhistory = await this._docService.setRepoHistoryStatus(input).subscribe((res: any) => {\r\n });\r\n this.UnsubscribeArray.push(setreposhistory);\r\n this.selectedTabIndex = delindex + 1;\r\n this.refreshGrid();\r\n }\r\n });\r\n }\r\n\r\n employeecart() {\r\n if (this.shareDocList.length > 0) {\r\n const dialogRef = this.dialog.open(EmployeeCartDialogComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.projectId, groupId: this.groupId, docList: this.shareDocList, userId: this.memberId }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please Select Atleast One Document\", \"Warning\");\r\n }\r\n }\r\n\r\n shareDocumentList() {\r\n this.shareDocList = [];\r\n let selectedDocList = this.documentList.filter(x => x.isSelected);\r\n selectedDocList.filter(x => x.trans_type == 'Approved').forEach(element => {\r\n let index = this.shareDocList.indexOf(element);\r\n if (index == -1) {\r\n this.shareDocList.push({ docId: element.docId, revision: element.revision });\r\n }\r\n });\r\n if (selectedDocList.length == this.shareDocList.length) {\r\n this.employeecart();\r\n }\r\n else {\r\n this._notificationService.showToast(\"Only Approved Documents can be shared\", \"Warning\");\r\n }\r\n }\r\n\r\n shareDocument(dataItem: any) {\r\n this.shareDocList = [];\r\n if (dataItem.trans_type == 'Approved') {\r\n let index = this.shareDocList.indexOf(dataItem);\r\n if (index == -1) {\r\n this.shareDocList.push({ docId: dataItem.docId, revision: dataItem.revision });\r\n }\r\n this.employeecart();\r\n }\r\n else {\r\n this._notificationService.showToast(\"Document has not been approved\", \"Warning\");\r\n }\r\n }\r\n ViewDocReview(val?: any) {\r\n let popup_style;\r\n let width;\r\n let type;\r\n if (!val) {\r\n popup_style = 'mat-dialog-secondary';\r\n width = '90%';\r\n type = '';\r\n } else {\r\n popup_style = 'mat-dialog-primary';\r\n type = 'all';\r\n }\r\n let dialogRef = this.dialog.open(DocumentReviewComponent, {\r\n panelClass: popup_style,\r\n width: width,\r\n data: { inputType: type }\r\n });\r\n dialogRef.afterClosed().subscribe((data: any) => {\r\n if (!!data) {\r\n }\r\n });\r\n\r\n }\r\n createMessageClick(dataItem: any) {\r\n let selectedDocuments = [];\r\n if (dataItem != undefined && dataItem != null) {\r\n let item = {\r\n docId: dataItem.docId,\r\n documentNo: dataItem.documentNo,\r\n title: dataItem.title,\r\n revision: dataItem.revision,\r\n authorisedByName: dataItem.authorisedByName,\r\n createdByName: dataItem.createdBy\r\n }\r\n selectedDocuments.push(item);\r\n }\r\n else {\r\n selectedDocuments = this.documentList.filter(x => x.isSelected).map(x => {\r\n return {\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n authorisedByName: x.authorisedByName,\r\n createdByName: x.createdBy\r\n }\r\n });\r\n }\r\n if (selectedDocuments.length > 0) {\r\n const dialogRef = this.dialog.open(CreateMessageComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createDocumentMail', selectedList: selectedDocuments }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please Select Atleast One Document\", \"Warning\");\r\n }\r\n }\r\n\r\n onGridSettingReload() {\r\n this.getGridSettings();\r\n }\r\n getGridSettings() {\r\n this.searchGridParameters = {\r\n headers: {\r\n AccessFlag: 'N',\r\n LoginAuditNo: this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n },\r\n requestedparamsforgetdatafromDB: {\r\n intUID: 1692687,\r\n intCompanyCode: 1,\r\n intDTCode: 1,\r\n chrDOPTCode: 'V',\r\n strGridID: 'documentLandingGrid'\r\n }\r\n };\r\n this.gridDatafrm = {\r\n \"columnName\": [\r\n 'Document No.',\r\n 'Title',\r\n 'Revision', ,\r\n 'Revised On',\r\n 'Document Date',\r\n 'Created By',\r\n 'Approved By',\r\n 'Status',\r\n 'Reference'\r\n ],\r\n \"fieldName\": [\r\n 'documentNo',\r\n 'title',\r\n 'revision',\r\n 'revisedOn',\r\n 'docDate',\r\n 'createdBy',\r\n 'authorisedByName',\r\n 'status',\r\n 'reference'\r\n ]\r\n };\r\n let getGridSetting = this.commonService.GetGridSettings(this.searchGridParameters)\r\n .subscribe(\r\n (response: any) => {\r\n this.grid = new DocumentGridSettings(true);\r\n response.table.forEach((setting: any) => {\r\n this.grid[setting.mudvD_Field_Name] = (setting.mudvD_Is_ColumnVisible === 'Y') ? true : false;\r\n this.locked[setting.mudvD_Field_Name] = (setting.mudvD_Is_ColumnFreezed === 'Y') ? true : false;\r\n });\r\n }\r\n );\r\n this.UnsubscribeArray.push(getGridSetting);\r\n }\r\n\r\n async callMemberRoleandFeature() {\r\n let memberrolefeature = await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canSupersede = result1.some(data => data.feature_Desc == 'Supersede');\r\n this.canSuperEdit = result1.some(data => data.feature_Desc == 'Super Edit');\r\n this.canSuperEditApprovedDocuments = result1.some(data => data.feature_Desc == 'Super Edit Approved Doc');\r\n this.canEdit = result1.some(data => data.feature_Desc == 'Edit');\r\n this.hasOrgView = result1.some(data => data.feature_Desc == 'Doc Org View');\r\n this.hasSuperView = result1.some(data => data.feature_Desc == 'Doc Super View');\r\n this.canUpload = result1.some(data => data.feature_Desc == 'Upload');\r\n this.canView = result1.some(data => data.feature_Desc == 'View');\r\n this.canDelete = result1.some(data => data.feature_Desc == 'Delete');\r\n this.hasWorkFlowHistory = result1.some(data => data.feature_Desc == 'Workflow History');\r\n this.isBulkDownload = result1.some(data => data.feature_Desc == 'Bulk Download')\r\n });\r\n this.UnsubscribeArray.push(memberrolefeature);\r\n }\r\n\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.documentList\r\n };\r\n return result;\r\n }\r\n\r\n public openRepositoryHistory(dataItem: any) {\r\n if (dataItem.trans_type == 'Approved') {\r\n let dialogRef = this.dialog.open(DocumentRepositoryhistoryDialogComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '50',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n data: { docId: dataItem.docId, revision: dataItem.revision, documentNo: dataItem.documentNo, }\r\n });\r\n dialogRef.afterClosed().subscribe((data: any) => {\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Document has not been approved\", \"Warning\");\r\n }\r\n }\r\n\r\n gridSettings() {\r\n this._DynamickendoService.gridSettings(this.docGrid, this._Url);\r\n }\r\n DynamicgridSettings() {\r\n this._DynamickendoService.gridSettings(this.docDynamicGrid, this._Url);\r\n }\r\n\r\n GetGridsettigs() {\r\n let getGridsettings = this._DynamickendoService.GetGridSettings(this._Url).subscribe((res: any) => {\r\n this.grdSettings = res;\r\n if (this.grdSettings && this.grdSettings.length > 0 && this.grdSettings[0].sort)\r\n this.sort = JSON.parse(this.grdSettings[0].sort);\r\n });\r\n this.UnsubscribeArray.push(getGridsettings);\r\n }\r\n\r\n public HelpUrlClick() {\r\n let x = JSON.parse(this.commonService.getSessionStorageItem(\"Menu\"))\r\n let url = x.filter((y: { menuDesc: string; }) => y.menuDesc == \"Repository Documents\")[0].helpUrl\r\n if (url) {\r\n window.open(url);\r\n if (url) { window.open(url); }\r\n }\r\n }\r\n getDynamicForm() {\r\n this.searchTypeList = [];\r\n this.searchTypeList.push(\r\n { value: 0, description: 'Document Number' },\r\n { value: 1, description: 'Document Title' },\r\n { value: 2, description: 'Attachments' },\r\n { value: 3, description: 'Created By' },\r\n { value: 4, description: 'Approved By' },\r\n { value: 5, description: 'Status' },\r\n { value: 6, description: 'Reference' },\r\n { value: 7, description: 'Comments' }\r\n );\r\n let GetprojectElements = this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: 1, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.projectElements.forEach(element => {\r\n if (element.elementDescription != 'Project Code') {\r\n this.searchTypeList.push({ value: element.elementId, description: element.elementDescription });\r\n }\r\n });\r\n this.regConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n field = {\r\n de_id: x.elementId,\r\n module_id: 1,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select'\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.regConfig;\r\n this.dynamicForm.createControl();\r\n });\r\n this.UnsubscribeArray.push(GetprojectElements);\r\n }\r\n getStartDateValue(selectedText) {\r\n this.start = selectedText;\r\n }\r\n getEndDateValue(selectedText) {\r\n this.end = selectedText;\r\n }\r\n search() {\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n\r\n this.freesearch = null;\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInp = this.projectElements.map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription).value;\r\n if (selectedValue == null) {\r\n return null;\r\n }\r\n else {\r\n let result: IProjectElementDetailsOutput = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n }\r\n });\r\n let searchText = this.searchForm.controls['ctrlSearchText'].value;\r\n let type = this.searchForm.controls['ctrlType'].value;\r\n let revision = this.searchForm.controls['ctrlRevision'].value;\r\n let start = new Date(this.start);\r\n let end = new Date(this.end);\r\n let diff = Math.abs(start.getTime() - end.getTime());\r\n let diffDays = Math.ceil(diff / (1000 * 3600 * 24));\r\n if (!!searchText && searchText != '' && !!type) {\r\n let inputModel: IDocumentDynamicSearchModel = {\r\n projectId: this.projectId,\r\n memberId: this.memberId,\r\n docNo: type == 'Document Number' ? searchText : null,\r\n docTitle: type == 'Document Title' ? searchText : null,\r\n groupId: this.groupId,\r\n revisionNo: revision,\r\n docStatus: type,\r\n createdType: (moment(this.start)).format('DD/MM/YYYY'),\r\n createdPeriod: diffDays,\r\n searchText: searchText\r\n };\r\n this.freesearch = inputModel;\r\n }\r\n this.searchdynamic();\r\n }\r\n async searchdynamic() {\r\n this.approved = false;\r\n this.tempdata = [];\r\n this.onlyded = [];\r\n this.tempdata = this.dataglobal;\r\n let fromDate!: Date;\r\n let toDate!: Date;\r\n if (this.start && this.end) {\r\n let startDate = (moment(this.start)).format('DD/MM/YYYY');\r\n let endDate = (moment(this.end)).format('DD/MM/YYYY');\r\n let d1 = startDate.split(\"/\");\r\n let d2 = endDate.split(\"/\");\r\n let from = new Date(parseInt(d1[2]), parseInt(d1[1]) - 1, parseInt(d1[0])); // -1 because months are from 0 to 11\r\n let to = new Date(parseInt(d2[2]), parseInt(d2[1]) - 1, parseInt(d2[0]));\r\n fromDate = from;\r\n toDate = to;\r\n this.tempdata = this.tempdata.filter(x => {\r\n let c = x.revisedOn.split(\".\");\r\n let check = new Date(c[0], parseInt(c[1]) - 1, c[2]);\r\n if (check >= from && check <= to) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n }\r\n if (this.elementInp.length > 0) {\r\n this.elementInp.forEach(x => {\r\n if (x != null)\r\n this.onlyded.push(x.dedShortDescription + ' - ' + x.dedDescription);\r\n else\r\n this.onlyded.push(null);\r\n });\r\n }\r\n //let dynamiclength = this.tempdata[0].dynamicValue.length;\r\n let dynamiclength = this.dynamicHeader.length;\r\n let inputModel!: IDocumentListInputModel\r\n if (this.freesearch) {\r\n if (this.freesearch.docStatus == \"Document Number\") {\r\n this.tempdata = this.tempdata.filter(x => x.documentNo.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim()));\r\n if (this.tempdata && this.tempdata.length <= 0) {\r\n inputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: this.buttonType,\r\n createdFromDays: 0,\r\n docId: null,\r\n docNo: this.freesearch.searchText.trim(),\r\n revisionNo: null\r\n }\r\n }\r\n }\r\n if (this.freesearch.docStatus == \"Document Title\") {\r\n //this.tempdata = this.tempdata.filter(x => x.title.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim()));\r\n // if(this.tempdata && this.tempdata.length<=0)\r\n // {\r\n // inputModel = {\r\n\r\n // }\r\n // }\r\n inputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: this.buttonType,\r\n docTitle: this.freesearch.searchText.trim(),\r\n fromDate: fromDate ? fromDate : null,\r\n toDate: toDate ? toDate : null\r\n }\r\n }\r\n\r\n if (this.freesearch.docStatus == \"Attachments\") {\r\n this.tempdata = this.tempdata.filter(x =>\r\n x.fileName ?\r\n x.fileName.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim()) : false);\r\n }\r\n if (this.freesearch.docStatus == 'Created By') {\r\n this.tempdata = this.tempdata.filter(x => x.createdBy.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim()));\r\n }\r\n if (this.freesearch.docStatus == 'Approved By') {\r\n this.tempdata = this.tempdata.filter(x => x.authorisedByName.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim()));\r\n }\r\n if (this.freesearch.docStatus == 'Status') {\r\n this.tempdata = this.tempdata.filter(x => x.trans_type.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim()));\r\n }\r\n if (this.freesearch.docStatus == 'Reference') {\r\n // this.tempdata = this.tempdata.filter(x => {\r\n // if (x.reference)\r\n // return x.reference.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim());\r\n // });\r\n inputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: this.buttonType,\r\n reference: this.freesearch.searchText.trim(),\r\n fromDate: fromDate ? fromDate : null,\r\n toDate: toDate ? toDate : null\r\n }\r\n }\r\n if (this.freesearch.docStatus == 'Comments') {\r\n this.tempdata = this.tempdata.filter(x => {\r\n if (x.comments)\r\n return x.comments.toUpperCase().trim().includes(this.freesearch.searchText.toUpperCase().trim());\r\n });\r\n }\r\n }\r\n if (inputModel) {\r\n await this._docService.getDocumentList(inputModel).toPromise().then((res: any) => {\r\n this.tempdata = res;\r\n this.checkFilterDocuments(dynamiclength);\r\n })\r\n }\r\n else {\r\n this.checkFilterDocuments(dynamiclength);\r\n }\r\n this.refreshGridsearch();\r\n this.grid = new DocumentGridSettings(true);\r\n this.locked = new DocumentGridSettings(false);\r\n this.getGridData();\r\n this.GetGridsettigs();\r\n }\r\n checkFilterDocuments(dynamiclength) {\r\n if (this.dynamicHeader) {\r\n for (let i = 0; i < dynamiclength; i++) {\r\n if (this.onlyded[i] != null && this.onlyded[i] != \"\") {\r\n this.tempdata = this.tempdata.filter(x => x.dynamicValue && x.dynamicValue.length > 0 ? x.dynamicValue.split('~')[i] == this.onlyded[i] : false);\r\n }\r\n }\r\n }\r\n if (this.tempdata.length > 0) {\r\n this.data = this.tempdata;\r\n this.searchList = [];\r\n this.documentList = [];\r\n }\r\n else {\r\n this._notificationService.showToast(\"No Records Found\", \"Warning\");\r\n this.data = [];\r\n this.searchList = [];\r\n this.documentList = [];\r\n }\r\n }\r\n public async refreshGridsearch() {\r\n let inputDocId = null;\r\n let inputdocNo = null;\r\n let inputRevNo = null;\r\n if (this.commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n inputDocId = requestedObject['inputDocId'];\r\n inputRevNo = requestedObject['inputRevNo'];\r\n this.selectedRootIndex = 4;\r\n }\r\n if (this.commonService.hasSearchedObject()) {\r\n var searchedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('searchedObject')));\r\n inputdocNo = searchedObject['searchDocNo'];\r\n inputRevNo = searchedObject['searchRevNo'];\r\n this.selectedRootIndex = 4;\r\n }\r\n\r\n this.data.forEach(x => x.isSelected = false);\r\n if (this.isLatest) {\r\n this.data = this.data.filter(doc => doc.isLatest == true);\r\n }\r\n if (this.data && this.data[0].dynamicHeader) {\r\n this.dynamicHeader = this.data[0].dynamicHeader.split('~');\r\n this.data.forEach(x => {\r\n x.dynamicValue = x.dynamicValue.split('~');\r\n this.dynamicHeader.forEach((value, index) => {\r\n x['dynamicValue' + index] = x.dynamicValue[index];\r\n });\r\n });\r\n }\r\n this.getGridData();\r\n this.setRedirectObjects();\r\n }\r\n\r\n downloadAll_OnClick() {\r\n let selectedDocList = this.documentList.filter(x => x.isSelected);\r\n if (selectedDocList.length > 0) {\r\n let fileToBeDownloadedList: any[] = [];\r\n selectedDocList.forEach(x => {\r\n if (x.isFileAttached) {\r\n fileToBeDownloadedList.push(x);\r\n }\r\n })\r\n if (fileToBeDownloadedList.length > 0) {\r\n let fileInput_DocumentsArray: any[] = [];\r\n fileToBeDownloadedList.forEach((x, index) => {\r\n let fileInput_Documents = {\r\n projectId: this.commonService.getProjectId(),\r\n docId: x.docId,\r\n revisionNo: x.revision\r\n }\r\n fileInput_DocumentsArray.push({ libraryNumber: FileUploadLibrary.Documents, value: JSON.stringify(fileInput_Documents) });\r\n })\r\n this._fileService.DownloadAllFiles(fileInput_DocumentsArray).subscribe((data: any) => {\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = this.commonService.getCurrentProjectDetails().projectCode + \"- \" + formatDate(new Date(), 'dd-MMM-yyyy', 'en-US') + \".zip\";\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, error => {\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"No Attachment is available for the selected document\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this._notificationService.showToast(\"Please Select Documents\", \"Warning\");\r\n }\r\n\r\n }\r\n ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Free Search\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{tab.documentNo}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n In Progress {{inProgressList.length}} \r\n \r\n \r\n \r\n \r\n For Action {{forActionList.length}} \r\n \r\n \r\n \r\n \r\n Approved {{approvedList.length}} \r\n \r\n \r\n \r\n \r\n Rejected {{rejectedList.length}} \r\n \r\n \r\n \r\n \r\n All {{data.length}} \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n My Docs\r\n My Org Docs\r\n All Docs\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Details -

\r\n
\r\n

Viewing last

\r\n \r\n

days records

\r\n
\r\n
\r\n
\r\n
\r\n Pending for\r\n Attachments\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Latest Revision\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse'}}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.dynamicValue[i]}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.docDate| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisedOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.authorisedByName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.trans_type}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.reference}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.comments}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Details -

\r\n
\r\n

Viewing last

\r\n \r\n

days records

\r\n
\r\n
\r\n
\r\n
\r\n Pending for\r\n Attachments\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Latest Revision\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Excel Download\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Excel Upload\r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n {{dataItem.revisedOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n {{dataItem.docDate| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n {{dataItem.trans_type}}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Inject, OnDestroy } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { groupBy } from 'lodash';\r\nimport { IDocumentShareModel, DocumentShareMemberModel, IDocumentShareMailModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\n\r\n\r\n@Component({\r\n selector: 'app-employee-cart-dialog',\r\n templateUrl: './employee-cart-dialog.component.html',\r\n styleUrls: ['./employee-cart-dialog.component.css']\r\n})\r\n\r\nexport class EmployeeCartDialogComponent implements OnInit, OnDestroy {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public docList: any[] =[];\r\n public userId !: number;\r\n memberList: ProjectMemberModel[] = [];\r\n projectSelectedMembers: DocumentShareMemberModel[] = [];\r\n cartDataSource: DocumentShareMemberModel[] = [];\r\n cartSelectedList: any[] =[];\r\n cartRequest = {};\r\n cartSelectedListCopy: any[] =[];\r\n UnsubscribeArray:Subscription[]=[];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public projectMemberLinkService: ProjectMemberLinkService,\r\n private _docService: DocumentService,\r\n private _notificationService: NotificationService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.data['projectId'];\r\n this.groupId = this.data['groupId'];\r\n this.docList = this.data['docList'];\r\n this.userId = this.data['userId'];\r\n this.getMemberList();\r\n this.getSelectedMemberList();\r\n }\r\n\r\n async getMemberList() {\r\n this.memberList = await this.projectMemberLinkService.getSelectedMemberList(this.projectId, this.groupId).toPromise();\r\n this.setCartValues();\r\n }\r\n\r\n async getSelectedMemberList() {\r\n if (this.docList.length == 1) {\r\n this.projectSelectedMembers = await this._docService.getDocumentShareList(this.docList[0].docId, this.docList[0].revision).toPromise();\r\n }\r\n else {\r\n this.projectSelectedMembers = [];\r\n }\r\n if (this.projectSelectedMembers.length > 0) {\r\n this.memberList = this.changeKeyFormat(this.memberList, this.projectSelectedMembers);\r\n }\r\n this.setCartValues();\r\n }\r\n\r\n changeKeyFormat(inputArr:ProjectMemberModel[] = [], alreadySelectedMembers: DocumentShareMemberModel[]) {\r\n let grpdSelectedMembers = groupBy(alreadySelectedMembers, 'memberId');\r\n let outputArr: any[] = [];\r\n inputArr.forEach(eachObj => {\r\n let output:any = {};\r\n output['memberId'] = eachObj['memberId'];\r\n output['memberName'] = eachObj['memberName'];\r\n\r\n if (!(grpdSelectedMembers && grpdSelectedMembers[output['memberId']] && grpdSelectedMembers[output['memberId']].length)) {\r\n outputArr.push(output);\r\n }\r\n });\r\n return outputArr;\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n setCartValues() {\r\n this.cartDataSource = this.removeDuplicates(this.memberList, this.projectSelectedMembers, 'memberId');\r\n this.cartSelectedList = [];\r\n this.cartSelectedListCopy = [];\r\n this.projectSelectedMembers.forEach(eachMember => {\r\n let cartValue = this.getAsCartSelectedValue(eachMember.memberId, eachMember.memberName);\r\n this.cartSelectedList.push(cartValue);\r\n this.cartSelectedListCopy.push(cartValue);\r\n });\r\n this.setCartParams();\r\n }\r\n\r\n removeDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n let filteredArray: any[] = [],\r\n grpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n dataSource.forEach((eachData: any) => {\r\n if (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n filteredArray.push(eachData);\r\n }\r\n });\r\n return filteredArray;\r\n }\r\n\r\n getAsCartSelectedValue(value: string | number, text: string) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text\r\n };\r\n return output;\r\n }\r\n\r\n setCartParams() {\r\n this.cartRequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartSelectedList,\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'memberName',\r\n 'valueField': 'memberId',\r\n 'cartLabel': 'Choose Items',\r\n 'minimumSelectedItemCount': 0\r\n },\r\n 'dataSource': this.cartDataSource,\r\n }\r\n }\r\n\r\n getSelectedCartItems(event: EIPAutoCompleteEventModel[]) {\r\n this.ShareDocuments(event);\r\n }\r\n\r\n ShareDocuments(event: EIPAutoCompleteEventModel[]) {\r\n let successCode = 200;\r\n let successMessage = 'Document Shared Successfully';\r\n this.docList.forEach(element => \r\n {\r\n event.forEach(member => \r\n {\r\n let memberId = +member.value;\r\n let alreadySelectedMember = this.projectSelectedMembers.findIndex(x => x.memberId == memberId);\r\n if (alreadySelectedMember == -1) {\r\n let inputModel: IDocumentShareModel = {\r\n DocId: element.docId,\r\n RevisionNo: element.revision,\r\n MemberId: memberId,\r\n UserId: this.userId\r\n };\r\n let docshare = this._docService.DocumentShare(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode != 200) {\r\n successCode = res.successCode;\r\n successMessage = res.successMessage;\r\n }\r\n });\r\n this.UnsubscribeArray.push(docshare);\r\n }\r\n });\r\n this.projectSelectedMembers.forEach(member => \r\n {\r\n let removedMember = event.findIndex(x => +x.value == member.memberId);\r\n if (removedMember == -1) {\r\n let inputModel: IDocumentShareModel = {\r\n DocId: element.docId,\r\n RevisionNo: element.revision,\r\n MemberId: member.memberId,\r\n UserId: this.userId\r\n };\r\n let docshareselectedmem = this._docService.DocumentShare(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode != 200) {\r\n successCode = res.successCode;\r\n successMessage = res.successMessage;\r\n }\r\n });\r\n this.UnsubscribeArray.push(docshareselectedmem);\r\n }\r\n });\r\n if (successCode == 200) \r\n {\r\n let newMembers = event.filter(x => {\r\n let memberId = +x.value;\r\n if (this.projectSelectedMembers.findIndex(y => y.memberId == memberId) == -1)\r\n return memberId;\r\n }).map(z => +z.value).toString();\r\n let inputModel: IDocumentShareMailModel = {\r\n DocId: element.docId,\r\n RevisionNo: element.revision,\r\n MemberIdString: newMembers,\r\n UserId: this.userId\r\n };\r\n let docsharemail = this._docService.DocumentShareMail(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode != 200) {\r\n successCode = res.successCode;\r\n successMessage = res.successMessage;\r\n }\r\n });\r\n this.UnsubscribeArray.push(docsharemail);\r\n }\r\n });\r\n\r\n if (successCode == 200) {\r\n this._notificationService.showToast(successMessage, \"Success\");\r\n }\r\n else {\r\n this._notificationService.showToast(successMessage, \"Warning\");\r\n }\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy():void\r\n {\r\n this.UnsubscribeArray.forEach(x=>x.unsubscribe());\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Employee Cart\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { IDocumentApprovalModel, IDocumentUploadStatusModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { formatDate } from '@angular/common';\r\n@Component({\r\n selector: 'app-excelupload',\r\n templateUrl: './excelupload.component.html',\r\n styleUrls: ['./excelupload.component.css']\r\n})\r\nexport class ExceluploadComponent implements OnInit {\r\n enableFullscreen = false;\r\n enableFilter = false;\r\n statusList: IDocumentUploadStatusModel[] = [];\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public isShowBulkUpload: boolean = true;\r\n UnsubscribeArray: Subscription[] = [];\r\n\r\n constructor(public commonService: CommonService, private _docService: DocumentService,\r\n private _notificationService: NotificationService, public dialogRef: MatDialogRef, private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public _data: IDocumentUploadStatusModel[]) {\r\n this.statusList = _data;\r\n }\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n\r\n this.isShowBulkUpload = this.statusList.filter(item => item.status == true).length != 0 ? true : false;\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n getStatus(item: IDocumentUploadStatusModel): string {\r\n return item.status ? \"Success\" : \"Fail\";\r\n }\r\n\r\n public showOnlyFailureDetails(dataItem: IDocumentUploadStatusModel, index: number): boolean {\r\n return dataItem.status == false;\r\n }\r\n\r\n\r\n\r\n bulkAttachmentClick(gridData: IDocumentUploadStatusModel[]) {\r\n if (gridData.filter(item => item.status == true).length > 0) {\r\n let documentList: Array = new Array();\r\n let _data = gridData.filter(item => item.status == true);\r\n _data.forEach((dataItem, rowIndex) => {\r\n if (documentList.filter(x => x.value == dataItem.docId).length == 0)\r\n documentList.push({ value: dataItem.docId, text: dataItem.docNo, revisionNo: dataItem.revisionNo, task_SNo: 0, authorisedBy: dataItem.authorisedBy, revisedOn: dataItem.revisedOn });\r\n });\r\n\r\n this.attachmentClick(documentList)\r\n }\r\n }\r\n\r\n attachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '45%',\r\n data: { projectId: this.projectId, docId: data[0].value, revisionNo: data[0].revisionNo, libraryName: FileUploadLibrary.Documents, createdBy: this.memberId, documents: data, isEditable: true, docNo: data[0].text },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n data.forEach((dataItem) => {\r\n // if (dataItem.authorisedBy == this.memberId) {\r\n let inputModel: IDocumentApprovalModel = {\r\n DocId: dataItem.value,\r\n RevisionNo: dataItem.revisionNo,\r\n RevisedOn: formatDate(dataItem.revisedOn, 'dd-MMM-yyyy', 'en-US'),\r\n IsApproved: true,\r\n ApprovedBy: this.memberId\r\n };\r\n let docApprovalattachment = this._docService.DocumentApproval(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this._notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(docApprovalattachment);\r\n //}\r\n });\r\n this.closeDialog();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

Upload Excel Status

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Status
\r\n \r\n
    \r\n
  • \r\n {{error}}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DocumentComponent } from './document/document.component';\r\n\r\nexport const repositoryDocumentRoutes: Routes = [\r\n { path: 'document', component: DocumentComponent, data: { title: 'REPOSITORY DOCUMENTS', isProjectCodeRequired: true } }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(repositoryDocumentRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class RepositorydocumentRoutingModule { }\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit, Inject, OnDestroy } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { result } from 'lodash';\r\nimport { Subscription } from 'rxjs';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { IDocumentMailOutputModel } from 'src/app/ViewModel/DocumentModel';\r\n\r\n@Component({\r\n selector: 'app-attachments-list',\r\n templateUrl: './attachments-list.component.html',\r\n styleUrls: ['./attachments-list.component.css']\r\n})\r\nexport class AttachmentsListComponent implements OnInit,OnDestroy {\r\n public messageId!: number;\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n public Category: any;\r\n public mailsection: boolean = false;\r\n public attachment: boolean = true;\r\n public docNo: string = '';\r\n public mailList: IDocumentMailOutputModel[] = [];\r\n public filteredList: IDocumentMailOutputModel[] = [];\r\n public findMailList: any = {};\r\n public selectedMailType: number = 0;\r\n public show : boolean = false;\r\n UnsubscribeArray:Subscription[]=[];\r\n\r\n constructor(\r\n\r\n public restApiService: RestApiService,\r\n private http: HttpClient,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialog: MatDialog,\r\n public commonService: CommonService,\r\n private _docService: DocumentService,\r\n public notificationService: NotificationService,\r\n public dialogRef: MatDialogRef,\r\n private communicationService: CommunicationService,\r\n ) { }\r\n ngOnInit() {\r\n this.messageId = this.data[\"messageId\"];\r\n this.getMessageList();\r\n this.getDocumentList();\r\n }\r\n public togglePopupDialog() {\r\n this.dialogRef.close();\r\n }\r\n /**\r\n * Data Binding in Grid\r\n * @param type\r\n *\r\n */\r\n public getMessageList() {\r\n let _getMessageAttachmentsList=this.communicationService.getMessageAttachmentsList(this.messageId).subscribe((data: any[]) => {\r\n this.data = data.map(x => {\r\n let result: any = {\r\n messageId: x.messageId,\r\n attachedMessageId: x.attachedMessageId,\r\n };\r\n return result;\r\n });\r\n return result;\r\n });\r\n this.UnsubscribeArray.push(_getMessageAttachmentsList)\r\n }\r\n\r\n /**\r\n * Data Binding in Grid\r\n * @param type\r\n *\r\n */\r\n\r\n viewMessageList(Category: number, Val: any) {\r\n this.Category = Category;\r\n this.docNo = Val.documentNo;\r\n this.findMailList = Val;\r\n this.selectedMailType = this.Category;\r\n this.getMailListtoDp()\r\n }\r\n\r\n async getMailListtoDp() {\r\n let TransType = \"\";\r\n this.mailList = await this._docService.getDocumentMsgList(this.findMailList.docId, this.commonService.getProjectId(),\r\n this.commonService.getLoggedInUserGroupId(), this.commonService.getLoggedInUserId(), TransType, null).toPromise();\r\n if (!!this.mailList) {\r\n this.mailsection = true;\r\n this.attachment = false;\r\n if (this.Category == 2) {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory == 3); \r\n this.show = false; \r\n }\r\n else {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory != 3);\r\n this.show = true;\r\n }\r\n }\r\n }\r\n\r\n filterMailType(event: any) {\r\n if (event.value == 2) {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory == 3);\r\n this.show = false;\r\n }\r\n else {\r\n this.filteredList = this.mailList.filter(x => x.messageCategory != 3);\r\n this.show = true;\r\n }\r\n }\r\n\r\n ViewMail(Val: any) {\r\n this.dialogRef.close(Val);\r\n }\r\n\r\n getSubAttachment(Val: any) {\r\n this.mailsection = false;\r\n this.attachment = false;\r\n let canEdit: boolean = false;\r\n const dialogRef = this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: { projectId: this.commonService.getProjectId(), docId: Val.docId, revisionNo: Val.revision, moduleName: 'EDMS', libraryName: 'Documents', createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: canEdit, documentNo: this.docNo },\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.dialogRef.close();\r\n });\r\n }\r\n \r\n public getDocumentList() {\r\n let _getMessageDocumentsList=this.communicationService.getMessageDocumentsList(this.messageId).subscribe((data: any[]) => {\r\n this.data = data.map(x => {\r\n let result: any = {\r\n messageId: x.messageId,\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n revisedOn: x.revisedOn,\r\n createdBy: x.createdBy,\r\n authorisedBy: x.authorisedBy\r\n };\r\n return result;\r\n });\r\n this.documentList = this.data;\r\n return result;\r\n });\r\n this.UnsubscribeArray.push(_getMessageDocumentsList)\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy()\r\n {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe())\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n ATTACHMENT\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Documents

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n Created By\r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Messages

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n \r\n From\r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n {{dataItem.to}}\r\n \r\n \r\n {{dataItem.status}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Document No : {{docNo}} :

\r\n
\r\n
\r\n \r\n \r\n Mail\r\n Transmittal\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.messageNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.messageSubject}}\r\n \r\n \r\n \r\n \r\n {{dataItem.from}}\r\n \r\n \r\n \r\n \r\n {{dataItem.to}}\r\n \r\n \r\n \r\n \r\n {{dataItem.sentOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.respondBy | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.status}}\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { RespondWorkflowListModel, WtfActionReassignToInputModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { CreateTransmittalComponent } from '../transmittal-creation/transmittal-creation.component';\r\nimport { WorkflowActionModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport * as moment from 'moment';\r\nimport { formatDate } from '@angular/common';\r\nimport { DelayreasonComponent } from '../delay-reason/delayreason/delayreason.component';\r\nimport { ILatestStageDetails } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { WtfActionReassigntoDtnComponent } from '../../workflow/dialogs/wtf-action-reassignto-dtn/wtf-action-reassignto-dtn.component';\r\nimport { WorkflowTemplateStatusInputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { WorkflowAssignedToModel } from 'src/app/ViewModel/WorkflowAssignedToModel';\r\n\r\n@Component({\r\n selector: 'app-bulkdtn',\r\n templateUrl: './bulkdtn.component.html',\r\n styleUrls: ['./bulkdtn.component.css']\r\n})\r\nexport class BulkDTNComponent implements OnInit {\r\n public gridData: any[] = [];\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public isDTNPrepared: boolean = false;\r\n public currentWorkflowDetails!: WorkflowTemplateDialogModel;\r\n public workflowActions: WorkflowActionModel[] = [];\r\n public approveActionDetails: WorkflowActionModel[] = [];\r\n public delayReasonList: any[] = [];\r\n public internalReasonList: any[] = [];\r\n public externalReasonList: any[] = [];\r\n public selectedCmdType!: string;\r\n public dueOn: any;\r\n public comments!: string;\r\n public enableFilter = false;\r\n public LatestStageDetails: ILatestStageDetails[] = [];\r\n public enableFullscreen: boolean = false;\r\n public docNextStepDetails:Observable[]=[];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n public commonService: CommonService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public workflowTemplateService: WorkflowTemplateService,\r\n private notificationService: NotificationService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n\r\n this.delayReasonList = [{ id: 1, commentType: \"Internal Reason\" }, { id: 2, commentType: \"External Reason\" }, { id: 3, commentType: \"Other\" }];\r\n\r\n this.internalReasonList = [{ id: 1, IntrcommentType: \"Multi disciplinary coordination\" }, { id: 2, IntrcommentType: \"Non availability of staff\" },\r\n { id: 3, IntrcommentType: \"Delay in interface input\" }, { id: 4, IntrcommentType: \"Delay in Internal review\" }, { id: 5, IntrcommentType: \"Delayed approval from ECD\" },\r\n { id: 6, IntrcommentType: \"Hardware Issues – Printer / Plotter\" }, { id: 7, IntrcommentType: \"Wrongly entered schedule date\" },\r\n { id: 8, IntrcommentType: \"Drawing released through manual transmittal\" }, { id: 9, IntrcommentType: \"Drawing revised during workflow in progress\" }];\r\n\r\n this.externalReasonList = [{ id: 1, ExtrcommentType: \"Delay in Client Input\" }, { id: 2, ExtrcommentType: \"Delay in Vendor Input\" },\r\n { id: 3, ExtrcommentType: \"Delayed approval from Client / Consultant\" }, { id: 4, ExtrcommentType: \"Delayed receipt of vendor clearance / approval\" }];\r\n\r\n this.filterDocuments();\r\n }\r\n\r\n public filterDocuments() {\r\n this.gridData = [];\r\n this.gridData = this.data.selectedList;\r\n this.gridData.forEach(x => x.isSelected = false);\r\n\r\n this.gridData.forEach(data => {\r\n data.comments = '';\r\n data.delayReason = '';\r\n data.internalReason = '';\r\n data.externalReason = '';\r\n })\r\n\r\n this.isDTNPrepared = false;\r\n this.workflowTemplateService.getWorkflowTemplate(this.gridData[0].workflowId).subscribe((data: WorkflowTemplateDialogModel) => {\r\n this.currentWorkflowDetails = data;\r\n\r\n this.workflowActions = this.currentWorkflowDetails.workflowAction.filter(x => x.task_Id == this.gridData[0].currentTaskId);\r\n this.approveActionDetails = this.workflowActions.filter(item => item.action_Description == 'Approve');\r\n }, err => { this.notificationService.showToast(err, \"Error\"); });\r\n }\r\n\r\n isEnable() {\r\n let selectedList: any[] = [];\r\n\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n selectedList.push(y);\r\n });\r\n\r\n return selectedList.length >= 1 && !this.isDTNPrepared ? true : false;\r\n }\r\n\r\n dtnPreparation() {\r\n let selectedList: any[] = [];\r\n\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n selectedList.push(y);\r\n });\r\n\r\n if (selectedList.length == 0) {\r\n this.notificationService.showToast(\"Please select atleast one document to prepare DTN\", \"Warning\");\r\n return;\r\n }\r\n\r\n this.isDTNPrepared = true;\r\n let recivedData: any;\r\n\r\n selectedList.forEach(data => {\r\n this.dueOn = data.revisedScheduled_On ? data.revisedScheduled_On : data.scheduledOn;\r\n let dueOnDate = formatDate(this.dueOn, 'yyyy-MM-dd', 'en-US');\r\n let today = formatDate(new Date(), \"yyyy-MM-dd\", 'en-US');\r\n if (today > dueOnDate) {\r\n data[\"isDelayed\"] = true;\r\n }\r\n else {\r\n data[\"isDelayed\"] = false;\r\n }\r\n });\r\n\r\n let DelayDocList = selectedList.filter(value => value.isDelayed == true);\r\n if (DelayDocList.length > 0) {\r\n const dialogRef = this.dialog.open(DelayreasonComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: DelayDocList,\r\n });\r\n dialogRef.afterClosed().subscribe((selectedArr: any[]) => {\r\n recivedData = selectedArr;\r\n selectedList.forEach(data => {\r\n selectedArr.forEach(element => {\r\n if (data.documentNumber == element.documentNumber) {\r\n data.selectedCom = element.selectedCom;\r\n data.selectedCmdType = element.selectedCmdType;\r\n }\r\n });\r\n })\r\n if (!!recivedData) {\r\n this.postDtn();\r\n }\r\n });\r\n } else {\r\n this.postDtn();\r\n }\r\n }\r\n\r\n postDtn() {\r\n let selectedList: any[] = [];\r\n let SendMailOnActionCompletionInputModel: any[] = [];\r\n\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n selectedList.push(y);\r\n });\r\n\r\n if (selectedList.length > 0) {\r\n let dialogRef = this.dialog.open(CreateTransmittalComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { selectedList: selectedList, inputType: 'dtnPreparation', WorkflowTemplateDetails: this.currentWorkflowDetails },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data: any) => {\r\n if (data != null && data != undefined) {\r\n for (let i = 0; i < selectedList.length; i++) {\r\n let _respondWorkflowDetails: any = { \"projectId\": 0, \"groupId\": 0, respondWorkflowDetails: [], createdBy: 0, stageDetails: this.LatestStageDetails };\r\n let obj: any = {};\r\n obj[\"documentId\"] = selectedList[i].documentId;\r\n obj[\"revisionNumber\"] = selectedList[i].revisionNo;\r\n obj[\"workflowId\"] = selectedList[i].workflowId;\r\n obj[\"TaskId\"] = selectedList[i].currentTaskId;\r\n obj[\"assignType\"] = selectedList[i].assignedType;\r\n obj[\"memberId\"] = this.memberId;\r\n obj[\"actionPerformed\"] = this.approveActionDetails[0].action_Id;\r\n obj[\"completedBy\"] = this.memberId;\r\n obj[\"statusId\"] = this.approveActionDetails[0].status_Id;\r\n obj[\"completedOn\"] = null;\r\n obj[\"comments\"] = \"\";\r\n obj[\"delayReason\"] = selectedList[i].selectedCom == \"Other\" ? selectedList[i].selectedCmdType : null;\r\n obj[\"internalReason\"] = selectedList[i].selectedCom == \"Internal Reason\" ? selectedList[i].selectedCmdType : null;\r\n obj[\"externalReason\"] = selectedList[i].selectedCom == \"External Reason\" ? selectedList[i].selectedCmdType : null;\r\n obj[\"isFileAvailable\"] = true;\r\n obj[\"taskSlNo\"] = selectedList[i].taskSerialNumber;\r\n obj[\"commentSheetNo\"] = data;\r\n _respondWorkflowDetails.projectId = selectedList[i].projectId;\r\n _respondWorkflowDetails.groupId = selectedList[i].groupId;\r\n _respondWorkflowDetails.createdBy = this.memberId;\r\n _respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n this.assignNextStep(_respondWorkflowDetails, this.approveActionDetails[0], selectedList[i]);\r\n\r\n SendMailOnActionCompletionInputModel.push({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n documentId: selectedList[i].documentId,\r\n documentRevision: selectedList[i].revisionNo,\r\n workflowId: selectedList[i].workflowId,\r\n createdBy: this.memberId,\r\n Doc_Title: selectedList[i].documentTitle,\r\n Doc_No: selectedList[i].documentNumber,\r\n toSendSingleMail: true\r\n });\r\n }\r\n\r\n if(this.docNextStepDetails && this.docNextStepDetails.length>0)\r\n {\r\n let workflowIdList = selectedList.map(x => x.workflowId);\r\n let workflowTemplateDetails:WorkflowTemplateDialogModel[]=[];\r\n if(workflowIdList.length==1)\r\n {\r\n workflowTemplateDetails.push(this.currentWorkflowDetails);\r\n }\r\n else if(workflowIdList.length>1)\r\n {\r\n workflowTemplateDetails.push(this.currentWorkflowDetails);\r\n workflowIdList = workflowIdList.filter(x => x!= this.currentWorkflowDetails.workflow_Id);\r\n if(workflowIdList && workflowIdList.length>0)\r\n {\r\n let uniqueWorkflowId = workflowIdList.filter((x,ind) => workflowIdList.indexOf(x)===ind).join(',');\r\n if(uniqueWorkflowId && uniqueWorkflowId.length>0)\r\n this.workflowTemplateService.getWorkflowTemplateDetails(uniqueWorkflowId).toPromise().then((res:WorkflowTemplateDialogModel[])=>{\r\n res.forEach(async x => {\r\n await workflowTemplateDetails.push(x);\r\n })\r\n })\r\n }\r\n }\r\n \r\n forkJoin(this.docNextStepDetails).subscribe(res => {\r\n let successList:WtfActionReassignToInputModel[]=[];\r\n selectedList.forEach((x,index) => {\r\n if(!!res[index])\r\n {\r\n let val=res[index];\r\n if(val.successCode==200)\r\n {\r\n let isNextStepAva = Boolean(JSON.parse(val.result.toString().split(',')[0]));\r\n let _nextStepId = parseInt(JSON.parse(val.result.toString().split(',')[1]));\r\n let worklfowtemplate:WorkflowTemplateDialogModel = workflowTemplateDetails && workflowTemplateDetails.filter(temp => temp.workflow_Id==x.workflowId).length>0 ? workflowTemplateDetails.filter(temp => temp.workflow_Id==x.workflowId)[0]:null;\r\n let isforReassigment = worklfowtemplate.isForReAssignment;\r\n let stepDetail: WorkflowTemplateStatusInputModel = worklfowtemplate.workflowStatus.filter(x => x.step_Id == _nextStepId)[0];\r\n let isSetpForReassignment = stepDetail ? stepDetail.is_Step_For_Reassignment : false; \r\n if(isNextStepAva && isforReassigment && isSetpForReassignment && !!stepDetail)\r\n {\r\n let nextStepAssignedToRoles: WorkflowAssignedToModel[] = worklfowtemplate.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type==1).filter(r => r.role_Id > 0);\r\n let nextStepAssignedToMember: WorkflowAssignedToModel[] = worklfowtemplate.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type==1).filter(r => r.role_Id == 0 && r.member_Id>0);\r\n if ((!!nextStepAssignedToRoles && nextStepAssignedToRoles.length > 0) || (!!nextStepAssignedToMember && nextStepAssignedToMember.length>0)) {\r\n x['nextStepDetail']=stepDetail;\r\n x['nextStepAssignedToRoles']=nextStepAssignedToRoles && nextStepAssignedToRoles.length>0 ? nextStepAssignedToRoles:null;\r\n x['nextStepAssignedToMember']=nextStepAssignedToMember && nextStepAssignedToMember.length>0 ? nextStepAssignedToMember:null;\r\n successList.push(x);\r\n }\r\n }\r\n }\r\n }\r\n })\r\n if(successList && successList.length>0)\r\n {\r\n let dialogRef1=this.dialog.open(WtfActionReassigntoDtnComponent,{\r\n panelClass: 'mat-dialog-primary',\r\n data: {successList:successList,workflowTemplateDetails:workflowTemplateDetails},\r\n width: '50%'\r\n })\r\n dialogRef1.afterClosed().subscribe(res => {\r\n this.workflowTemplateService.BulkSendMailOnActionCompletion(SendMailOnActionCompletionInputModel).toPromise().then((_res: StandardOutputModel) => {\r\n this.closeDialog();\r\n });\r\n })\r\n }\r\n })\r\n \r\n }\r\n else\r\n {\r\n this.workflowTemplateService.BulkSendMailOnActionCompletion(SendMailOnActionCompletionInputModel).toPromise().then((_res: StandardOutputModel) => {\r\n this.closeDialog();\r\n });\r\n\r\n }\r\n \r\n }\r\n else {\r\n this.notificationService.showToast(\"Failed to create Transmittal\", \"Warning\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n this.isEnable();\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n public assignNextStep(_respondWorkflowDetails: any, _action: WorkflowActionModel, _doclist: RespondWorkflowListModel) {\r\n // this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails).toPromise().then(data => {\r\n // if (!!data) {\r\n // this.notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n // }\r\n // else {\r\n // this.notificationService.showToast(\"Failed to Move Next Step\", \"Error\");\r\n // }\r\n // });\r\n this.docNextStepDetails.push(this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails));\r\n }\r\n\r\n public getFormattedDate(date) {\r\n if (date != null) {\r\n return (moment(date)).format('DD-MMM-yyyy');\r\n }\r\n }\r\n\r\n onHover(_input: any) {\r\n // TODO document why this method 'onHover' is empty\r\n\r\n }\r\n\r\n editRowData(_input: any) {\r\n // TODO document why this method 'editRowData' is empty\r\n }\r\n\r\n UpdateRowData(_input: any) {\r\n // TODO document why this method 'UpdateRowData' is empty\r\n }\r\n\r\n cancelRowData(_input: any) {\r\n // TODO document why this method 'cancelRowData' is empty\r\n }\r\n}","
\r\n
\r\n

Bulk DTN

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentTitle}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.workflowDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.subWorkflowName}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.taskName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.assignedToName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { formatDate } from '@angular/common';\r\nimport { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { BulkDTNComponent } from '../../bulkdtn/bulkdtn.component';\r\n\r\nconst Doccomment_type = (dataItem: any) => new FormGroup({\r\n 'comments': new FormControl(dataItem.comment, [Validators.required])\r\n});\r\n\r\n@Component({\r\n selector: 'app-delayreason',\r\n templateUrl: './delayreason.component.html',\r\n styleUrls: ['./delayreason.component.css']\r\n})\r\n\r\nexport class DelayreasonComponent implements OnInit {\r\n public gridData: any[] = [];\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n\r\n public delayReasonList: any[] = [];\r\n public internalReasonList: any[] = [];\r\n public externalReasonList: any[] = [];\r\n public editedRowIndexDist!: number;\r\n public Doccomment_typeRequired!: boolean | null;\r\n public otherCommentsRequired!: boolean | null;\r\n public selectedDocCommentId!: number;\r\n public formGroup!: FormGroup;\r\n public selectedCmdType!: string;\r\n public setIntrselectedId!: number | null;\r\n public setExtrselectedId!: number | null;\r\n public setWidth: number = 100;\r\n public comments!: string;\r\n public enableFilter = false;\r\n public enableFullscreen: boolean = false;\r\n\r\n public bulkDTNGroupForm!: FormGroup;\r\n @ViewChild('docGrid') docGrid!: GridComponent;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public commonService: CommonService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private notificationService: NotificationService,\r\n private formBuilder: FormBuilder,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.gridData = this.data;\r\n this.gridData.forEach(data => {\r\n data.comments = '';\r\n data.delayReason = '';\r\n data.internalReason = '';\r\n data.externalReason = '';\r\n });\r\n\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n\r\n this.bulkDTNGroupForm = this.formBuilder.group({\r\n formDisciplineList: new FormControl('', Validators.required),\r\n formWFList: new FormControl('', Validators.required),\r\n formStageList: new FormControl('', Validators.required),\r\n formTaskList: new FormControl('', Validators.required),\r\n });\r\n\r\n this.delayReasonList = [{ id: 1, commentType: \"Internal Reason\" }, { id: 2, commentType: \"External Reason\" }, { id: 3, commentType: \"Other\" }];\r\n\r\n this.internalReasonList = [{ id: 1, IntrcommentType: \"Multi disciplinary coordination\" }, { id: 2, IntrcommentType: \"Non availability of staff\" },\r\n { id: 3, IntrcommentType: \"Delay in interface input\" }, { id: 4, IntrcommentType: \"Delay in Internal review\" }, { id: 5, IntrcommentType: \"Delayed approval from ECD\" },\r\n { id: 6, IntrcommentType: \"Hardware Issues – Printer / Plotter\" }, { id: 7, IntrcommentType: \"Wrongly entered schedule date\" },\r\n { id: 8, IntrcommentType: \"Drawing released through manual transmittal\" }, { id: 9, IntrcommentType: \"Drawing revised during workflow in progress\" }];\r\n\r\n this.externalReasonList = [{ id: 1, ExtrcommentType: \"Delay in Client Input\" }, { id: 2, ExtrcommentType: \"Delay in Vendor Input\" },\r\n { id: 3, ExtrcommentType: \"Delayed approval from Client / Consultant\" }, { id: 4, ExtrcommentType: \"Delayed receipt of vendor clearance / approval\" }]\r\n\r\n this.dtnPreparation();\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n setValues(event: { value: any; }, formControlName: string) {\r\n this.bulkDTNGroupForm.get(formControlName)?.setValue(event.value);\r\n }\r\n\r\n async dtnPreparation() {\r\n for (let i = 0; i <= this.gridData.length; i++) {\r\n let dueOn = this.gridData[i].scheduledOn;\r\n let doDate = formatDate(dueOn, 'yyyy-MM-dd', 'en-US');\r\n let today = formatDate(new Date(), \"yyyy-MM-dd\", 'en-US');\r\n if (today > doDate) {\r\n this.gridData[i][\"isDelayed\"] = true;\r\n this.editRowDynamic(i, this.gridData[i]);\r\n }\r\n else {\r\n this.gridData[i][\"isDelayed\"] = false;\r\n this.editRowDynamic(i, this.gridData[i])\r\n }\r\n }\r\n }\r\n\r\n closeDialog(data?: any) {\r\n this.dialogRef.close(data);\r\n }\r\n\r\n onHover(input: any) {\r\n }\r\n\r\n editRowData(input: any) {\r\n }\r\n\r\n UpdateRowData(input: any) {\r\n }\r\n\r\n cancelRowData(input: any) {\r\n input.sender.closeRow(input.rowIndex);\r\n this.setWidth = 100;\r\n }\r\n\r\n editRowDynamic(rowIndex: number, dataItem: any) {\r\n dataItem.Doccomment_typeRequired = null;\r\n dataItem.otherCommentsRequired = null;\r\n this.setWidth = 400;\r\n this.formGroup = Doccomment_type(dataItem);\r\n this.editedRowIndexDist = rowIndex;\r\n if (!!dataItem.delayReason) {\r\n let selectedValue = this.delayReasonList.filter(data => data.commentType == dataItem.delayReason)[0];\r\n this.selectedDocCommentId = selectedValue.id;\r\n }\r\n\r\n if (!!dataItem.internalReason) {\r\n let selectedIntrValue = this.internalReasonList.filter(data => data.IntrcommentType == dataItem.internalReason)[0];\r\n this.setIntrselectedId = selectedIntrValue.id;\r\n }\r\n\r\n if (!!dataItem.externalReason) {\r\n let selectedExValue = this.externalReasonList.filter(data => data.ExtrcommentType == dataItem.externalReason)[0];\r\n this.setExtrselectedId = selectedExValue.id;\r\n }\r\n\r\n if (!!dataItem.comments) {\r\n this.formGroup.get('comments')?.setValue(dataItem.comments)\r\n }\r\n this.docGrid.editRow(rowIndex);\r\n }\r\n\r\n onValueChange(event: { target: { value: any; }; }, dataItem: { [x: string]: any; }) {\r\n dataItem[\"selectedCmdType\"] = event.target.value;\r\n }\r\n\r\n onselectedValueChange(event: { value: string; text: string; }, dataItem: any) {\r\n if (event.value != \"-2\") {\r\n dataItem[\"Doccomment_typeRequired\"] = null;\r\n dataItem[\"otherCommentsRequired\"] = null;\r\n this.Doccomment_typeRequired = null;\r\n this.otherCommentsRequired = null;\r\n if (event.text == \"Internal Reason\") {\r\n dataItem[\"Doccomment_typeRequired\"] = true;\r\n } else if (event.text == \"External Reason\") {\r\n dataItem[\"Doccomment_typeRequired\"] = false;\r\n } else if (event.text == \"Other\") {\r\n dataItem[\"otherCommentsRequired\"] = true;\r\n }\r\n dataItem[\"selectedCom\"] = event.text;\r\n } else {\r\n dataItem[\"delayReason\"] = null;\r\n dataItem[\"Doccomment_typeRequired\"] = null;\r\n dataItem[\"otherCommentsRequired\"] = null;\r\n dataItem[\"selectedCmdType\"] = null;\r\n dataItem[\"internalReason\"] = null;\r\n dataItem[\"externalReason\"] = null;\r\n }\r\n }\r\n\r\n onIntrValueChange(event: { value: string; text: string; }, rowData: any) {\r\n if (event.value != \"-2\") {\r\n rowData[\"selectedCmdType\"] = \"InternalReason -\" + event.text;\r\n this.setExtrselectedId = null;\r\n } else {\r\n rowData[\"selectedCmdType\"] = null;\r\n }\r\n }\r\n\r\n onExtrValueChange(event: { value: string; text: string; }, rowData: any) {\r\n if (event.value != \"-2\") {\r\n rowData[\"selectedCmdType\"] = \"ExternalReason -\" + event.text;\r\n this.setIntrselectedId = null;\r\n } else {\r\n rowData[\"selectedCmdType\"] = null;\r\n }\r\n }\r\n\r\n saveDelayReason() {\r\n let validate = this.gridData.some(data => !data.selectedCom || !data.selectedCmdType);\r\n if (validate) {\r\n this.notificationService.showToast(\"Without fill the delayreason can't be able to proceed further\", \"Warning\")\r\n } else {\r\n this.closeDialog(this.gridData);\r\n }\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n copyDelayReason() {\r\n let isDelayReasonAvilable = this.gridData.some(x => x.selectedCmdType != '' && x.selectedCmdType != null)\r\n if (isDelayReasonAvilable) {\r\n let data = this.gridData.filter(x => x.selectedCmdType != '' && x.selectedCmdType != null)\r\n for (let i = 0; i < this.gridData.length; i++) {\r\n if (this.gridData[i].documentId != data[0].documentId) {\r\n this.gridData[i].Doccomment_typeRequired = data[0].Doccomment_typeRequired;\r\n this.gridData[i].otherCommentsRequired = data[0].otherCommentsRequired;\r\n let selectedComment = data[0].selectedCmdType.split('-');\r\n if (selectedComment.length == 2 && (selectedComment[0].toUpperCase().trim() == \"ExternalReason\".toUpperCase().trim() || selectedComment[0].toUpperCase().trim() == \"InternalReason\".toUpperCase().trim())) {\r\n let isExternalOrInternal = selectedComment[0].toUpperCase().trim() == \"ExternalReason\".toUpperCase().trim() ? \"External Reason\" : \"Internal Reason\";\r\n\r\n if (isExternalOrInternal == 'External Reason') {\r\n this.selectedDocCommentId = 2\r\n let selectedExValue = this.externalReasonList.filter(data => data.ExtrcommentType.toUpperCase().trim() == selectedComment[1].toUpperCase().trim())[0]\r\n this.setExtrselectedId = selectedExValue.id\r\n }\r\n else {\r\n this.selectedDocCommentId = 1\r\n let selectedIntrValue = this.internalReasonList.filter(data => data.IntrcommentType.toUpperCase().trim() == selectedComment[1].toUpperCase().trim())[0]\r\n this.setIntrselectedId = selectedIntrValue.id\r\n }\r\n }\r\n else {\r\n this.selectedDocCommentId = 3\r\n this.gridData[i].selectedCmdType = data[0].selectedCmdType;\r\n }\r\n this.docGrid.editRow(i);\r\n }\r\n }\r\n }\r\n else {\r\n this.notificationService.showToast(\"Fill Delay Reason for atleast one document to copy \", \"Warning\")\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

Delayed Documents

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentTitle}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.workflowDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.subWorkflowName}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.taskName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.assignedToName}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { groupBy } from 'lodash';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { IDocumentListInputModel } from 'src/app/ViewModel/DocumentModel';\r\n\r\n@Component({\r\n selector: 'app-document-cart',\r\n templateUrl: './document-cart.component.html',\r\n styleUrls: ['./document-cart.component.css']\r\n})\r\nexport class DocumentWFCartComponent implements OnInit {\r\n public projectId!: number;\r\n public groupId!: number;\r\n public memberId!: number;\r\n public docType!: string;\r\n public documents: any[] = [];\r\n public filteredDocuments: any[] = [];\r\n selectedDocuments: any[] = [];\r\n cartDataSource: any[] = [];\r\n cartSelectedList: any[] = [];\r\n cartRequest = {};\r\n cartSelectedListCopy: any[] = [];\r\n createdByList: any[] = [];\r\n createdBy: string = '';\r\n authorizedByList: any[] = [];\r\n authorizedBy: string = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private _docService: DocumentService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.docType = 'Repository';\r\n this.getDocumentList();\r\n }\r\n\r\n closeDialog(data?: any) {\r\n this.dialogRef.close(data);\r\n }\r\n\r\n tabClick(value: any) {\r\n this.docType = value;\r\n this.documents = [];\r\n this.createdBy = '';\r\n this.authorizedBy = '';\r\n this.getDocumentList();\r\n }\r\n\r\n async getDocumentList() {\r\n if (this.docType === 'Repository') {\r\n let inputModel: IDocumentListInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: 'MyDocuments',\r\n createdFromDays: 0\r\n }\r\n let documents = await this._docService.getDocumentList(inputModel).toPromise();\r\n this.documents = documents.map((x: { docId: any; documentNo: any; title: any; revision: any; authorisedByName: any; createdBy: any; }) => {\r\n return {\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n authorisedByName: x.authorisedByName,\r\n createdByName: x.createdBy\r\n }\r\n });\r\n }\r\n else {\r\n let documents = await this._scheduleDocService.GetWorkflowPendingDocuments({ project_Id: this.projectId, group_Id: this.groupId }).toPromise();\r\n this.documents = documents.map((x: { doc_Id: any; doc_No: any; doc_Title: any; revision_No: any; authorized_By: any; created_By: any; }) => {\r\n return {\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorized_By,\r\n createdByName: x.created_By\r\n }\r\n });\r\n }\r\n if (this.data != undefined && this.data.length > 0) {\r\n await this.setSelectedDocumentList();\r\n }\r\n this.filterDocuments();\r\n this.setCartValues();\r\n this.setAutocompleteValues();\r\n }\r\n\r\n async setSelectedDocumentList() {\r\n let alreadyselectedDocuments = this.data;\r\n alreadyselectedDocuments = alreadyselectedDocuments.map((x: { docId: any; revision: any; documentNo: any; title: any; }) => {\r\n return {\r\n docId: x.docId,\r\n revision: x.revision,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n authorisedByName: this.documents.filter(y => y.docId == x.docId).length > 0 ? this.documents.filter(y => y.docId == x.docId)[0].authorisedByName : \"\",\r\n createdByName: this.documents.filter(y => y.docId == x.docId).length > 0 ? this.documents.filter(y => y.docId == x.docId)[0].createdByName : \"\"\r\n }\r\n });\r\n this.selectedDocuments = alreadyselectedDocuments.map((x: { docId: any; revision: any; }) => {\r\n let item = this.documents.find(doc => doc.docId == x.docId && doc.revision == x.revision);\r\n if (item != undefined) {\r\n return item;\r\n }\r\n });\r\n this.changeKeyFormat(this.documents, alreadyselectedDocuments);\r\n }\r\n\r\n changeKeyFormat(inputArr: any[], alreadySelectedMembers: []) {\r\n let grpdSelectedMembers = groupBy(alreadySelectedMembers, 'docId');\r\n let outputArr: any[] = [];\r\n inputArr.forEach((eachObj: { [x: string]: string | number; }) => {\r\n if (!(grpdSelectedMembers && grpdSelectedMembers[eachObj['docId']] && grpdSelectedMembers[eachObj['docId']].length)) {\r\n outputArr.push(eachObj);\r\n }\r\n });\r\n return outputArr;\r\n }\r\n\r\n setAutocompleteValues() {\r\n if (this.documents.length != 0) {\r\n let result = this.documents.map(x => x.createdByName);\r\n let filteredResult = result.filter((n, i) => result.indexOf(n) === i);\r\n this.createdByList = filteredResult.map(x => {\r\n return { value: x, description: x }\r\n });\r\n let result2 = this.documents.map(x => x.authorisedByName);\r\n let filteredResult2 = result2.filter((n, i) => result2.indexOf(n) === i);\r\n this.authorizedByList = filteredResult2.map(x => {\r\n return { value: x, description: x }\r\n });\r\n }\r\n else {\r\n this.createdByList = [];\r\n this.authorizedByList = [];\r\n }\r\n }\r\n\r\n changeCreatedBy(event: any) {\r\n this.createdBy = event.value != -2 ? event.value : '';\r\n this.filterDocuments();\r\n }\r\n\r\n changeAuthorizedBy(event: any) {\r\n this.authorizedBy = event.value != -2 ? event.value : '';\r\n this.filterDocuments();\r\n }\r\n\r\n filterDocuments() {\r\n if (this.createdBy != '') {\r\n if (this.authorizedBy != '') {\r\n this.filteredDocuments = this.documents.filter(x => x.authorisedByName == this.authorizedBy && x.createdByName == this.createdBy);\r\n }\r\n else {\r\n this.filteredDocuments = this.documents.filter(x => x.createdByName == this.createdBy);\r\n }\r\n }\r\n else if (this.authorizedBy != '') {\r\n if (this.createdBy != '') {\r\n this.filteredDocuments = this.documents.filter(x => x.createdByName == this.createdBy && x.authorisedByName == this.authorizedBy);\r\n }\r\n else {\r\n this.filteredDocuments = this.documents.filter(x => x.authorisedByName == this.authorizedBy);\r\n }\r\n }\r\n else {\r\n this.filteredDocuments = this.documents;\r\n }\r\n this.setCartValues();\r\n }\r\n\r\n setCartValues() {\r\n this.cartDataSource = this.removeDuplicates(this.filteredDocuments, this.selectedDocuments, 'docId');\r\n this.cartSelectedList = [];\r\n this.cartSelectedListCopy = [];\r\n if (this.selectedDocuments[0] != undefined) {\r\n this.selectedDocuments.forEach(eachDoc => {\r\n let cartValue: { value: string, text: string } = this.getAsCartSelectedValue(eachDoc.documentNo, eachDoc.title);\r\n this.cartSelectedList.push(cartValue);\r\n this.cartSelectedListCopy.push(cartValue);\r\n });\r\n }\r\n this.setCartParams();\r\n }\r\n\r\n removeDuplicates(dataSource: any[], selectedArray: any[], key: string) {\r\n let filteredArray: any[] = [],\r\n grpdSelecetedArray = groupBy(selectedArray, key);\r\n\r\n dataSource.forEach((eachData: any) => {\r\n if (!(grpdSelecetedArray[eachData[key]] && grpdSelecetedArray[eachData[key]].length)) {\r\n filteredArray.push(eachData);\r\n }\r\n });\r\n return filteredArray;\r\n }\r\n\r\n getAsCartSelectedValue(value: string | number, text: string) {\r\n value = value.toString().trim();\r\n text = text.trim();\r\n let output = {\r\n value,\r\n text: value + ' - ' + text\r\n };\r\n return output;\r\n }\r\n\r\n setCartParams() {\r\n this.cartRequest = {\r\n 'params': {\r\n 'LockingType': 'P',\r\n 'selectedCartItems': this.cartSelectedList,\r\n },\r\n 'settings': {\r\n 'mode': 'popup',\r\n 'textField': 'title',\r\n 'valueField': 'documentNo',\r\n 'cartLabel': 'Choose Items',\r\n 'minimumSelectedItemCount': 0\r\n },\r\n 'dataSource': this.cartDataSource,\r\n }\r\n }\r\n\r\n getSelectedCartItems(event: any[]) {\r\n this.closeDialog(event);\r\n }\r\n}\r\n","
\r\n
\r\n Document Cart\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Document Type\r\n \r\n Repository\r\n Workflow\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { DataBindingDirective, GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { IDocumentListInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-document-view-grid',\r\n templateUrl: './document-view-grid.component.html',\r\n styleUrls: ['./document-view-grid.component.css']\r\n})\r\nexport class DocumentViewGridComponent implements OnInit {\r\n public documents !:any[];\r\n public docType !:string; \r\n public projectId!:number;\r\n public groupId !:number;\r\n public gridView : any[] =[];\r\n public FilterDataList: any[]=[];\r\n public mySelection: number[] = [];\r\n public items!: any[] ;\r\n public gridViewData !: GridDataResult;\r\n public memberId !: number;\r\n public skip :number = 0;\r\n public selectionAction : any[]=[];\r\n\r\n @ViewChild(DataBindingDirective) directive:any;\r\n @ViewChild('docgrid') docGrid: any;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n private _docService: DocumentService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n ngOnInit() { \r\n this.docType = \"Repository\";\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getDocumentList(); \r\n }\r\n\r\n onDocTypeChange(event:any){\r\n this.docType = event;\r\n this.getDocumentList();\r\n }\r\n\r\n \r\n async getDocumentList() { \r\n if(this.gridView.length > 0){\r\n this.directive.skip = 0;\r\n //Reset the selection while tab changes\r\n this.docGrid.selectionDirective.selectedKeys = [];\r\n //Reset the isselected flag as false\r\n this.gridView.forEach(x => x.isSelected = false);\r\n //Reset the skip count\r\n this.skip = 0;\r\n if(this.selectionAction.length > 0){\r\n this.selectionAction.forEach(x=> x.isSelected = true);\r\n }\r\n }\r\n if (this.docType == 'Repository') { \r\n let inputModel: IDocumentListInputModel = {\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: 'MyDocuments',\r\n createdFromDays: 0,\r\n isExcludeTransmittalDocuments: true\r\n }\r\n this.documents = await this._docService.getDocumentList(inputModel).toPromise();\r\n this.documents = this.documents.map((x,index) => {\r\n return {\r\n itemIndex : index,\r\n docId: x.docId,\r\n documentNo: x.documentNo,\r\n title: x.title,\r\n revision: x.revision,\r\n authorisedByName: x.authorisedByName,\r\n createdByName: x.createdBy\r\n }\r\n }); \r\n if(!!this.data.data){\r\n let documentList = this.documents.filter(data => {\r\n let result:boolean = true;\r\n for(let eleIndex=0;eleIndex {\r\n return {\r\n itemIndex : index,\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorized_By,\r\n createdByName: x.created_By\r\n }\r\n }); \r\n if(!!this.data.data){\r\n let documentList = this.documents.filter(data => {\r\n let result:boolean = true;\r\n for(let eleIndex=0;eleIndex 0) { \r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => { \r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem); \r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { docId: any; revision: any; }; }) => {\r\n for(let i=0;i\r\n
\r\n

Select Document

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Repository Document\r\n Workflow Document\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision}}\r\n \r\n \r\n \r\n \r\n {{dataItem.createdByName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, ComponentRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { TransmittalMsgService } from 'src/app/Service/transmittal/transmittal.service';\r\nimport { ITransmittalDetailsModel, ITransmittalDocumentDetails, ITransmittalElementSLNoInputModel, ITransmittalMailDetails, ITransmittalMsgInputModel, ITransmittalSerialNoInputModel } from 'src/app/ViewModel/TransmittalModel';\r\nimport { formatDate } from '@angular/common';\r\nimport { BehaviorSubject, forkJoin, Observable } from 'rxjs';\r\nimport { TransmittalTemplateComponent } from '../transmittal-template/transmittal-template.component';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { CommonTransmittalTemplateComponent } from '../templates/template_common/transmittal-template-common.component';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { WorkflowActionModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { RespondWorkflowListModel, WtfActionReassignToInputModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { IMsgDocumentAttachmentModel, IMsgElementInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { TransmittalViewComponent } from '../transmittal-view/trasnsmittal-view.component';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { IMemebersViewModel } from 'src/app/ViewModel/MembersModel';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { ILatestStageDetails } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { FileService } from 'src/app/Service/file/file.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { WorkflowTemplateStatusInputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { WorkflowAssignedToModel } from 'src/app/ViewModel/WorkflowAssignedToModel';\r\nimport { WtfActionReassigntoDtnComponent } from '../../workflow/dialogs/wtf-action-reassignto-dtn/wtf-action-reassignto-dtn.component';\r\n\r\nconst componentMapper = {\r\n common: CommonTransmittalTemplateComponent,\r\n //hci:HCITransmittalTemplateComponent\r\n};\r\n@Component({\r\n selector: 'app-dtnrelease',\r\n templateUrl: './dtnrelease.component.html',\r\n styleUrls: ['./dtnrelease.component.css']\r\n})\r\nexport class DTNReleaseComponent implements OnInit {\r\n memberId: number = 0;\r\n projectId!: number;\r\n groupId: number = 0;\r\n transmittalList: ITransmittalDetailsModel[] = [];\r\n public dtnList: any[] = [];\r\n public dtnReleaseForm!: FormGroup;\r\n transmittalForm!: FormGroup;\r\n public projectName!: string;\r\n componentRef!: ComponentRef;\r\n private _transmittalData!: TransmittalTemplateComponent | null;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n elementsConfig: FieldConfig[] = [];\r\n public numElements: Map = new Map();\r\n public numFormat!: string;\r\n public msgNo!: string;\r\n public messageNo!: string;\r\n public MessageId: number | any = null;\r\n public autoSerialNo!: string;\r\n public elementInp: IMsgElementInputModel[] = [];\r\n public isShowSerialNo: boolean = true;\r\n public canManualNo: boolean = false;\r\n public messageElements: any;\r\n public selectedList: any[] = [];\r\n public currentWorkflowDetails!: WorkflowTemplateDialogModel;\r\n public _wfDetails!: RespondWorkflowListModel;\r\n public workflowActions: WorkflowActionModel[] = [];\r\n public approveActionDetails: WorkflowActionModel[] = [];\r\n public gridData: any[] = [];\r\n public originalData: RespondWorkflowListModel[] = [];\r\n documentStatus?: number = 1;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RespondOn: string = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public inputType: string = 'dtnRelease';\r\n public isDTNReleased: boolean = false;\r\n public semiNo: string = '0';\r\n public membersList: IMemebersViewModel[] = [];\r\n public mailReceiverDetails: any[] = [];\r\n public toMember: any[] = [];\r\n public ccMember: any[] = [];\r\n public fromMember: any[] = [];\r\n public delayReasonList: any[] = [];\r\n public internalReasonList: any[] = [];\r\n public externalReasonList: any[] = [];\r\n public today: Date = new Date();\r\n public ishowGrid: boolean = false;\r\n selectedDocCommentId: any;\r\n enableFilter!: boolean;\r\n dueOn: any;\r\n msgId!: number;\r\n isAllworkflow: boolean = false;\r\n LatestStageDetails: ILatestStageDetails[] = [];\r\n private docGrid!: GridComponent;\r\n public groupDetails: any;\r\n public docDetails: any;\r\n public receiverDetails: any;\r\n public transmittalNo: any = null;\r\n public clear: boolean = true;\r\n public currentProject: ProjectViewModel;\r\n private transmittalViewComponent!: TransmittalViewComponent;\r\n private attachmentsList!: IMsgDocumentAttachmentModel[];\r\n public docNextStepDetails: Observable[] = [];\r\n\r\n @ViewChild('docGrid') set Content(Content: GridComponent) {\r\n if (!!Content) {\r\n this.docGrid = Content;\r\n }\r\n }\r\n // @ViewChild(TransmittalTemplateDirective) transmittalHost: TransmittalTemplateDirective;\r\n @ViewChild(\"docSetForm\") dynamicForm!: DynamicFormComponent;\r\n @ViewChild('transmittalViewComponent') set content(content: TransmittalViewComponent) {\r\n if (!!content) { // initially setter gets called with undefined\r\n this.transmittalViewComponent = content;\r\n }\r\n }\r\n\r\n constructor(\r\n private _transmittalService: TransmittalMsgService,\r\n public commonService: CommonService,\r\n private formBuilder: FormBuilder,\r\n private _formBuilder: FormBuilder,\r\n public dialogRef: MatDialogRef,\r\n private notificationService: NotificationService,\r\n private _projService: ProjectInfoService,\r\n private _transmittalMsgService: TransmittalMsgService,\r\n private communicationService: CommunicationService,\r\n public workflowTemplateService: WorkflowTemplateService,\r\n public memberService: ExternalMemberService,\r\n private transmittalService: TransmittalService,\r\n private _fileService: FileService,\r\n private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.currentProject = this.commonService.getCurrentProjectDetails();\r\n this.projectName = this.currentProject.projectCode + ' - ' + this.currentProject.projectDescription;\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.currentProject.projectId;\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n\r\n this.numFormat = 'Auto';\r\n\r\n let getProjectMembers = this.getProjectMembers();\r\n let getCanManualNo = this.callMemberRoleandFeature();\r\n\r\n forkJoin([getProjectMembers, getCanManualNo]).subscribe((res: any[]) => {\r\n this.membersList = res[0];\r\n\r\n this.canManualNo = res[1].some((data: { feature_Desc: string; }) => data.feature_Desc == 'Manual No');\r\n\r\n this.transmittalList = this.data.transmittalList;\r\n let dtnList1 = this.transmittalList.map((element => {\r\n return { \"message_Id\": element.message_Id, \"message_Number\": element.message_Number };\r\n }));\r\n dtnList1 = dtnList1.reduce((accumalator: any, current) => {\r\n if (\r\n !accumalator.some(\r\n (item: any) => item.message_Id === current.message_Id && item.message_Number === current.message_Number\r\n )\r\n ) {\r\n accumalator.push(current);\r\n }\r\n return accumalator;\r\n }, []);\r\n this.dtnList = dtnList1.filter(x => x.message_Number == x.message_Id.toString());\r\n\r\n this.transmittalNo = this.data.selectedCommentSheetNo;\r\n this.originalData = this.data.selectedList;\r\n });\r\n\r\n this.dtnReleaseForm = this.formBuilder.group({\r\n formDTNList: new FormControl('', Validators.required),\r\n });\r\n\r\n this.transmittalForm = this._formBuilder.group({\r\n txtMsgSerialNo: new FormControl({ value: '', disabled: true }),\r\n txtSerialNo: new FormControl({ value: '', disabled: true }, [Validators.pattern(\"^[0-9]*$\")]),\r\n });\r\n\r\n this.delayReasonList = [{ id: 1, commentType: \"Internal Reason\" }, { id: 2, commentType: \"External Reason\" }, { id: 3, commentType: \"Other\" }]\r\n this.internalReasonList = [{ id: 1, IntrcommentType: \"Multi disciplinary coordination\" }, { id: 2, IntrcommentType: \"Non availability of staff\" },\r\n { id: 3, IntrcommentType: \"Delay in interface input\" }, { id: 4, IntrcommentType: \"Delay in Internal review\" }, { id: 5, IntrcommentType: \"Delayed approval from ECD\" },\r\n { id: 6, IntrcommentType: \"Hardware Issues – Printer / Plotter\" }, { id: 7, IntrcommentType: \"Wrongly entered schedule date\" },\r\n { id: 8, IntrcommentType: \"Drawing released through manual transmittal\" }, { id: 9, IntrcommentType: \"Drawing revised during workflow in progress\" }]\r\n this.externalReasonList = [{ id: 1, ExtrcommentType: \"Delay in Client Input\" }, { id: 2, ExtrcommentType: \"Delay in Vendor Input\" },\r\n { id: 3, ExtrcommentType: \"Delayed approval from Client / Consultant\" }, { id: 4, ExtrcommentType: \"Delayed receipt of vendor clearance / approval\" }]\r\n }\r\n\r\n getProjectMembers() {\r\n return this.memberService.GetMembersListAgainstProject({ project_Id: this.projectId });\r\n }\r\n\r\n callMemberRoleandFeature() {\r\n return this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId);\r\n }\r\n\r\n loadGrid() {\r\n return this._transmittalService.GetTransmittalList({ project_id: this.projectId });\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n async onDTNValueChange(event: { value: number | any; }, formControlName: string) {\r\n if (event.value == -2) {\r\n this.clear = false\r\n\r\n return;\r\n }\r\n if (this.clear == false)\r\n this.clear = true;\r\n this.msgId = event.value;\r\n if (formControlName == 'formDTNList') {\r\n if (event.value > 0 && event.value != null) {\r\n this.MessageId = event.value;\r\n this.groupDetails = [];\r\n this.docDetails = [];\r\n this.receiverDetails = [];\r\n\r\n let fileInput_Communication = {\r\n projectId: this.data.projectId,\r\n messageId: this.data.selectedCommentSheetNo\r\n }\r\n\r\n let groupData = this._transmittalService.GetTransmittalGroupMemberDetails(this.MessageId);\r\n let receiverData = this._transmittalService.GetTransmittalReceiverDetails(this.MessageId);\r\n let workflowData = this.workflowTemplateService.getWorkflowTemplate(this.data.workflowId);\r\n let getTransmittalFiles = this._fileService.GetFiles({ libraryNumber: 4, value: JSON.stringify(fileInput_Communication) });\r\n\r\n forkJoin([groupData, receiverData, workflowData, getTransmittalFiles]).subscribe(res => {\r\n this.groupDetails = res[0];\r\n this.docDetails = this.data.transmittalDocumentDetails;\r\n this.receiverDetails = res[1];\r\n this.currentWorkflowDetails = res[2];\r\n this.attachmentsList = res[3];\r\n let filteredDTN: ITransmittalDetailsModel = this.transmittalList.filter(x => x.message_Id == event.value)[0];\r\n this.pushTransmittalTemplateModel(filteredDTN);\r\n this.getDelayReasonDocument();\r\n });\r\n }\r\n }\r\n }\r\n\r\n pushTransmittalTemplateModel(data: ITransmittalDetailsModel) {\r\n if (!!this.receiverDetails && !!this.docDetails && !!this.groupDetails) {\r\n let transDocDetails: ITransmittalDocumentDetails[] = [];\r\n if (!!this.docDetails && !!this.docDetails.transmittalDocumentDetails) {\r\n transDocDetails = this.docDetails.transmittalDocumentDetails;\r\n }\r\n let to = this.receiverDetails.transmittalToDetails[0].member_Id;\r\n let toWithAddress;\r\n if (to) {\r\n let toMember: any[] = this.membersList.filter(x => x.member_Id == to)\r\n if (toMember && toMember.length > 0 && toMember[0].address) {\r\n toWithAddress = toMember[0].member_Name + '
' + toMember[0].address;\r\n }\r\n else if (toMember && toMember.length > 0 && toMember[0].member_Name) {\r\n toWithAddress = toMember[0].member_Name\r\n }\r\n }\r\n else {\r\n toWithAddress = this.receiverDetails.transmittalToDetails.map((x: { member_Name: any; }) => x.member_Name).join(',')\r\n }\r\n let transmittalTemplate: TransmittalTemplateComponent = {\r\n templateName: 'common',\r\n projName: this.projectName,\r\n edrcRef: data.message_Number,\r\n cusRef: data.cust_Ref_No,\r\n docDetails: transDocDetails,\r\n distributionDetails: this.groupDetails,\r\n subject: data.message_Subject,\r\n attention: this.receiverDetails.transmittalToDetails.map((x: { member_Name: any; }) => x.member_Name).join(','),\r\n to: toWithAddress,\r\n date: formatDate(data.created_On, 'dd-MMM-yyyy', 'en-US'),\r\n message_No: data.message_Number,\r\n message_id: data.message_Id,\r\n cc: this.receiverDetails.transmittalCcDetails.map((x: { member_Name: any; }) => x.member_Name).join(','),\r\n From: this.receiverDetails.transmittalFromDetails.map((x: { member_Name: any; }) => x.member_Name).join(','),\r\n workflowId: null,\r\n fileDetails: this.attachmentsList && this.attachmentsList.length > 0 ? this.attachmentsList : []\r\n }\r\n this.mailReceiverDetails.push(this.receiverDetails);\r\n this._transmittalData = null;\r\n this._transmittalData = transmittalTemplate;\r\n this.FillselectedList();\r\n this._transmittalData.workflowId = this.selectedList[0].workflowId;\r\n }\r\n }\r\n\r\n\r\n\r\n setIsShow() {\r\n let styles = {\r\n 'display': this.gridData.length > 0 ? 'block' : 'none',\r\n };\r\n return styles;\r\n }\r\n\r\n getDelayReasonDocument() {\r\n this.transmittalService.GetDocDelayReason(this.msgId).subscribe((data: any[]) => {\r\n data.forEach((Val, i) => {\r\n Val[\"selectedDocCommentId\"] = null;\r\n this.dueOn = Val.scheduledOn;\r\n let doDate = formatDate(this.dueOn, 'yyyy-MM-dd', 'en-US');\r\n let today = formatDate(this.today, \"yyyy-MM-dd\", 'en-US');\r\n if (today > doDate) {\r\n Val[\"isDelayed\"] = true;\r\n }\r\n else {\r\n Val[\"isDelayed\"] = false;\r\n }\r\n })\r\n this.gridData = data.filter(value => value.isDelayed == true);\r\n if (this.gridData.length > 0) {\r\n this.ishowGrid = true;\r\n this.gridData.forEach((x, i) => {\r\n let obj: any = {};\r\n this.docGrid.editRow(i);\r\n if (!!x.delay_Reason) {\r\n x.selectedDocCommentId = 3;\r\n x.comments = x.delay_Reason;\r\n x[\"selectedCmdType\"] = x.delay_Reason;\r\n obj[\"text\"] = x.delay_Reason;\r\n this.onselectedValueChange(obj, x);\r\n } else if (!!x.external_Reason) {\r\n let setSelectValue = x.external_Reason.split('-')\r\n let setSelectedId = this.externalReasonList.filter(value => value.ExtrcommentType == setSelectValue[1])[0];\r\n if (setSelectedId) {\r\n x.setExtrselectedId = setSelectedId.id;\r\n x[\"selectedCmdType\"] = x.external_Reason;\r\n x.selectedDocCommentId = 2;\r\n obj[\"text\"] = x.external_Reason;\r\n }\r\n this.onselectedValueChange(obj, x);\r\n } else if (!!x.internal_Reason) {\r\n let setSelectValue = x.internal_Reason.split('-')\r\n let setSelectedId = this.internalReasonList.filter(value => value.IntrcommentType == setSelectValue[1])[0];\r\n if (setSelectedId) {\r\n x.setIntrselectedId = setSelectedId.id;\r\n x[\"selectedCmdType\"] = x.internal_Reason;\r\n x.selectedDocCommentId = 1;\r\n obj[\"text\"] = x.internal_Reason;\r\n }\r\n this.onselectedValueChange(obj, x);\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n async GenerateDTN() {\r\n this.transmittalForm.get('txtMsgSerialNo')?.valueChanges.subscribe(x => {\r\n this.generateMessageNo();\r\n });\r\n this.transmittalForm.get('txtSerialNo')?.valueChanges.subscribe(x => {\r\n this.generateMessageNo();\r\n })\r\n if (this.MessageId > 0) {\r\n this.messageElements = await this.communicationService.getMessageElementsById(this.MessageId).toPromise();\r\n this.elementInp = this.messageElements.map((x: { deId: any; deDescription: any; dedId: any; dedDescription: any; dedShortDescription: any; }) => {\r\n return {\r\n deId: x.deId,\r\n deDescription: x.deDescription,\r\n dedId: x.dedId,\r\n dedDescription: x.dedDescription,\r\n dedShortDescription: x.dedShortDescription,\r\n sortBy: 1\r\n }\r\n });\r\n this.getDynamicForm();\r\n }\r\n else {\r\n this.notificationService.showPopup(\"Please Select Transmittal No\", \"Warning\");\r\n }\r\n }\r\n\r\n onselectedValueChange(event: { value?: any; text?: any; }, dataItem: any) {\r\n if (event.value != \"-2\") {\r\n dataItem[\"Doccomment_typeRequired\"] = null;\r\n dataItem[\"otherCommentsRequired\"] = null;\r\n if (event.text == \"Internal Reason\") {\r\n dataItem.selectedDocCommentId = 1;\r\n dataItem[\"Doccomment_typeRequired\"] = true;\r\n } else if (event.text == \"External Reason\") {\r\n dataItem.selectedDocCommentId = 2;\r\n dataItem[\"Doccomment_typeRequired\"] = false;\r\n } else if (event.text == \"Other\") {\r\n dataItem.selectedDocCommentId = 3;\r\n dataItem[\"otherCommentsRequired\"] = true;\r\n }\r\n dataItem[\"selectedCom\"] = event.text;\r\n } else {\r\n dataItem[\"delayReason\"] = null;\r\n dataItem[\"Doccomment_typeRequired\"] = null;\r\n dataItem[\"otherCommentsRequired\"] = null;\r\n dataItem[\"selectedCmdType\"] = null;\r\n dataItem[\"internalReason\"] = null;\r\n dataItem[\"externalReason\"] = null;\r\n }\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n onIntrValueChange(event: { value: string; text: string; }, rowData: any) {\r\n if (event.value != \"-2\") {\r\n rowData[\"selectedCmdType\"] = \"InternalReason - \" + event.text;\r\n } else {\r\n rowData[\"selectedCmdType\"] = null;\r\n }\r\n }\r\n\r\n onExtrValueChange(event: { value: string; text: string; }, rowData: any) {\r\n if (event.value != \"-2\") {\r\n rowData[\"selectedCmdType\"] = \"ExternalReason - \" + event.text;\r\n } else {\r\n rowData[\"selectedCmdType\"] = null;\r\n }\r\n }\r\n\r\n onValueChange(event: { target: { value: any; }; }, dataItem: any) {\r\n dataItem[\"selectedCmdType\"] = event.target.value;\r\n }\r\n\r\n getDynamicForm() {\r\n this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.Transmittal, IsQueryForStaticElement: false }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n this.projectElements = res;\r\n this.elementsConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.Transmittal,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n }\r\n if (x.isMandatory) {\r\n field.validations = [\r\n {\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: field.name + \" is Required\"\r\n }\r\n ]\r\n }\r\n if (x.isNumbering) {\r\n this.numElements.set(x.elementDescription, '');\r\n }\r\n let dedValue = this.messageElements.find((el: { deId: number; }) => el.deId == x.elementId);\r\n if (!!dedValue) {\r\n field.value = new BehaviorSubject(dedValue.dedId);\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n //Numbering elements array\r\n let numberingElements: string[] = Array.from(this.numElements.keys());\r\n numberingElements.forEach(element => {\r\n resForm.get(element)?.valueChanges.subscribe(x => {\r\n if (!!x && (this.numFormat == 'Auto' || this.numFormat == 'Semi')) {\r\n if (this.numElements.has(element)) {\r\n if (!!x)\r\n this.numElements.set(element, x.dedShortDescription);\r\n else\r\n this.numElements.set(element, '');\r\n }\r\n this.GetMessageSerialNo();\r\n }\r\n });\r\n });\r\n this.onCascadingAutocomplete_Change();\r\n });\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach((data: any) => {\r\n if (!!data.child_de_id) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe(x => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n this._projService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n }\r\n else {\r\n _field[0].values = [];\r\n\r\n }\r\n }, err => { });\r\n }\r\n else {\r\n _field[0].values = [];\r\n\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n private generateMessageNo() {\r\n let serialNo: any = this.getFormValue('txtSerialNo', this.transmittalForm);\r\n this.messageNo = this.getFormValue('txtMsgSerialNo', this.transmittalForm);\r\n if (!!serialNo) {\r\n this.messageNo = this.messageNo + \"-\" + this.getFormValue('txtSerialNo', this.transmittalForm);\r\n }\r\n let filteredDTN: ITransmittalDetailsModel = this.transmittalList.filter(x => x.message_Id == this.MessageId)[0];\r\n filteredDTN.message_Number = this.messageNo;\r\n this.pushTransmittalTemplateModel(filteredDTN);\r\n }\r\n GetMessageSerialNo() {\r\n //Coin the Document number based on the element values selection changes\r\n let elementValues: string[] = Array.from(this.numElements.values());\r\n let selectedElementValues: string[] = elementValues.filter(val => val != '');\r\n this.msgNo = elementValues.filter(val => val != '').join('-');\r\n this.transmittalForm.get('txtMsgSerialNo')?.setValue(this.msgNo);\r\n //Ensure all the mandatory numering elements selected\r\n if (elementValues.length > 0 && elementValues.length == selectedElementValues.length) {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInp = this.projectElements.filter(x => x.isNumbering && !!resForm.get(x.elementDescription)?.value).map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let result: ITransmittalElementSLNoInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n }\r\n return result;\r\n }\r\n });\r\n let inputModel: ITransmittalSerialNoInputModel = { projectId: this.commonService.getProjectId(), groupId: this.groupId, moduleId: Module.Transmittal, elementDetails: this.elementInp };\r\n this._transmittalMsgService.getTransmittalSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n //Set manipulated value from the parent component(W.r.t other documents elements selection while bulk upload)\r\n this.transmittalForm.get('txtSerialNo')?.setValue(String(result.result).padStart(5, '0'));\r\n });\r\n }\r\n }\r\n\r\n onNumFormatChange(value: string) {\r\n this.numFormat = value;\r\n this.messageNo = '';\r\n this.isShowSerialNo = this.numFormat == 'Auto' || this.numFormat == 'Semi';\r\n\r\n if (this.numFormat == 'Auto') {\r\n this.transmittalForm.get('txtMsgSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtMsgSerialNo')?.disable();\r\n this.transmittalForm.get('txtSerialNo')?.disable();\r\n\r\n } else if (this.numFormat == 'Semi') {\r\n this.transmittalForm.get('txtMsgSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtSerialNo')?.enable();\r\n this.transmittalForm.get('txtMsgSerialNo')?.disable();\r\n\r\n }\r\n else if (this.numFormat == 'Manual') {\r\n this.transmittalForm.get('txtMsgSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtMsgSerialNo')?.enable();\r\n this.transmittalForm.get('txtSerialNo')?.disable();\r\n }\r\n\r\n let filteredDTN: ITransmittalDetailsModel = this.transmittalList.filter(x => x.message_Id == this.MessageId)[0];\r\n filteredDTN.message_Number = '';\r\n this.pushTransmittalTemplateModel(filteredDTN);\r\n }\r\n\r\n async dtnRelease() {\r\n if (this.gridData.length > 0) {\r\n let validate = this.gridData.some(data => !data.selectedCom || !data.selectedCmdType);\r\n if (validate) {\r\n this.notificationService.showToast(\"Please fill the delayreason to proceed further\", \"Warning\");\r\n return;\r\n }\r\n }\r\n this.selectedList = [];\r\n this.data.documentList.forEach(x => {\r\n let obj = {\r\n documentId: x[0].documentId,\r\n revisionNo: x[0].revisionNo,\r\n workflowId: x[0].workflowId,\r\n assignedType: x[0].assignedType,\r\n taskSerialNumber: x[0].taskSerialNumber,\r\n subWorkflow: x[0].subWorkflow,\r\n taskId: x[0].taskId,\r\n currentTaskId: x[0].currentTaskId,\r\n CurrentStatusId: x[0].status_Id\r\n }\r\n this.selectedList.push(obj);\r\n });\r\n\r\n let is_Send_Mail: boolean = false;\r\n let semiNo: string = '0';\r\n let msgNo: string = this.getFormValue(\"txtMsgSerialNo\", this.transmittalForm);\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n semiNo = semiNo.toString().replace(/\\D|^0+/g, \"\");\r\n this.semiNo = semiNo;\r\n msgNo = msgNo + '-' + this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n }\r\n let transmittalMsgInputDetails: ITransmittalMsgInputModel = {\r\n inputType: this.inputType,\r\n project_Id: this.projectId,\r\n message_Id: this.MessageId,\r\n message_Number: msgNo,\r\n message_Serial_Number: +semiNo,\r\n discipline: 0,\r\n parent_Message_Id: 0,\r\n message_Type: 141,\r\n has_Attachments: true,\r\n is_Confidential: true,\r\n message_Category: 3,\r\n message_Subject: \"\",\r\n message_Body: \"\",\r\n response_Type: 0,\r\n respond_On: this.RespondOn,\r\n issue_Reason: 10,\r\n sent_On: is_Send_Mail ? this.datevalue : null,\r\n is_Mail_Sent: is_Send_Mail,\r\n is_Active: true,\r\n userId: this.memberId\r\n };\r\n this.selectedList.forEach((data, i) => {\r\n this.gridData.forEach((value) => {\r\n if (data.documentId == value.doc_Id) {\r\n if (value.selectedDocCommentId == 3) {\r\n data[\"delay_Reason\"] = value.selectedCmdType;\r\n data[\"external_Reason\"] = \"\";\r\n data[\"internal_Reason\"] = \"\";\r\n data[\"selectedDocCommentId\"] = value.selectedDocCommentId;\r\n } else if (value.selectedDocCommentId == 2) {\r\n data[\"external_Reason\"] = value.selectedCmdType;\r\n data[\"delay_Reason\"] = \"\";\r\n data[\"internal_Reason\"] = \"\";\r\n data[\"selectedDocCommentId\"] = value.selectedDocCommentId;\r\n } else if (value.selectedDocCommentId == 1) {\r\n data[\"internal_Reason\"] = value.selectedCmdType;\r\n data[\"selectedDocCommentId\"] = value.selectedDocCommentId;\r\n data[\"external_Reason\"] = \"\";\r\n data[\"delay_Reason\"] = \"\";\r\n }\r\n }\r\n })\r\n })\r\n\r\n this._transmittalMsgService.InsertUpdateTransmittalDetails(transmittalMsgInputDetails).toPromise().then((x: StandardOutputModel) => {\r\n if (x.successCode == 200 || x.successCode == 205) {\r\n this.isDTNReleased = true;\r\n if (this.selectedList.length > 0) {\r\n //Get the current workflow step actions & ensure that any of the action is invovled in supersede operation\r\n let currentTask = this.currentWorkflowDetails.workflowStatus.filter(item => item.sub_Workflow == this.selectedList[0].subWorkflow && item.workflow_Status == this.selectedList[0].taskId)[0];\r\n this.workflowActions = this.currentWorkflowDetails.workflowAction.filter(x => x.task_Id == currentTask.task_Id);\r\n this.approveActionDetails = this.workflowActions.filter(item => item.action_Description == 'Approve');\r\n\r\n for (let i = 0; i < this.selectedList.length; i++) {\r\n let _respondWorkflowDetails: any = { \"projectId\": 0, \"groupId\": 0, respondWorkflowDetails: [], createdBy: 0, stageDetails: this.LatestStageDetails };\r\n let obj: any = {};\r\n obj[\"documentId\"] = this.selectedList[i].documentId;\r\n obj[\"revisionNumber\"] = this.selectedList[i].revisionNo;\r\n obj[\"workflowId\"] = this.selectedList[i].workflowId;\r\n obj[\"TaskId\"] = this.selectedList[i].currentTaskId;\r\n obj[\"assignType\"] = this.selectedList[i].assignedType;\r\n obj[\"memberId\"] = this.memberId;\r\n obj[\"actionPerformed\"] = 99; // DTN Release -- only Approve action possible\r\n obj[\"completedBy\"] = this.memberId;\r\n obj[\"statusId\"] = this.selectedList[i].CurrentStatusId;\r\n obj[\"completedOn\"] = null;\r\n obj[\"comments\"] = \" \";\r\n obj[\"delayReason\"] = this.selectedList[i].selectedDocCommentId == 3 ? this.selectedList[i].delay_Reason : null;\r\n obj[\"internalReason\"] = this.selectedList[i].selectedDocCommentId == 1 ? this.selectedList[i].internal_Reason : null;\r\n obj[\"externalReason\"] = this.selectedList[i].selectedDocCommentId == 2 ? this.selectedList[i].external_Reason : null;\r\n obj[\"isFileAvailable\"] = true;\r\n obj[\"taskSlNo\"] = this.selectedList[i].taskSerialNumber;\r\n obj[\"commentSheetNo\"] = msgNo;\r\n _respondWorkflowDetails.projectId = this.projectId;\r\n _respondWorkflowDetails.groupId = this.groupId;\r\n _respondWorkflowDetails.createdBy = this.memberId;\r\n _respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n\r\n this.assignNextStep(_respondWorkflowDetails, this.approveActionDetails[0], this.selectedList[i]);\r\n }\r\n if (this.docNextStepDetails && this.docNextStepDetails.length > 0) {\r\n let workflowIdList = this.data.documentList.map(x => x[0].workflowId);\r\n let workflowTemplateDetails: WorkflowTemplateDialogModel[] = [];\r\n if (workflowIdList.length == 1) {\r\n workflowTemplateDetails.push(this.currentWorkflowDetails);\r\n }\r\n else if (workflowIdList.length > 1) {\r\n workflowTemplateDetails.push(this.currentWorkflowDetails);\r\n workflowIdList = workflowIdList.filter(x => x != this.currentWorkflowDetails.workflow_Id);\r\n if (workflowIdList && workflowIdList.length > 0) {\r\n let uniqueWorkflowId = workflowIdList.filter((x, ind) => workflowIdList.indexOf(x) === ind).join(',');\r\n if (uniqueWorkflowId && uniqueWorkflowId.length > 0)\r\n this.workflowTemplateService.getWorkflowTemplateDetails(uniqueWorkflowId).subscribe((res: WorkflowTemplateDialogModel[]) => {\r\n res.forEach(x => {\r\n workflowTemplateDetails.push(x);\r\n })\r\n })\r\n }\r\n }\r\n\r\n forkJoin(this.docNextStepDetails).subscribe(res => {\r\n let successList: WtfActionReassignToInputModel[] = [];\r\n this.data.documentList.forEach((x, index) => {\r\n if (!!res[index]) {\r\n let val = res[index];\r\n if (val.successCode == 200) {\r\n let isNextStepAva = Boolean(JSON.parse(val.result.toString().split(',')[0]));\r\n let _nextStepId = parseInt(JSON.parse(val.result.toString().split(',')[1]));\r\n let worklfowtemplate = workflowTemplateDetails && workflowTemplateDetails.filter(temp => temp.workflow_Id == x[0].workflowId).length > 0 ? workflowTemplateDetails.filter(temp => temp.workflow_Id == x[0].workflowId)[0] : null;\r\n let isforReassigment = worklfowtemplate.isForReAssignment\r\n let stepDetail: WorkflowTemplateStatusInputModel = worklfowtemplate.workflowStatus.filter(x => x.step_Id == _nextStepId)[0];\r\n let isSetpForReassignment = stepDetail ? stepDetail.is_Step_For_Reassignment : false;\r\n if (isNextStepAva && isforReassigment && isSetpForReassignment && !!stepDetail) {\r\n let nextStepAssignedToRoles: WorkflowAssignedToModel[] = worklfowtemplate.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type == 1).filter(r => r.role_Id > 0);\r\n let nextStepAssignedToMember: WorkflowAssignedToModel[] = worklfowtemplate.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type == 1).filter(r => r.role_Id == 0 && r.member_Id > 0);\r\n if ((!!nextStepAssignedToRoles && nextStepAssignedToRoles.length > 0) || (!!nextStepAssignedToMember && nextStepAssignedToMember.length > 0)) {\r\n x[0]['nextStepDetail'] = stepDetail;\r\n x[0]['nextStepAssignedToRoles'] = nextStepAssignedToRoles && nextStepAssignedToRoles.length > 0 ? nextStepAssignedToRoles : null;\r\n x[0]['nextStepAssignedToMember'] = nextStepAssignedToMember && nextStepAssignedToMember.length > 0 ? nextStepAssignedToMember : null;\r\n successList.push(x[0]);\r\n }\r\n }\r\n }\r\n }\r\n })\r\n if (successList && successList.length > 0) {\r\n let dialogRef1 = this.dialog.open(WtfActionReassigntoDtnComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { successList: successList, workflowTemplateDetails: workflowTemplateDetails },\r\n width: '50%'\r\n })\r\n }\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n this.notificationService.showPopup(x.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n\r\n public assignNextStep(_respondWorkflowDetails: any, action: WorkflowActionModel, doclist: RespondWorkflowListModel) {\r\n if (this.currentProject.icDescription == \"BF - Buildings & Factories\")\r\n _respondWorkflowDetails.To_member_Id = parseInt(this.receiverDetails.transmittalToDetails[0].member_Id);\r\n\r\n // this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails).toPromise().then(data => {\r\n // if (!!data) {\r\n // this.gridData = [];\r\n // this.notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n // }\r\n // else {\r\n // this.notificationService.showToast(\"Failed to Move Next Step\", \"Error\");\r\n // }\r\n // });\r\n this.docNextStepDetails.push(this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails));\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n async sendMail(is_Send_Mail: boolean) {\r\n if (is_Send_Mail) {\r\n let toMemberIds = this.mailReceiverDetails[0].transmittalToDetails.map((x: { member_Id: any; }) => x.member_Id).join(',')\r\n let ccMemberIds = this.mailReceiverDetails[0].transmittalCcDetails.map((x: { member_Id: any; }) => x.member_Id).join(',')\r\n let fromMemberIds = this.mailReceiverDetails[0].transmittalFromDetails.map((x: { member_Id: any; }) => x.member_Id).join(',')\r\n let toMemberIdList: any[] = this.getMailIDList(toMemberIds);\r\n let ccMemberIdList: any[] = this.getMailIDList(ccMemberIds);\r\n let fromMemberIdList: any[] = this.getMailIDList(fromMemberIds);\r\n this.toMember = this.membersList.filter(f => toMemberIdList.some(item => item.memberId === f.member_Id));\r\n this.ccMember = this.membersList.filter(f => ccMemberIdList.some(item => item.memberId === f.member_Id));\r\n this.fromMember = this.membersList.filter(f => fromMemberIdList.some(item => item.memberId === f.member_Id));\r\n let semiNo: string = '0';\r\n let msgNo: string = this.getFormValue(\"txtMsgSerialNo\", this.transmittalForm);\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n this.semiNo = semiNo;\r\n msgNo = msgNo + '-' + this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n }\r\n let transmittalMsgInputDetails: ITransmittalMsgInputModel = {\r\n inputType: 'sendTransmittalMail',\r\n project_Id: this.projectId,\r\n message_Id: this.MessageId,\r\n message_Number: this.messageNo,\r\n message_Serial_Number: +this.semiNo,\r\n discipline: 0,\r\n parent_Message_Id: 0,\r\n message_Type: 141,\r\n has_Attachments: true,\r\n is_Confidential: true,\r\n message_Category: 3,\r\n message_Subject: \"\",\r\n message_Body: \"\",\r\n response_Type: 0,\r\n respond_On: this.RespondOn,\r\n issue_Reason: 10,\r\n sent_On: is_Send_Mail ? this.datevalue : null,\r\n is_Mail_Sent: is_Send_Mail,\r\n is_Active: true,\r\n userId: this.memberId\r\n };\r\n await this._transmittalMsgService.InsertUpdateTransmittalDetails(transmittalMsgInputDetails).subscribe(async (x: StandardOutputModel) => {\r\n if (x.successCode == 200 || x.successCode == 205) {\r\n let sTo: string = this.toMember.map(x => x.eMail_Id).join(',');\r\n let sCC: string = this.ccMember.map(x => x.eMail_Id).join(',');\r\n let sFrom: string = this.fromMember.map(x => x.eMail_Id).join(',');\r\n if (!!sTo && !!sFrom && !!sCC) {\r\n let filteredDTN: ITransmittalDetailsModel = this.transmittalList.filter(x => x.message_Id == this.MessageId)[0];\r\n let mailDetails: ITransmittalMailDetails = {\r\n from_List: sFrom,\r\n to_List: sTo,\r\n cc_List: sCC,\r\n project_Code: this.commonService.getProjectCode(),\r\n discipline: this.isNull(filteredDTN.discipline_Description),\r\n mail_Body: this.transmittalViewComponent.getHtmlContent(),\r\n mail_Subject: this._transmittalData ? this._transmittalData.subject : \"\",\r\n message_Id: this.MessageId\r\n }\r\n await this._transmittalMsgService.SendTransmittalMail(mailDetails).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.notificationService.showPopup(\"Transmittal Sent successfully\", \"Success\");\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showPopup(\"Please give valid mail to user\", \"Warning\");\r\n }\r\n }\r\n else {\r\n this.notificationService.showPopup(x.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.closeDialog();\r\n }\r\n }\r\n\r\n getMailIDList(input: any) {\r\n let globArr: { memberId: number; }[] = [];\r\n let arr = input;\r\n let result = arr.split(',');\r\n result.forEach(function (obj: string) {\r\n let memberObj = { memberId: parseInt(obj, 10) }\r\n globArr.push(memberObj);\r\n });\r\n return globArr;\r\n }\r\n\r\n isNull(data: string) {\r\n return data != null ? data : '';\r\n }\r\n\r\n async GenerateDTNManual() {\r\n if (this.MessageId > 0) {\r\n if (this.numFormat == 'Manual') {\r\n this.messageNo = this.getFormValue('txtMsgSerialNo', this.transmittalForm);\r\n let filteredDTN: ITransmittalDetailsModel = this.transmittalList.filter(x => x.message_Id == this.MessageId)[0];\r\n filteredDTN.message_Number = this.messageNo;\r\n this.pushTransmittalTemplateModel(filteredDTN);\r\n }\r\n else {\r\n this.notificationService.showPopup(\"Please Select Transmittal No\", \"Warning\");\r\n }\r\n }\r\n }\r\n\r\n FillselectedList() {\r\n this.selectedList = [];\r\n this._transmittalData.docDetails.forEach(x => {\r\n let filteredDoc: RespondWorkflowListModel[] = this.originalData.filter(y => y.documentId == x.doc_Id && y.revisionNo == x.revision_No);\r\n if (filteredDoc.length > 0)\r\n this.selectedList.push(filteredDoc[0]);\r\n });\r\n }\r\n\r\n omit_special_char(event) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n

DTN Release

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Numbering Format : \r\n \r\n Manual\r\n Semi\r\n Auto\r\n \r\n
\r\n \r\n \r\n Transmittal No\r\n \r\n \r\n
\r\n \r\n \r\n Serial No\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Delayed Documents
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.delayReason}}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ITransmittalMemberModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\n\r\n@Pipe({\r\n name: 'iGetMemberNamePipe'\r\n})\r\nexport class IGetMemberNamePipePipe implements PipeTransform {\r\n\r\n transform(value: ITransmittalMemberModel[]): string {\r\n if(!!value)\r\n {\r\n return value.map(x => x.memberName).join(' / ');\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TransmittalTemplateComponent } from '../../transmittal-template/transmittal-template.component';\r\n\r\n@Component({\r\n selector: 'app-hci-transmittal',\r\n templateUrl: './hci-transmittal-template.component.html',\r\n styleUrls: ['./hci-transmittal-template.component.css']\r\n})\r\nexport class HCITransmittalTemplateComponent implements TransmittalTemplateComponent, OnInit {\r\n\r\n constructor() { }\r\n templateName!: string;\r\n message_id?: number;\r\n to!: string;\r\n date!: string;\r\n edrcRef!: string;\r\n cusRef!: string;\r\n projName!: string;\r\n subject!: string;\r\n attention!: string;\r\n docDetails!: any[];\r\n distributionDetails!: any[];\r\n message_No?: any;\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getDatePart(type:string){\r\n let result:any;\r\n let dateParts:string[] = this.date.split('-');\r\n switch(type){\r\n case 'date':\r\n result = dateParts[0];\r\n break;\r\n case 'month':\r\n result = dateParts[1];\r\n break;\r\n case 'year':\r\n result = dateParts[2];\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Transmittal Template
Logo

Larsen and Toubro Limited\r\n

Heavy Civil Infrastructure IC

\r\n

76 Amarsons Garden, Bhulabai Desai Marg

\r\n

Breach Candy, Mumbai - 400 026

TO :
Attention : {{attention}}
Project : {{projName}}Transmittal Number : {{message_No}}Sheet No. : 1 of 1
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Component :{{subject}}
Date :
Month :
Year :
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Sl. No.Document/Drawing No.DescriptionRevision No.
{{i+1}}{{doc.doc_No}}{{doc.doc_Title}}{{doc.revision_No}}
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Medium Of Drawing :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n

Size Copies / Sets

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n A1 -1\r\n
\r\n A3 -3\r\n
\r\n \r\n
\r\n
Purpose of Issuance :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
AB - As BuildFI - For InformationFR - For ReviewP - PreliminaryFA - For ApprovalFR - For RecordFT - For TenderR - ReplacementFC - For ConstructionFC - For Construction
\r\n
\r\n
\r\n

Remarks :

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

Project Manager

\r\n

L&T Construction

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

Cc: Chief Engineer, MCGM, Mumbai Coastal Road

\r\n

AECOM (GC)

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

Encl. As above

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

Prepared by - L&T Construction

\r\n \r\n \r\n
Issued by :Submission of Construction Reference Drawings of PileReceived By : {{date}}Date : {{edrcRef}}
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { ITransmittalDetailsModel, ITransmittalDocViewModel } from 'src/app/ViewModel/TransmittalModel';\r\nimport { ITransmittalDistributionViewModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { TransmittalTemplateComponent } from '../../transmittal-template/transmittal-template.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { TransmittalMsgService } from 'src/app/Service/transmittal/transmittal.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { formatDate } from '@angular/common';\r\nimport { IMemebersViewModel } from 'src/app/ViewModel/MembersModel';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { IMsgDocumentAttachmentModel } from 'src/app/ViewModel/CommunicationModel';\r\n\r\n@Component({\r\n selector: 'app-transmittal-template',\r\n templateUrl: './transmittal-template-common.component.html',\r\n})\r\nexport class CommonTransmittalTemplateComponent implements TransmittalTemplateComponent, OnInit {\r\n templateName!: string;\r\n message_id?: number;\r\n message_No?: any;\r\n to!: string;\r\n date!: string;\r\n edrcRef!: string;\r\n cusRef!: string;\r\n projName!: string;\r\n subject!: string;\r\n attention!: string;\r\n From!: string;\r\n message_Note!: string;\r\n currentproject!: ProjectViewModel;\r\n lntDescriptionInPage: string = \"LARSEN AND TOUBRO LTD\";\r\n docDetails!: ITransmittalDocViewModel[];\r\n distributionDetails!: ITransmittalDistributionViewModel[];\r\n fileDetails!:any[];\r\n public memberId: number = 0;\r\n public projectId!: number;\r\n public groupId!: number;\r\n public icId?: number;\r\n public redirectUri: string = \"\";\r\n public hyperlink: string = \"\";\r\n imagePath: string = environment.currentServer;\r\n public is_Show_Attachment_In_DTN!: boolean;\r\n public task_id_list!: string;\r\n public workflowId!: number;\r\n\r\n public RespondOn: string = formatDate(new Date(), 'dd-MM-yyyy', 'en-US');\r\n transmittalList: ITransmittalDetailsModel[] = [];\r\n public groupDetails: any;\r\n public receiverDetails: any;\r\n public currentWorkflowDetails!: WorkflowTemplateDialogModel;\r\n public mailReceiverDetails: any[] = [];\r\n public membersList: IMemebersViewModel[] = [];\r\n public canManualNo: boolean = false;\r\n public dtnList: any[] = [];\r\n public transmittalNo: any = null;\r\n public toMember: any[] = [];\r\n public ccMember: any[] = [];\r\n public fromMember: any[] = [];\r\n\r\n constructor(private _notificationService: NotificationService, public memberService: ExternalMemberService, private loaderService: LoaderService, private dialog: MatDialog, private commonService: CommonService, private _transmittalService: TransmittalMsgService, private _WorkflowTemplateService: WorkflowTemplateService,private _fileService:FileService) { }\r\n\r\n ngOnInit() {\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.currentproject = this.commonService.getCurrentProjectDetails();\r\n this.icId = this.currentproject.icId\r\n this.redirectUri = environment.currentServer;\r\n this.workflowId = this.docDetails[0].workflowId;\r\n if (this.message_id && this.message_id > 0) {\r\n this.hyperlink = this.redirectUri + 'authentication/mail-redirect-handler?project=' + this.projectId + '&page=transmittal-list&msg=' + this.message_id\r\n }\r\n\r\n switch (this.icId) {\r\n case 13312:\r\n this.imagePath = this.imagePath + \"/assets/images/bnf-logo.jpg\";\r\n break;\r\n case 88:\r\n this.imagePath = this.imagePath + \"/assets/images/hcl-logo.png\";\r\n break;\r\n default:\r\n this.imagePath = this.imagePath + \"/assets/images/lnt-logo.png\";\r\n break;\r\n }\r\n if (this.workflowId)\r\n this.GetWorkflowtemplate(this.workflowId);\r\n\r\n }\r\n getDocCategory(doc: ITransmittalDocViewModel): string {\r\n if (!!doc.category)\r\n return doc.category.dedShortDescription;\r\n return \"\";\r\n }\r\n\r\n getDocType(doc: any): string {\r\n if (!!doc.type)\r\n return doc.type.dedShortDescription;\r\n return \"\";\r\n }\r\n\r\n async viewAttachmentClick(data: ITransmittalDocViewModel) {\r\n if (!this.workflowId && data.workflowId)\r\n await this.GetWorkflowtemplate(data.workflowId);\r\n let _libNum = this.getLibNum(data);\r\n if (this.message_id && this.message_id > 0) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: { projectId: this.projectId, messageId: this.message_id, docId: data.doc_Id, revisionNo: data.revision_No, libraryName: _libNum, createdBy: this.memberId, isDeleteEnable: false, documentNo: this.message_No, task_ID: data.task_Id },\r\n });\r\n }\r\n else {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: { projectId: this.projectId, messageId: -1, docId: data.doc_Id, revisionNo: data.revision_No, libraryName: _libNum, createdBy: this.memberId, isDeleteEnable: data.scheduleType == 3 ? false : true, documentNo: this.message_No, task_ID: data.task_Id},\r\n });\r\n }\r\n }\r\n\r\n downloadAll_OnClick(isfileDownload?:boolean) {\r\n this.loaderService.isLoading.next(true);\r\n\r\n if(isfileDownload)\r\n {\r\n let fileInput_Communication = {\r\n projectId: this.projectId,\r\n messageId: this.message_id,\r\n }\r\n this._fileService.DownloadAllFiles([{ libraryNumber: 4, value: JSON.stringify(fileInput_Communication) }]).subscribe((data:Blob) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = this.message_No +'- CommonFiles' + \".zip\";\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);}, error => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n });\r\n }\r\n else{\r\n this._transmittalService.DownloadAllAttachments(this.projectId, this.message_id, (this.is_Show_Attachment_In_DTN ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments), this.message_No + \".zip\").subscribe((data: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(data);\r\n downloadLink.download = this.message_No + '- DocumentAttachmentFiles' + \".zip\";\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);}, error => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n });\r\n }\r\n }\r\n GetWorkflowtemplate(workflowId: number): Promise {\r\n return this._WorkflowTemplateService.getWorkflowTemplate(workflowId).toPromise().then((data: WorkflowTemplateDialogModel) => {\r\n if (data)\r\n if (data.workflowStatus && data.workflowStatus.some(x => x.is_Show_Attachment_In_DTN == true))\r\n this.is_Show_Attachment_In_DTN = true;\r\n this.task_id_list = data.workflowStatus.filter(x => x.is_Show_Attachment_In_DTN == true).map(y => y.task_Id).join();\r\n });\r\n }\r\n getLibNum(data?: any): number {\r\n let _libNum = (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments);\r\n return _libNum;\r\n }\r\n\r\n\r\n download_OnClick(doc:IMsgDocumentAttachmentModel)\r\n {\r\n this._fileService.DownloadFile({ libraryNumber: 4, fileId: doc.fileId, fileName: doc.fileName+'.'+doc.fileExtension }).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(res);\r\n downloadLink.download = doc.fileName+'.'+doc.fileExtension;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n })\r\n }\r\n}\r\n","
\r\n \r\n

\r\n Mount Poonamallee Road, P.O.Box 979, Manapakkam , Chennai - 600089 Ph : 91-44-2252 6000 / 2252 8000 , Fax :\r\n 91-44-2252 6042\r\n

\r\n

\r\n 7th Floor, L&T Business Park, Gate -5 Powai , Mumbai - 400072 Ph : 91-22-61738700 / 21 , Fax : 91-22-67054548\r\n

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

\r\n P.O.BOX 979, MANAPAKKAM, CHENNAI 600 089 INDIA - PHONE: 044 2270 4694 \r\n

\r\n
\r\n

FAX:

\r\n

E-MAIL:

\r\n
\r\n

Format No: EDRC-GN-ST-04-1-R0

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

\r\n Mount Poonamallee Road, P.O.Box 979, Manapakkam , Chennai - 600089 Ph : 91-44-2252 6000 / 2252 8000 , Fax :\r\n 91-44-2252 6042\r\n

\r\n

\r\n L&T Business Park, Gate -5 Powai , Mumbai - 400072 Ph : 91-22-61738700 / 21 , Fax : 91-22-67054548\r\n

\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n SerialSigned Copies\r\n 0\" (click)=\"downloadAll_OnClick()\">\r\n TitleDocument NoRev NoNo of CopiesCategoryTypeRemarks
\r\n {{i+1}}\r\n \r\n {{doc.doc_Title}}{{doc.doc_No}}\r\n {{doc.revision_No}}{{doc.quantity}}{{doc.category_Short_Description}}\r\n {{doc.type_Short_Description}}{{doc.remarks}}
\r\n
\r\n0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n SerialDownload\r\n 0\" (click)=\"downloadAll_OnClick(true)\">\r\n Title
\r\n {{i+1}}\r\n 0\" aria-hidden=\"true\" class=\"eip-link\" class=\"fa fa-download fs-16 eip-mr-5\"\r\n (click)=\"download_OnClick(doc)\">\r\n {{doc.fileName}}
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
NOTE :\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Sl. No.NameNo of CopiesCategoryTypeRemarks
{{i+1}}{{distDtl.member_Name}}{{distDtl.quantity}}\r\n {{distDtl.category_Short_Description}}{{distDtl.type_Short_Description}}\r\n {{distDtl.remarks}}
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
CATEGORY:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n A - For ApprovalI - For\r\n InformationB - As Build
\r\n P - PreliminaryG - Good For\r\n ConstructionT - For Tender\r\n Purpose
\r\n
TYPE:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CD - Compact Disc\r\n TR - TracingSC - Soft Copy
PR - PrintsTC - Transmittal CopyHC - Hard Copy
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Thanking you and assuring you of our best services at all times.\r\n
\r\n This is system generated DTN and does not require signature.\r\n
Yours faithfully,\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{From}}\r\n
LARSEN & TOUBRO LTD\r\n
","import { Component, ElementRef, OnInit, ViewChild, Inject, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { IMsgAttachmentsModel, IMsgDocumentAttachmentModel, IMsgElementInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { ISignatureOutputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\n\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { formatDate } from '@angular/common';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { ITransmittalTemplateModel, ITransmittalMemberModel, ITransmittalReceiverDetails, ITransmittalDistributionViewModel, IReceiverDetails, ITransmittalGroupViewModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { MatChipList } from '@angular/material/chips';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { ITransmittalDocumentDetails, ITransmittalDocViewModel, ITransmittalSerialNoInputModel, ITransmittalMsgInputModel, ITransmittalMsgReceiverInput, ITransmittalGroupMemberInput, ITransmittalMsgDocumentInput, ITransmittalDocumentInput, ITransmittalDocumentCopyInput, ITransmittalDocumentElementDetails, ITransmittalElementSLNoInputModel, IReceiverInput, IDistributionMemberDetails, ITransmittalDocumentMsgDetails, ITransmittalDocumentCopyDetails, ITransmittalDocumentElementInput, ITransmittalMailDetails, ITransmittalViewDocDetails, ITransmittalDocumentAttachmentModel, ITransmittalSignedDocumentsModel } from 'src/app/ViewModel/TransmittalModel';\r\nimport { TransmittalMsgService } from 'src/app/Service/transmittal/transmittal.service';\r\nimport { TransmittalTemplateComponent } from '../transmittal-template/transmittal-template.component';\r\nimport { TransmittalViewComponent } from '../transmittal-view/trasnsmittal-view.component';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { groupBy, map, sortBy } from 'lodash';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { ScheduleDocumentMailListComponent } from '../../engineering-schedule/schedule-document-mail-list/schedule-document-mail-list.component';\r\nimport { IDocumentMailInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { DocumentViewGridComponent } from '../document-grid/document-view-grid/document-view-grid.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { RespondWorkflowListModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { Observable, BehaviorSubject, Subject, Subscription } from 'rxjs';\r\nimport { of } from 'rxjs/internal/observable/of';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\n\r\nconst matches = (el: {\r\n matches: any; msMatchesSelector: any;\r\n}, selector: string) => (el.matches || el.msMatchesSelector).call(el, selector);\r\n\r\nconst createFormGroup = (dataItem: ITransmittalDocViewModel) => new FormGroup({\r\n 'quantity': new FormControl(dataItem.quantity, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'category': new FormControl(dataItem.category, [Validators.required]),\r\n 'type': new FormControl(dataItem.type, [Validators.required]),\r\n 'remarks': new FormControl(dataItem.remarks)\r\n});\r\n\r\nconst createFromGroupDist = (dataItem: ITransmittalGroupViewModel) => new FormGroup({\r\n 'quantity': new FormControl(dataItem.quantity, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'category': new FormControl(dataItem.category, [Validators.required]),\r\n 'type': new FormControl(dataItem.type, [Validators.required]),\r\n 'remarks': new FormControl(dataItem.remarks)\r\n});\r\n\r\n@Component({\r\n selector: 'app-transmittal-creation',\r\n templateUrl: './transmittal-creation.component.html',\r\n styleUrls: ['./transmittal-creation.component.css']\r\n})\r\nexport class CreateTransmittalComponent implements OnInit, OnDestroy {\r\n ShowTransmittalTemplate: boolean = false;\r\n transmittalData!: TransmittalTemplateComponent;\r\n private transmittalViewComponent!: TransmittalViewComponent;\r\n @ViewChild('docGrid') docGrid!: GridComponent;\r\n @ViewChild('distGrid') distGrid!: GridComponent;\r\n @ViewChild(\"docSetForm\") dynamicForm!: DynamicFormComponent;\r\n @ViewChild('transmittalViewComponent') set content(content: TransmittalViewComponent) {\r\n if (!!content) { // initially setter gets called with undefined\r\n this.transmittalViewComponent = content;\r\n }\r\n }\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n panelOpenState = true;\r\n public inputType: any;\r\n public selectedMessages!: any[];\r\n public transmittalFormat!: string;\r\n public numFormat!: string;\r\n public isShowSerialNo: boolean = true;\r\n serialNoLength: number = 5;\r\n public readonly!: boolean;\r\n public DistrowIndex!: number;\r\n public reciviedDoc: any[] = [];\r\n public responseRequired!: string;\r\n public projectId!: number;\r\n public selectedData: any[] = [];\r\n public groupId!: number;\r\n public memberId: number | undefined;\r\n public canManualNo: boolean = false;\r\n public msgNo!: string;\r\n public getSelected_Type: any[] = [];\r\n public _getSelected_Type: any[] = [];\r\n public messageNo!: string;\r\n public DocSelectedCategory: number | null | undefined;\r\n public DocSelectedType: number[] | undefined | null;\r\n public MessageId!: number;\r\n public autoSerialNo!: string;\r\n public isMessageValid!: boolean;\r\n isWorkflow!: boolean;\r\n editedRowIndex!: number | undefined;\r\n editedRowIndexDist!: number;\r\n public formGroup!: FormGroup | undefined;\r\n formGroupDist!: FormGroup | any;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public numElements: Map = new Map();\r\n public elementInp: IMsgElementInputModel[] | (ITransmittalElementSLNoInputModel | undefined)[] = [];\r\n public elementInput: IMsgElementInputModel[] = [];\r\n public mailType: string = '';\r\n categoryList: any[] = [];\r\n copyTypeList: any[] = [];\r\n templateDetails: ITransmittalTemplateModel[] = [];\r\n distributionList: any[] = [];\r\n documentViewList: ITransmittalDocViewModel[] = [];\r\n documentUpdateList: any[] = [];\r\n currentEditGroupViewModel!: ITransmittalGroupViewModel | any;\r\n signedDocuments: ITransmittalDocumentAttachmentModel[] = [];\r\n template_Id: string | number | null = null;\r\n selectedCategory!: number | any;\r\n selectedRemarks!: string | undefined;\r\n selectedTransmittalType: number[] = [];\r\n selectedFrom!: number | null;\r\n selectedTo!: number | null;\r\n WorkflowDocument!: boolean;\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n multiple = false;\r\n doc_Id: number | null = null;\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n masterMemberIds!: number[];\r\n filteredMembers!: Observable;\r\n ccFilteredMembers!: Observable;\r\n fromFilteredMembers!: Observable;\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n @ViewChild('ccInput') ccInput!: ElementRef;\r\n @ViewChild('ccauto') matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList') ccChipList!: MatChipList;\r\n ccfilter$!: Observable | undefined;\r\n private _nextPage$ = new Subject();\r\n templateFormat: string = '';\r\n elementsConfig: FieldConfig[] = [];\r\n mailSubject: string = '';\r\n IsShowAttachmentList = false;\r\n isShowbulkSave = false;\r\n projectName!: string;\r\n /*Signature*/\r\n IsShowPopup = false;\r\n public IsDisabled!: boolean;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = {\r\n horizontal: 'center',\r\n vertical: 'bottom'\r\n };\r\n public margin = {\r\n horizontal: -15,\r\n vertical: 10\r\n };\r\n public signatureList: ISignatureOutputModel[] = [];\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n public membersList: any[] | undefined = [];\r\n mailFrom: string = '';\r\n public fromList: any[] = [];\r\n mailTo: string = '';\r\n public toList: any[] = [];\r\n mailCC: string = '';\r\n public ccList: any[] = [];\r\n mailBCC: string = '';\r\n public bccList: any[] = [];\r\n selected_Category: any;\r\n selected_Type!: number[];\r\n messageGroupForm!: FormGroup;\r\n transmittalForm!: FormGroup;\r\n messageContentForm!: FormGroup;\r\n public isRevisedDateInvalid!: boolean;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RespondOn: string | null = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public dtnList: RespondWorkflowListModel[] = [];\r\n public pendingWFList: any[] = [];\r\n public is_Send_Mail: boolean = true;\r\n componentRef: any;\r\n public CurrentProjectDetails!: ProjectViewModel;\r\n public is_Show_Attachment_In_DTN!: boolean;\r\n public task_id_list!: string;\r\n public enableFullscreen: boolean = false;\r\n UnsubscribeArray: Subscription[] = [];\r\n attachmentsList: IMsgDocumentAttachmentModel[] = [];\r\n\r\n constructor(\r\n private _projService: ProjectInfoService,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public memberService: ExternalMemberService,\r\n public elementLinkService: ElementLinkService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private notificationService: NotificationService,\r\n private _transmittalService: TransmittalService,\r\n private _formBuilder: FormBuilder,\r\n private _transmittalMsgService: TransmittalMsgService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private _fileService: FileService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.selectedTransmittalType = null;\r\n this.inputType = this.data['inputType'];\r\n this.doc_Id = this.data[\"doc_Id\"];\r\n this.dtnList = this.data[\"selectedList\"];\r\n if (this.dtnList == undefined)\r\n this.dtnList = [];\r\n this.transmittalFormat = 'Transmittal';\r\n this.numFormat = 'Auto';\r\n this.readonly = true;\r\n this.IsDisabled = true;\r\n this.responseRequired = 'No';\r\n this.createTransmittalGroupForm();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.CurrentProjectDetails = this.commonService.getCurrentProjectDetails();\r\n if (this.CurrentProjectDetails && this.CurrentProjectDetails.doc_Number_Format) {\r\n this.numFormat = this.CurrentProjectDetails.doc_Number_Format;\r\n this.onNumFormatChange(this.numFormat);\r\n }\r\n this.callMemberRoleandFeature();\r\n this.getSerialNoLength();\r\n this.getElementDetails(\"Message Category\");\r\n this.getElementDetails(\"Copy Type\");\r\n this.getTransmittalDetails()\r\n let _getProjectMembers = this._transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.masterMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo,\r\n address: x.address\r\n };\r\n return transmittalMember;\r\n });\r\n this.masterMemberIds = this.masterMembers.map(x => x.memberId);\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.filterMembers();\r\n });\r\n this.getDynamicForm();\r\n this.getSignatureList();\r\n this.getProjectName();\r\n this.getMembers();\r\n\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n let _getWorkflowPendingDocuments = this._scheduleDocService.GetWorkflowPendingDocuments({\r\n project_Id: this.projectId,\r\n group_Id: this.groupId\r\n }).subscribe((res: any[]) => {\r\n this.pendingWFList = res;\r\n if (this.dtnList.length > 0) {\r\n this.documentList = this.dtnList.map(x => {\r\n let docInput: any = {\r\n docId: x.documentId,\r\n documentNo: x.documentNumber,\r\n title: x.documentTitle,\r\n revision: x.revisionNo,\r\n authorisedByName: x.authorizedByName,\r\n createdByName: x.assignedToName,\r\n schedule_Type: x.schedule_Type,\r\n is_Show_DTN_Attachment_Task_Id: x.is_Show_DTN_Attachment_Task_Id\r\n };\r\n return docInput;\r\n });\r\n } else {\r\n if (this.doc_Id != null && this.doc_Id != undefined) {\r\n let docInput = {\r\n docId: this.data['doc_Id'],\r\n revision: this.data['revision_No'],\r\n documentNo: this.data['doc_No'],\r\n title: this.data['doc_Title'],\r\n authorisedByName: \"\",\r\n createdByName: \"\"\r\n };\r\n this.documentList.push(docInput);\r\n this.documentList = res.map(x => {\r\n let docInput: any = {\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorized_By,\r\n createdByName: x.created_By\r\n };\r\n return docInput;\r\n })\r\n this.documentList = this.documentList.filter(x => x.docId == this.doc_Id);\r\n }\r\n }\r\n this.GetWorkFlowStatus();\r\n this.documentViewList = this.documentList.map(x => {\r\n let category: any = null;\r\n let type: any = null;\r\n let remarks: any = \"\";\r\n let quantity: any = null;\r\n let docViewModel: ITransmittalDocViewModel = {\r\n doc_Id: x.docId,\r\n revision_No: x.revision,\r\n title: x.title,\r\n document_No: x.documentNo,\r\n authorized_By: x.authorisedByName,\r\n category: category,\r\n type: type,\r\n remarks: remarks,\r\n quantity: quantity,\r\n scheduleType: x.schedule_Type,\r\n isAttachemtUploded: x.schedule_Type == 3 ? true : false,\r\n task_Id: x.is_Show_DTN_Attachment_Task_Id\r\n };\r\n if (x.schedule_Type == 3 || (x.is_Show_DTN_Attachment_Task_Id != undefined && x.is_Show_DTN_Attachment_Task_Id != null))\r\n return this.validateAttachment(docViewModel, x.is_Show_DTN_Attachment_Task_Id)\r\n else\r\n return this.validateAttachment(docViewModel);\r\n })\r\n this.documentUpdateList = this.documentViewList;\r\n });\r\n\r\n if (this.inputType == 'dtnPreparation') {\r\n this.is_Send_Mail = false;\r\n this.isWorkflow = true;\r\n }\r\n\r\n this.UnsubscribeArray.push(_getProjectMembers, _getWorkflowPendingDocuments)\r\n }\r\n\r\n private onDocumentClick(e: any): void {\r\n if (!matches(e.target, '#docGrid tbody *, #docGrid .k-grid-toolbar .k-button')) {\r\n if (e.target.id != 'attachmentRemarks' && e.target.id != 'attachmentEdit') {\r\n this.UpdateRowData(null);\r\n }\r\n }\r\n }\r\n\r\n\r\n async callMemberRoleandFeature() {\r\n let _getPorjectMemberRoles = this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => { });\r\n let _getProjectMemberFeatures = await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canManualNo = result1.some(data => data.feature_Desc == 'Manual No');\r\n if (!this.canManualNo && this.numFormat == 'Manual')\r\n this.numFormat = 'Auto';\r\n });\r\n this.UnsubscribeArray.push(_getPorjectMemberRoles, _getProjectMemberFeatures)\r\n }\r\n\r\n private createSerachFilter(formControlName: string): Observable | undefined {\r\n let x: any = this.messageGroupForm\r\n return x ? x.get(formControlName)?.valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\")) : new Observable();\r\n\r\n }\r\n\r\n getProjectName() {\r\n let currentProject = this.commonService.getCurrentProjectDetails();\r\n this.projectName = currentProject.projectCode + ' - ' + currentProject.projectDescription;\r\n }\r\n\r\n async getSerialNoLength() {\r\n let slNoArray = await this.elementLinkService.getNumberingSlNoLength(this.projectId, this.groupId, Module.Transmittal).toPromise();\r\n this.serialNoLength = slNoArray.serialNoLength != 0 ? slNoArray.serialNoLength : 5;\r\n }\r\n\r\n createTransmittalCoverSheet() {\r\n this.transmittalData = {\r\n templateName: 'common',\r\n to: this.toMember.memberName + '
' + this.toMember.address,\r\n attention: this.toMember.memberName,\r\n From: this.fromMember.memberName,\r\n cc: this.ccMembers.map(x => x.memberName).join(';'),\r\n subject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n date: formatDate(this.datevalue, 'dd-MMM-yyyy', 'en-US'),\r\n edrcRef: this.messageNo,\r\n cusRef: this.getFormValue('txtCusRef', this.messageContentForm),\r\n projName: this.projectName,\r\n docDetails: this.getTransViewModel(),\r\n distributionDetails: this.getDistributionViewModel(),\r\n is_Show_Attachment_In_DTN: this.is_Show_Attachment_In_DTN,\r\n task_id_list: this.task_id_list,\r\n message_Note: this.selectedRemarks,\r\n fileDetails: this.attachmentsList && this.attachmentsList.length > 0 ? this.attachmentsList : []\r\n };\r\n this.ShowTransmittalTemplate = true;\r\n }\r\n\r\n getTransViewModel(): ITransmittalViewDocDetails[] {\r\n return this.documentUpdateList.map(x => {\r\n let type_Desc: string = '';\r\n let type_Short_Desc: string = '';\r\n\r\n if (!!x.type) {\r\n type_Desc = x.type.map((x: {\r\n dedDescription: any;\r\n }) => x.dedDescription).toString();\r\n type_Short_Desc = x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString();\r\n }\r\n let category_Desc: string = '';\r\n let category_Short_Desc: string = '';\r\n if (!!x.category) {\r\n category_Desc = x.category.dedDescription;\r\n category_Short_Desc = x.category.dedShortDescription;\r\n }\r\n let transDocViewModel: ITransmittalViewDocDetails = {\r\n authorised_By: x.authorized_By,\r\n doc_Id: x.doc_Id,\r\n doc_No: x.document_No,\r\n doc_Title: x.title,\r\n revision_No: x.revision_No,\r\n remarks: x.remarks,\r\n quantity: x.quantity,\r\n type_Description: type_Desc,\r\n type_Short_Description: type_Short_Desc,\r\n category_Description: category_Desc,\r\n category_Short_Description: category_Short_Desc,\r\n scheduleType: x.scheduleType,\r\n task_Id: x.task_Id\r\n };\r\n return transDocViewModel;\r\n });\r\n }\r\n\r\n getDistributionViewModel(): ITransmittalDistributionViewModel[] {\r\n return this.distributionList.map(x => {\r\n let distributionView: ITransmittalDistributionViewModel = {\r\n member_Name: x.members.map((mem: {\r\n memberName: any;\r\n }) => mem.memberName).join('/'),\r\n receiver_Group: x.receiver_Group,\r\n quantity: x.quantity,\r\n remarks: x.remarks,\r\n category_Description: x.category.dedDescription,\r\n category_Short_Description: x.category.dedShortDescription,\r\n type_Description: x.type.map((x: {\r\n dedDescription: any;\r\n }) => x.dedDescription).toString(),\r\n type_Short_Description: x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString(),\r\n category: x.category.dedId,\r\n copy_Type: x.type.dedId\r\n }\r\n return distributionView;\r\n })\r\n }\r\n\r\n createTransmittalGroupForm() {\r\n this.transmittalForm = this._formBuilder.group({\r\n txtMsgSerialNo: new FormControl({\r\n value: '',\r\n disabled: true\r\n }),\r\n txtSerialNo: new FormControl({\r\n value: '',\r\n disabled: true\r\n }, [Validators.pattern(\"^[0-9]*$\")]),\r\n lblIsConfidential: new FormControl(false),\r\n category: new FormControl('', Validators.required),\r\n formCategory: new FormControl('', Validators.required),\r\n txtquantity: new FormControl('', [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n formType: new FormControl(''),\r\n });\r\n this.transmittalForm.get('txtMsgSerialNo')?.valueChanges.subscribe((x: any) => {\r\n this.generateMessageNo();\r\n });\r\n this.transmittalForm.get('txtSerialNo')?.valueChanges.subscribe((x: any) => {\r\n this.generateMessageNo();\r\n })\r\n this.messageGroupForm = this._formBuilder.group({\r\n ccMembersCtrl: new FormControl(),\r\n ccMembers: [\r\n [],\r\n [Validators.required, this.validateMemberSelection.bind(this)]\r\n ],\r\n txtNoOfDays: new FormControl(),\r\n fromMember: new FormControl('', Validators.required),\r\n formFromMember: new FormControl('', Validators.required),\r\n toMember: new FormControl('', Validators.required),\r\n formToMember: new FormControl('', Validators.required)\r\n });\r\n this.messageContentForm = this._formBuilder.group({\r\n txtMailSubject: new FormControl(),\r\n txtCusRef: new FormControl()\r\n });\r\n\r\n }\r\n\r\n private filterMembers(): void {\r\n\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n }\r\n\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n scan((allMembers, newMembers: any) => allMembers.concat(newMembers), []),\r\n );\r\n }));\r\n }\r\n\r\n // Fake backend api\r\n private getMembersFake(startsWith: string, page: number): Observable {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter(option => option.memberName?.toLowerCase().includes(startsWith.toLowerCase()));\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n viewMessageList(category: number, data: any) {\r\n let inputModel: IDocumentMailInputModel = {\r\n DocId: data.doc_Id,\r\n DocumentNo: data.document_No,\r\n Category: category,\r\n ProjectId: this.projectId,\r\n GroupId: this.groupId,\r\n MemberId: this.memberId,\r\n TransType: \"\",\r\n revisionNo: null\r\n };\r\n this.dialog.open(ScheduleDocumentMailListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: inputModel\r\n });\r\n }\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n } else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n resetCcMemberFilter() {\r\n this.messageGroupForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.ccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n // use getter method to access toMembers control value easily\r\n get toMember(): ITransmittalMemberModel {\r\n return this.messageGroupForm.get('toMember')?.value;\r\n }\r\n\r\n get ccFormMembers() {\r\n return this.messageGroupForm.get('ccMembers');\r\n }\r\n\r\n get fromMember(): ITransmittalMemberModel {\r\n return this.messageGroupForm.get('fromMember')?.value;\r\n }\r\n\r\n onScroll() {\r\n //Note: This is called multiple times after the scroll has reached the 80% threshold position.\r\n this._nextPage$.next();\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"message\":\r\n this.messageGroupForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n\r\n }\r\n\r\n validateMemberSelection(abstractControl: AbstractControl): ValidationErrors | null | undefined | any {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (!!selectedValue) {\r\n selectedValue = selectedValue.map(x => x.memberId);\r\n }\r\n if (selectedValue && !selectedValue.every(member => this.masterMemberIds.includes(member))) {\r\n return {\r\n IsError: true\r\n };\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n ontransmittalFormatChange(value: string) {\r\n this.transmittalFormat = value;\r\n }\r\n\r\n onNumFormatChange(value: string) {\r\n this.numFormat = value;\r\n this.isShowSerialNo = this.numFormat == 'Auto' || this.numFormat == 'Semi';\r\n if (this.numFormat == 'Auto') {\r\n this.transmittalForm.get('txtMsgSerialNo')?.disable();\r\n this.transmittalForm.get('txtSerialNo')?.disable();\r\n this.GetMessageSerialNo();\r\n } else if (this.numFormat == 'Semi') {\r\n this.transmittalForm.get('txtSerialNo')?.enable();\r\n this.transmittalForm.get('txtMsgSerialNo')?.disable();\r\n this.GetMessageSerialNo();\r\n } else if (this.numFormat == 'Manual') {\r\n this.transmittalForm.get('txtMsgSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtSerialNo')?.setValue('');\r\n this.transmittalForm.get('txtMsgSerialNo')?.enable();\r\n this.transmittalForm.get('txtSerialNo')?.disable();\r\n }\r\n }\r\n\r\n public getMessageNumber(): string {\r\n let docNo: string = this.getFormValue(\"txtMsgSerialNo\", this.transmittalForm);\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi')\r\n return docNo + '-' + this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n else\r\n return docNo;\r\n }\r\n\r\n onResponseRequiredChange(value: any) {\r\n this.responseRequired = value;\r\n }\r\n\r\n attachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: -1,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n documents: [{\r\n value: data.doc_Id,\r\n text: data.document_No,\r\n revisionNo: data.revision_No\r\n }],\r\n isEditable: false\r\n },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.signedDocuments.push({\r\n docId: res.docId,\r\n fileName: fileName.substring(0, fileName.lastIndexOf(\".\")),\r\n fileExtension: fileExtn,\r\n fileSize: res.fileSize,\r\n revisionNo: res.revisionNo\r\n });\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n data.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n }\r\n\r\n bulkAttachmentClick() {\r\n if (this.documentViewList.length > 0) {\r\n let documentList: Array = new Array();\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n documentList.push({\r\n value: dataItem.doc_Id,\r\n text: dataItem.document_No,\r\n revisionNo: dataItem.revision_No\r\n });\r\n });\r\n\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: -1,\r\n docId: 0,\r\n revisionNo: \"\",\r\n libraryName: FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n documents: documentList,\r\n isEditable: true\r\n },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.signedDocuments.push({\r\n docId: res.docId,\r\n fileName: fileName.substring(0, fileName.lastIndexOf(\".\")),\r\n fileExtension: fileExtn,\r\n fileSize: res.fileSize,\r\n revisionNo: res.revisionNo\r\n });\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: dataItem.doc_Id,\r\n revisionNo: dataItem.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n dataItem.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n });\r\n }\r\n }\r\n\r\n viewAttachmentClick(data: ITransmittalDocViewModel) {\r\n if (this.MessageId > 0) {\r\n const dialog = this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: this.MessageId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n isDeleteEnable: false,\r\n documentNo: this.messageNo,\r\n task_ID: this.task_id_list\r\n },\r\n });\r\n\r\n dialog.afterClosed().subscribe((res: any) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n data.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n } else {\r\n const dialog = this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: -1,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n isDeleteEnable: data.scheduleType == 3 ? false : true,\r\n documentNo: this.messageNo,\r\n task_ID: data.task_Id ? data.task_Id : this.task_id_list\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n data.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n }\r\n }\r\n\r\n public cancelHandler(rowIndex: any): void {\r\n this.closeEditor(rowIndex);\r\n }\r\n\r\n private closeEditor(rowIndex: number | undefined): void {\r\n this.docGrid.closeRow(rowIndex);\r\n }\r\n\r\n editDocRowDynamic(dataItem: any) {\r\n let rowIndex = this.documentViewList.findIndex(data => data.category == dataItem.category && data.type == dataItem.type);\r\n\r\n if (!!dataItem.category) {\r\n this.DocSelectedCategory = dataItem.category.dedId;\r\n } else {\r\n this.DocSelectedCategory = null;\r\n }\r\n if (!!dataItem.type) {\r\n this.DocSelectedType = dataItem.type.dedId;\r\n } else {\r\n this.DocSelectedType = null;\r\n }\r\n this.docGrid.editRow(rowIndex);\r\n }\r\n\r\n cancelRowData(data: any) {\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n getDynamicForm() {\r\n let _getProjectElements = this._projService.getProjectElements({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n IsQueryForStaticElement: false\r\n }).subscribe(\r\n (res: IProjectElementsOutput[]) => {\r\n\r\n this.projectElements = res;\r\n this.elementsConfig = res.map(x => {\r\n let field: FieldConfig;\r\n let childDEId = null;\r\n let childDEDescription = \"\";\r\n let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n if (data.length > 0) {\r\n childDEId = data[0].elementId;\r\n childDEDescription = data[0].elementDescription;\r\n }\r\n\r\n field = {\r\n de_id: x.elementId,\r\n module_id: Module.Transmittal,\r\n dependent_de_id: x.dependentElementId,\r\n dependent_de_Description: x.dependentElementDescription,\r\n child_de_id: childDEId,\r\n child_de_Description: childDEDescription,\r\n name: x.elementDescription,\r\n deDescription: x.elementDescription,\r\n type: 'select',\r\n value: new BehaviorSubject(null)\r\n }\r\n if (x.isMandatory) {\r\n field.validations = [{\r\n name: \"required\",\r\n validator: Validators.required,\r\n message: field.name + \" is Required\"\r\n }]\r\n }\r\n if (x.isNumbering) {\r\n this.numElements.set(x.elementDescription, '');\r\n }\r\n return field;\r\n });\r\n this.dynamicForm.fields = this.elementsConfig;\r\n this.dynamicForm.createControl();\r\n\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n //Numbering elements array\r\n let numberingElements: string[] = Array.from(this.numElements.keys());\r\n numberingElements.forEach(element => {\r\n resForm.get(element)?.valueChanges.subscribe((x: any) => {\r\n if (!!x) {\r\n if (this.numElements.has(element)) {\r\n if (!!x)\r\n this.numElements.set(element, x.dedShortDescription);\r\n else\r\n this.numElements.set(element, '');\r\n }\r\n if ((this.numFormat == 'Auto' || this.numFormat == 'Semi'))\r\n this.GetMessageSerialNo();\r\n }\r\n });\r\n });\r\n this.onCascadingAutocomplete_Change();\r\n });\r\n this.UnsubscribeArray.push(_getProjectElements)\r\n }\r\n\r\n onCascadingAutocomplete_Change() {\r\n this.elementsConfig.forEach((data: any) => {\r\n if (!!data.child_de_id) {\r\n this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe((x: any) => {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n if (_field.length > 0 && !!parentControlSelectedValue) {\r\n let _getProjectElementCascadingDetails = this._projService.getProjectElementCascadingDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n deId: _field[0].de_id,\r\n deDescription: _field[0].deDescription,\r\n dependentDEId: _field[0].dependent_de_id,\r\n dependentDEDId: parentControlSelectedValue.dedId\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if (res.length > 0) {\r\n res.map(val => val.displayText = (val.dedShortDescription!! && val.dedShortDescription.trim().length > 0 ? (val.dedShortDescription + \" - \") : \"\") + val.dedDescription);\r\n _field[0].values = res;\r\n } else {\r\n _field[0].values = [];\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(_getProjectElementCascadingDetails)\r\n } else {\r\n _field[0].values = [];\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n /**\r\n *Get Message Serial No\r\n */\r\n GetMessageSerialNo() {\r\n //Coin the Document number based on the element values selection changes\r\n let elementValues: string[] = Array.from(this.numElements.values());\r\n let selectedElementValues: string[] = elementValues.filter(val => val != '');\r\n this.msgNo = elementValues.filter(val => val != '').join('-');\r\n this.transmittalForm.get('txtMsgSerialNo')?.setValue(this.msgNo);\r\n //Ensure all the mandatory numering elements selected\r\n if (elementValues.length > 0 && elementValues.length == selectedElementValues.length) {\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n this.elementInp = this.projectElements.filter(x => x.isNumbering).map(x => {\r\n let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n if (!!selectedValue) {\r\n let result: ITransmittalElementSLNoInputModel = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n deDescription: x.elementDescription,\r\n dedDescription: selectedValue.dedDescription,\r\n dedShortDescription: selectedValue.dedShortDescription,\r\n sortBy: +selectedValue.sortBy\r\n\r\n\r\n }\r\n return result;\r\n }\r\n });\r\n let inputModel: ITransmittalSerialNoInputModel = {\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n elementDetails: this.elementInp\r\n };\r\n let _getTransmittalSerialNo = this._transmittalMsgService.getTransmittalSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n //Set manipulated value from the parent component(W.r.t other documents elements selection while bulk upload)\r\n this.transmittalForm.get('txtSerialNo')?.setValue(String(result.result).padStart(this.serialNoLength, '0'));\r\n });\r\n this.UnsubscribeArray.push(_getTransmittalSerialNo);\r\n }\r\n }\r\n\r\n /**\r\n * Get Element Details\r\n */\r\n public getElementDetails(elementName: string) {\r\n let _getProjectElementDetails = this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n deDescription: elementName\r\n })\r\n .subscribe((res: any[]) => {\r\n switch (elementName) {\r\n case \"Message Category\":\r\n this.categoryList = res;\r\n if (this.categoryList.length == 1)\r\n this.transmittalForm.get(\"formCategory\")?.setValue(this.categoryList[0].dedDescription);\r\n break;\r\n case \"Copy Type\":\r\n this.copyTypeList = res;\r\n break;\r\n }\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(_getProjectElementDetails);\r\n }\r\n\r\n setMessageValues(event: {\r\n text: string; additionalValues: {\r\n additionalValues: any;\r\n };\r\n }, formControlName: string) {\r\n this.mailType = event.text;\r\n this.transmittalForm.get(formControlName)?.setValue(event.additionalValues.additionalValues);\r\n }\r\n\r\n setTransmittalTypeValues(event: { emittingList: [additionalValues: any, value: number | null | undefined]; }, formControlName: string) {\r\n\r\n this.transmittalForm.get(formControlName).setValue(event.emittingList.map(x => x.additionalValues));\r\n this.selectedTransmittalType = event.emittingList.map(x => x.value);\r\n\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n let _type = this.transmittalForm.get(\"formType\")?.value;\r\n\r\n if (!!_type) {\r\n let _getSelectedType: any[] = [];\r\n _getSelectedType = [];\r\n _getSelectedType = _type;\r\n\r\n dataItem.type = _getSelectedType;\r\n dataItem.selectedType = _getSelectedType.map(x => x.dedId)\r\n }\r\n\r\n });\r\n }\r\n\r\n saveTransmittal(is_Send_Mail: boolean) {\r\n if (this.messageGroupForm.valid && this.transmittalForm.valid && this.messageContentForm.valid && this.dynamicForm.value.valid) {\r\n let findEmptyfields: any;\r\n findEmptyfields = this.distributionList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n });\r\n if (findEmptyfields.length > 0) {\r\n this.editRowDynamic(findEmptyfields[0]);\r\n return;\r\n }\r\n if (this.distributionList.length == 0) {\r\n this.notificationService.showToast(\"Distribution List Cannot be Empty\", \"Warning\");\r\n return;\r\n }\r\n if (this.documentList.length == 0) {\r\n this.notificationService.showToast(\"No Documents Attached\", \"Warning\");\r\n return;\r\n }\r\n if (is_Send_Mail == false) {\r\n if (this.documentViewList && this.documentViewList.some(x => !x.isAttachemtUploded)) {\r\n this.notificationService.showToast(\"Every document should have at least one attachment\", \"Warning\");\r\n return;\r\n }\r\n }\r\n\r\n this.previewTransmittal();\r\n let disciplineId = 0;\r\n let discipline = '';\r\n let selectedValue: any = this.dynamicForm.value.get(\"Discipline\")?.value;\r\n if (selectedValue != null && selectedValue != undefined) {\r\n disciplineId = selectedValue.dedId;\r\n discipline = selectedValue.dedDescription;\r\n }\r\n let semiNo: string = '0';\r\n let msgNo: string = this.getFormValue(\"txtMsgSerialNo\", this.transmittalForm);\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n msgNo = msgNo + '-' + this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n }\r\n let transmittalMsgInputDetails: ITransmittalMsgInputModel = {\r\n inputType: this.inputType,\r\n project_Id: this.projectId,\r\n message_Id: this.MessageId,\r\n message_Number: is_Send_Mail ? msgNo : null,\r\n message_Serial_Number: is_Send_Mail ? +semiNo : null,\r\n discipline: disciplineId,\r\n cust_Ref_No: this.getFormValue('txtCusRef', this.messageContentForm),\r\n parent_Message_Id: 0,\r\n message_Type: this.getFormValue('category', this.transmittalForm).dedId,\r\n has_Attachments: this.documentList.length > 0 || this.messageList.length > 0,\r\n is_Confidential: this.getFormValue('lblIsConfidential', this.transmittalForm) == null ? false : this.getFormValue('lblIsConfidential', this.transmittalForm),\r\n message_Category: 3,\r\n message_Subject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n message_Body: this.transmittalViewComponent.getHtmlContent(),\r\n response_Type: this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n respond_On: this.RespondOn,\r\n issue_Reason: 10,\r\n sent_On: is_Send_Mail ? this.datevalue : null,\r\n is_Mail_Sent: is_Send_Mail,\r\n is_Active: true,\r\n userId: this.memberId,\r\n message_Note: !!this.selectedRemarks ? this.selectedRemarks : null\r\n };\r\n let _insertUpdateTransmittalDetails = this._transmittalMsgService.InsertUpdateTransmittalDetails(transmittalMsgInputDetails).subscribe((x: StandardOutputModel | any) => {\r\n if (x.successCode == 200) {\r\n let messageId: number = +x.result;\r\n let transmittalReceiverDetails = this.saveTransmittalReceiverDetails(messageId);\r\n let transmittalDistributionDetails = this.saveTransmittalDistributionDetails(messageId);\r\n let transmittalDocMsgDetails = this.saveTransmittalMsgDocDetails(messageId);\r\n let transmittalDocDetails = this.saveTransmittalDocDetails(messageId);\r\n let transmittalDocCopyDetails = this.saveTransmittalDocCopyDetails(messageId);\r\n let transmittalDocEleDetails = this.saveTransmittalDocEleDetails(messageId)\r\n let _transmittaldDetails = forkJoin([transmittalReceiverDetails,\r\n transmittalDistributionDetails,\r\n transmittalDocMsgDetails,\r\n transmittalDocDetails,\r\n transmittalDocCopyDetails,\r\n transmittalDocEleDetails\r\n ]).subscribe((res: any[]) => {\r\n if (this.signedDocuments.length > 0) {\r\n let signedDocs: ITransmittalSignedDocumentsModel = {\r\n projectId: this.projectId,\r\n msgId: messageId,\r\n createdBy: this.memberId,\r\n signedDocuments: this.signedDocuments\r\n }\r\n let _updateSignedDocumentsMessageId = this._transmittalMsgService.UpdateSignedDocumentsMessageId(signedDocs).subscribe(async (res: StandardOutputModel | any) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_updateSignedDocumentsMessageId);\r\n }\r\n if (this.attachmentsList.length > 0) {\r\n let attachedDoc: IMsgAttachmentsModel = { projectId: this.projectId, msgId: messageId, createdBy: this.memberId, messageDocuments: this.attachmentsList }\r\n let _updateCommunicationDocumentMessageId = this.communicationService.updateCommunicationDocsMsgId(attachedDoc).subscribe((res: any) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_updateCommunicationDocumentMessageId);\r\n }\r\n\r\n if (is_Send_Mail == true) {\r\n let sTo: string = this.toMember.eMailId;\r\n let sCC: string = this.ccMembers.map((x: any) => x.eMailId).join(',');\r\n let sFrom: string = this.fromMember.eMailId;\r\n let mailDetails: ITransmittalMailDetails = {\r\n from_List: sFrom,\r\n to_List: sTo,\r\n cc_List: sCC,\r\n project_Code: this.commonService.getProjectCode(),\r\n discipline: discipline,\r\n mail_Body: this.transmittalViewComponent.getHtmlContent(),\r\n mail_Subject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n message_Id: messageId\r\n }\r\n let _sendTransmittalMail = this._transmittalMsgService.SendTransmittalMail(mailDetails).subscribe((res: StandardOutputModel | any) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n if (this.isWorkflow != true) {\r\n this.notificationService.showPopup(\"Transmittal Sent successfully\", \"Success\");\r\n }\r\n this.reSet();\r\n this.getTransmittalDetails();\r\n this.closeDialog(x.result);\r\n } else {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_sendTransmittalMail);\r\n } else {\r\n if (this.isWorkflow != true) {\r\n this.notificationService.showPopup(\"Transmittal Saved successfully\", \"Success\");\r\n }\r\n this.reSet();\r\n this.getTransmittalDetails();\r\n this.closeDialog(x.result);\r\n }\r\n });\r\n this.UnsubscribeArray.push(_transmittaldDetails);\r\n } else {\r\n this.notificationService.showPopup(x.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_insertUpdateTransmittalDetails);\r\n } else {\r\n this.notificationService.showPopup(\"Mandatory fields are required\", \"Warning\");\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.messageGroupForm);\r\n this.formMarkAsTouched(this.transmittalForm);\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n }\r\n }\r\n\r\n private generateMessageNo() {\r\n let serialNo: any = this.getFormValue('txtSerialNo', this.transmittalForm);\r\n this.messageNo = this.getFormValue('txtMsgSerialNo', this.transmittalForm);\r\n if (!!serialNo) {\r\n this.messageNo = this.messageNo + \"-\" + this.getFormValue('txtSerialNo', this.transmittalForm);\r\n }\r\n }\r\n\r\n private saveTransmittalReceiverDetails(messageId: number) {\r\n let fromMembers: ITransmittalMemberModel[] = [];\r\n fromMembers.push(this.fromMember);\r\n let toMembers: ITransmittalMemberModel[] = [];\r\n toMembers.push(this.toMember);\r\n let transmittalReceiverInput: ITransmittalMsgReceiverInput = {\r\n message_Id: messageId,\r\n transmittalFromDetails: fromMembers.map(x => {\r\n let fromMember: IReceiverInput = {\r\n member_Id: x.memberId,\r\n receiver_Type: 1,\r\n receiver_Group: 0,\r\n sort_By: 1\r\n };\r\n return fromMember;\r\n }),\r\n transmittalToDetails: toMembers.map(x => {\r\n let toMember: IReceiverInput = {\r\n member_Id: x.memberId,\r\n receiver_Type: 2,\r\n receiver_Group: 0,\r\n sort_By: 1\r\n };\r\n return toMember;\r\n\r\n }),\r\n transmittalCcDetails: this.ccMembers.map(x => {\r\n let ccMember: IReceiverInput = {\r\n member_Id: x.memberId,\r\n receiver_Type: 3,\r\n receiver_Group: x.groupBy,\r\n sort_By: 1\r\n };\r\n return ccMember;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalReceiverDetails(transmittalReceiverInput);\r\n }\r\n\r\n private saveTransmittalDistributionDetails(messageId: number) {\r\n let transmittalDistributionInput: ITransmittalGroupMemberInput = {\r\n message_Id: messageId,\r\n distributionMemberDetails: this.distributionList.map(x => {\r\n let distDetails: IDistributionMemberDetails = {\r\n group_Id: x.receiver_Group,\r\n group_Member: x.members.map((mem: {\r\n memberName: any;\r\n }) => mem.memberName).join('/'),\r\n quantity: x.quantity,\r\n category: x.category == null ? \"\" : x.category.dedShortDescription,\r\n copy_Type: x.type == null ? \"\" : x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString(),\r\n address: null,\r\n remarks: x.remarks\r\n };\r\n return distDetails;\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalGroupMemberDetails(transmittalDistributionInput);\r\n }\r\n\r\n private saveTransmittalMsgDocDetails(messageId: number) {\r\n let transmittalDocumentMessageInput: ITransmittalMsgDocumentInput = {\r\n message_Id: messageId,\r\n transmittalDocumentMessageDetails: this.documentUpdateList.map(x => {\r\n let distDetails: ITransmittalDocumentMsgDetails = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n response_Remarks: x.remarks,\r\n response: this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalMsgDocDetails(transmittalDocumentMessageInput);\r\n }\r\n\r\n private saveTransmittalDocDetails(messageId: number) {\r\n let transmittalDocumentInput: ITransmittalDocumentInput = {\r\n message_Id: messageId,\r\n transmittalDocumentDetails: this.documentUpdateList.map(x => {\r\n let distDetails: ITransmittalDocumentDetails = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n quantity: x.quantity,\r\n doc_Type: x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString(),\r\n category: x.category.dedId,\r\n remarks: x.remarks\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalDocDetails(transmittalDocumentInput);\r\n }\r\n\r\n private saveTransmittalDocCopyDetails(messageId: number) {\r\n let transmittalDocumentCopyInput: any = {\r\n message_Id: messageId,\r\n transmittalDocumentCopyDetails: this.documentUpdateList.map(x => {\r\n let distDetails: ITransmittalDocumentCopyDetails = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n no_of_Copies: x.quantity,\r\n copy_Type: x.type.dedId,\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalDocCopyDetails(transmittalDocumentCopyInput);\r\n }\r\n\r\n private saveTransmittalDocEleDetails(messageId: number) {\r\n let transmittalDocEleDetails: ITransmittalDocumentElementDetails[] = [];\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n transmittalDocEleDetails = this.projectElements.map(x => {\r\n let selectedValue: any = resForm.get(x.elementDescription)?.value;\r\n let result: ITransmittalDocumentElementDetails = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n userId: this.memberId,\r\n isActive: true,\r\n messageId: messageId\r\n }\r\n return result;\r\n });\r\n let transmittalDocumentElement: ITransmittalDocumentElementInput = {\r\n elementDetailsMapping: transmittalDocEleDetails\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalDocElementDetails(transmittalDocumentElement);\r\n }\r\n\r\n async getMembers() {\r\n this.membersList = await this.memberService.GetMembersList({\r\n group_Id: this.groupId,\r\n member_Id: null\r\n }).toPromise();\r\n }\r\n\r\n public getSignatureList() {\r\n let _getSignatureList = this.communicationService.GetSignatureList({\r\n MemberId: this.memberId\r\n })\r\n .subscribe((res: ISignatureOutputModel[]) => {\r\n this.signatureList = res;\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(_getSignatureList);\r\n }\r\n\r\n showDocumentCart() {\r\n let obj: any = {}\r\n if (this.documentViewList.length > 0) {\r\n obj[\"data\"] = this.documentViewList;\r\n }\r\n const dialogRef = this.dialog.open(DocumentViewGridComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: obj\r\n });\r\n dialogRef.afterClosed().subscribe((res: any) => {\r\n this.WorkflowDocument = res;\r\n if (res.length > 0) {\r\n this.reciviedDoc = res.filter((data: {\r\n isSelected: boolean;\r\n }) => data.isSelected == true);\r\n Array.prototype.push.apply(this.documentList, this.reciviedDoc);\r\n } else {\r\n if (this.documentList.length < 0) {\r\n this.documentList = [];\r\n }\r\n }\r\n let currentDocList: ITransmittalDocViewModel[] = this.documentViewList;\r\n this.documentViewList = this.documentList.map(x => {\r\n let _category: any = this.transmittalForm.get(\"category\")?.value;\r\n let _type: any = this.transmittalForm.get(\"formType\")?.value;\r\n let _remarks: any = \"\";\r\n let _quantity: any = this.transmittalForm.get(\"txtquantity\")?.value;\r\n let transDocViewModel: ITransmittalDocViewModel = currentDocList.filter(tdoc => tdoc.doc_Id == x.docId)[0];\r\n if (!!transDocViewModel) {\r\n _category = transDocViewModel.category;\r\n _type = transDocViewModel.type;\r\n _remarks = transDocViewModel.remarks;\r\n _quantity = transDocViewModel.quantity;\r\n }\r\n\r\n this._getSelected_Type = [];\r\n this._getSelected_Type.push(_type);\r\n\r\n let docViewModel: ITransmittalDocViewModel = {\r\n doc_Id: x.docId,\r\n revision_No: x.revision,\r\n title: x.title,\r\n document_No: x.documentNo,\r\n authorized_By: x.authorisedByName,\r\n category: _category,\r\n type: this._getSelected_Type,\r\n remarks: _remarks,\r\n quantity: _quantity,\r\n isAttachemtUploded: false,\r\n selectedCategory: _category.dedId,\r\n selectedType: this._getSelected_Type.map(x => x.dedId)\r\n };\r\n return this.validateAttachment(docViewModel);\r\n });\r\n this.documentUpdateList = this.documentViewList;\r\n });\r\n }\r\n\r\n validateAttachment(input: ITransmittalDocViewModel, task_Id?: string): ITransmittalDocViewModel {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: (input.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: input.doc_Id,\r\n revisionNo: input.revision_No,\r\n task_ID: task_Id ? task_Id : this.task_id_list\r\n })\r\n }).subscribe((_data: any[]) => {\r\n input.isAttachemtUploded = _data.length > 0 ? true : false;\r\n return input;\r\n });\r\n this.UnsubscribeArray.push(_getFiles);\r\n return input;\r\n }\r\n\r\n removeDocument(data: any) {\r\n if (this.documentList.length > 0) {\r\n this.documentList.forEach((value, index) => {\r\n if (value.docId == data.dataItem.doc_Id) {\r\n this.documentList.splice(index, 1);\r\n }\r\n });\r\n }\r\n if (this.documentViewList.length > 0) {\r\n this.documentViewList.forEach((value, index) => {\r\n if (value.doc_Id == data.dataItem.doc_Id) {\r\n this.documentViewList.splice(index, 1);\r\n }\r\n });\r\n }\r\n if (this.signedDocuments.length > 0) {\r\n this.signedDocuments.forEach((value, index) => {\r\n if (value.docId == data.dataItem.doc_Id) {\r\n this.documentList.splice(index, 1);\r\n }\r\n })\r\n }\r\n this.documentUpdateList = this.documentViewList;\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', {\r\n month: 'short'\r\n })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n getValue(selectedText: {\r\n value: string | null;\r\n }) {\r\n this.isRevisedDateInvalid = selectedText.value == null;\r\n this.RespondOn = selectedText.value;\r\n }\r\n\r\n addDays() {\r\n let value = this.getFormValue('txtNoOfDays', this.messageGroupForm);\r\n if (!isNaN(value)) {\r\n var futureDate = new Date();\r\n futureDate.setDate(futureDate.getDate() + value);\r\n this.RespondOn = formatDate(futureDate, 'dd-MM-yyyy', 'en-US');;\r\n this.datevalue = futureDate;\r\n return futureDate;\r\n } else {\r\n this.notificationService.showToast(\"Enter Valid Number\", \"Warning\");\r\n\r\n }\r\n }\r\n\r\n closeDialog(message_Number?: string) {\r\n if (this.attachmentsList && this.attachmentsList.length > 0 && !message_Number) {\r\n this.attachmentsList.forEach(x => {\r\n this._fileService.DeleteFile({ libraryNumber: 4, fileId: x.fileId, fileName: x.fileName + '.' + x.fileExtension }).subscribe(data => { });\r\n })\r\n }\r\n this.dialogRef.close(message_Number);\r\n }\r\n\r\n getGroupByValue(member: ITransmittalMemberModel): number | null | undefined {\r\n return member.groupBy;\r\n }\r\n\r\n onGroupByChange(value: number, member: ITransmittalMemberModel) {\r\n if (typeof Number(value) === \"number\")\r\n member.groupBy = value;\r\n else\r\n member.groupBy = null;\r\n }\r\n\r\n getElementDesc(element: any): string {\r\n if (!!element)\r\n return element.dedShortDescription + ' - ' + element.dedDescription;\r\n return '';\r\n }\r\n\r\n getTypeElementDesc(element: any[]): string {\r\n if (!!element && element.length > 0)\r\n return element.map(x => x.dedShortDescription).toString();\r\n return '';\r\n }\r\n\r\n public getTransmittalDetails() {\r\n let _getTransmittalDetails = this._transmittalService.GetTransmittalDetails({\r\n project_Id: this.projectId,\r\n group_Id: this.groupId\r\n })\r\n .subscribe((res: ITransmittalTemplateModel[]) => {\r\n this.templateDetails = res;\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(_getTransmittalDetails);\r\n }\r\n\r\n numberOnly(event: {\r\n which: any; keyCode: any;\r\n }): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n changeTransmittalTemplateList(event: {\r\n value: string | number | null;\r\n }) {\r\n if (event.value != \"-2\") {\r\n this.reSet();\r\n this.template_Id = event.value;\r\n let transmittalDetails: Observable = this._transmittalService.GetTransmittalDetails({\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n template_Id: event.value\r\n });\r\n let receiverDetails: Observable = this._transmittalService.GetTransmittalReceiverDetails({\r\n template_Id: event.value\r\n });\r\n let distributionDetails: Observable = this._transmittalService.GetTransmittalDistributionDetails({\r\n template_Id: event.value\r\n });\r\n let _transmittalDetails = forkJoin(transmittalDetails, receiverDetails, distributionDetails).subscribe((res: any[]) => {\r\n this.setTransmittalDetails(res[0]);\r\n this.setReceiverDetails(res[1]);\r\n let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n this.distributionList = res[2].map((x: {\r\n copy_Type: {\r\n toString: () => string;\r\n }; receiver_Group: number | null | undefined; category: any; remarks: any; quantity: any;\r\n }) => {\r\n this.getSelected_Type = [];\r\n let selected_type: any[];\r\n selected_type = x.copy_Type.toString().replace(/-/g, \"\").split(',');\r\n for (let i = 0; i < selected_type.length; i++) {\r\n for (let j = 0; j < this.copyTypeList.length; j++) {\r\n if (selected_type[i] == this.copyTypeList[j].dedShortDescription) {\r\n this.getSelected_Type.push(this.copyTypeList[j]);\r\n }\r\n }\r\n };\r\n let distributerViewModel: ITransmittalGroupViewModel = {\r\n receiver_Group: x.receiver_Group,\r\n members: groupByResult.filter(y => y.filter(z => z.groupBy == x.receiver_Group)[0])[0],\r\n category: this.categoryList.filter(y => y.dedId == x.category)[0],\r\n type: this.getSelected_Type,\r\n remarks: x.remarks,\r\n quantity: x.quantity\r\n };\r\n return distributerViewModel;\r\n });\r\n\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n let _category = this.categoryList.filter(y => y.dedId == res[0][0].category)[0];\r\n let _quantity = res[0][0].quantity;\r\n let _type = this.transmittalForm.get(\"formType\")?.value;\r\n\r\n if (!!_category) {\r\n dataItem.category = _category;\r\n dataItem.selectedCategory = _category.dedId\r\n }\r\n\r\n if (!!_quantity) {\r\n dataItem.quantity = _quantity;\r\n }\r\n\r\n if (!!_type) {\r\n let _getSelectedType: any[] = [];\r\n _getSelectedType = [];\r\n _getSelectedType.push(_type);\r\n\r\n dataItem.type = _getSelectedType;\r\n dataItem.selectedType = _getSelectedType.map(x => x.dedId)\r\n }\r\n\r\n });\r\n });\r\n this.UnsubscribeArray.push(_transmittalDetails);\r\n } else {\r\n this.reSet();\r\n }\r\n }\r\n\r\n setTransmittalDetails(res: ITransmittalTemplateModel[]) {\r\n this.messageContentForm.get(\"txtMailSubject\")?.setValue(res[0].template_Subject);\r\n this.transmittalForm.get(\"txtquantity\")?.setValue(res[0].quantity);\r\n this.selectedCategory = res[0].category;\r\n this.selectedRemarks = res[0].template_Remarks;\r\n this.transmittalForm.get(\"formCategory\")?.setValue(this.selectedCategory);\r\n }\r\n\r\n setReceiverDetails(transmittalReceiverInput: ITransmittalReceiverDetails[]) {\r\n let fromMembers: ITransmittalMemberModel[] = this.getTransmittalMembers(transmittalReceiverInput[0].receiverFromDetails);\r\n if (!!fromMembers && !!fromMembers[0]) {\r\n this.selectedFrom = fromMembers[0].memberId;\r\n this.messageGroupForm.get(\"formFromMember\")?.setValue(this.selectedFrom);\r\n }\r\n let toMembers: ITransmittalMemberModel[] = this.getTransmittalMembers(transmittalReceiverInput[0].receiverToDetails);\r\n if (!!toMembers && !!toMembers[0]) {\r\n this.selectedTo = toMembers[0].memberId;\r\n this.messageGroupForm.get(\"formToMember\")?.setValue(this.selectedTo);\r\n }\r\n this.ccMembers = this.getTransmittalMembers(transmittalReceiverInput[0].receiverCcDetails);\r\n if (this.ccMembers != null) {\r\n this.ccFormMembers.setValue([...this.ccMembers]);\r\n }\r\n\r\n this.ccFormMembers.updateValueAndValidity();\r\n\r\n this.resetCcMemberFilter();\r\n }\r\n\r\n showGroupView() {\r\n this.distGrid.closeRow(this.DistrowIndex);\r\n if (this.ccMembers.filter(x => !x.groupBy).length > 0) {\r\n this.notificationService.showPopup(\"Please enter group by value for all CC members\", \"Warning\");\r\n return;\r\n }\r\n let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n let existingDistributionList: ITransmittalGroupViewModel[] = this.distributionList;\r\n this.distributionList = groupByResult.map(x => {\r\n let groupBy: any = x[0].groupBy;\r\n let category: any = this.transmittalForm.get(\"category\")?.value;;\r\n let type: any = null;\r\n let quantity: any = this.transmittalForm.get('txtquantity')?.value;\r\n let remarks: any = \"\";\r\n if (!!existingDistributionList && existingDistributionList.length > 0) {\r\n let groupView: ITransmittalGroupViewModel = existingDistributionList.filter(dl => dl.receiver_Group == x[0].groupBy)[0];\r\n if (!!groupView) {\r\n category = groupView.category;\r\n type = groupView.type;\r\n quantity = groupView.quantity;\r\n remarks = groupView.remarks;\r\n }\r\n }\r\n let distributerViewModel: ITransmittalGroupViewModel = {\r\n receiver_Group: groupBy,\r\n members: x,\r\n category: category,\r\n type: type,\r\n remarks: remarks,\r\n quantity: quantity\r\n };\r\n return distributerViewModel;\r\n })\r\n }\r\n\r\n getMemberNames(dataItem: ITransmittalMemberModel[]): string {\r\n return dataItem.map(x => x.memberName).join(' / ');\r\n }\r\n\r\n private saveCurrentDistribution(): void {\r\n if (this.formGroupDist) {\r\n this.currentEditGroupViewModel.type = this.formGroupDist.get('type')?.value;\r\n this.currentEditGroupViewModel.category = this.formGroupDist.get('category')?.value;\r\n this.currentEditGroupViewModel.quantity = this.formGroupDist.get('quantity')?.value;\r\n this.currentEditGroupViewModel.remarks = this.formGroupDist.get('remarks')?.value;\r\n if (this.distributionList.filter(x => x.receiver_Group == this.currentEditGroupViewModel.receiver_Group).length > 0) {\r\n let index = this.distributionList.findIndex(x => x.receiver_Group == this.currentEditGroupViewModel.receiver_Group);\r\n this.distributionList.splice(index, 1);\r\n }\r\n this.distributionList.push(this.currentEditGroupViewModel);\r\n this.closeEditorDistList();\r\n }\r\n }\r\n\r\n /**\r\n * Close the row editor\r\n */\r\n public cancelHandlerDistList(): void {\r\n this.closeEditorDistList();\r\n }\r\n\r\n private closeEditorDistList(): void {\r\n this.distGrid.closeRow(this.editedRowIndex);\r\n this.editedRowIndex = undefined;\r\n this.currentEditGroupViewModel = undefined;\r\n this.formGroupDist = undefined;\r\n }\r\n\r\n editRowDynamic(dataItem: any) {\r\n this.formGroupDist = createFromGroupDist(dataItem);\r\n this.distributionList = this.distributionList.sort((a, b) => a.receiver_Group - b.receiver_Group);\r\n let rowIndex!: number;\r\n for (let i = 0; i < this.distributionList.length; i++) {\r\n if (this.distributionList[i].receiver_Group == dataItem.receiver_Group) {\r\n rowIndex = i;\r\n break;\r\n }\r\n }\r\n if (this.editedRowIndexDist >= 0) {\r\n this.grid.closeRow(this.editedRowIndex);\r\n }\r\n if (!!dataItem.category) {\r\n this.selected_Category = dataItem.category.dedId;\r\n this.formGroupDist.get('category')?.setValue(this.selected_Category);\r\n } else {\r\n this.selected_Category = null;\r\n this.formGroupDist.get('category')?.setValue(null);\r\n }\r\n if (!!dataItem.type) {\r\n this.selected_Type = dataItem.type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n this.formGroupDist.get('type')?.setValue(this.selected_Type);\r\n } else {\r\n this.selected_Type = [];\r\n this.formGroupDist.get('type')?.setValue(null);\r\n }\r\n this.formGroupDist.get('quantity')?.setValue(dataItem.quantity);\r\n this.editedRowIndexDist = rowIndex;\r\n this.editedRowIndex = rowIndex;\r\n this.editedRowIndexDist = rowIndex;\r\n this.currentEditGroupViewModel = dataItem;\r\n this.distGrid.editRow(rowIndex);\r\n }\r\n\r\n editRowDataDist(data: any) {\r\n this.selected_Type = [];\r\n this.DistrowIndex = data.rowIndex;\r\n this.formGroupDist = createFromGroupDist(data.dataItem);\r\n //closing previous row, if anything opened\r\n if (this.editedRowIndexDist >= 0) {\r\n data.sender.closeRow(this.editedRowIndexDist);\r\n }\r\n this.editedRowIndexDist = data.rowIndex;\r\n if (!!data.dataItem.type && data.dataItem.type.length > 0) {\r\n this.selected_Type = data.dataItem.type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n this.formGroupDist.get('type')?.setValue(this.selected_Type);\r\n } else {\r\n this.selected_Type = [];\r\n this.formGroupDist.get('type')?.setValue([]);\r\n }\r\n if (!!data.dataItem.category) {\r\n this.selected_Category = data.dataItem.category.dedId;\r\n this.formGroupDist.get('category')?.setValue(this.selected_Category);\r\n } else {\r\n this.selected_Category = null;\r\n this.formGroupDist.get('category')?.setValue(null);\r\n }\r\n this.formGroupDist.get('quantity')?.setValue(data.dataItem.quantity);\r\n this.editedRowIndexDist = data.rowIndex;\r\n this.currentEditGroupViewModel = data.dataItem;\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n public cellClickHandler(data: any): void {\r\n return;\r\n }\r\n\r\n bulkSave(grid: any) {\r\n if (this.documentViewList.length > 0) {\r\n let haserror: boolean = false;\r\n\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n if (!haserror) {\r\n let index = this.documentViewList.findIndex(x => x.doc_Id == dataItem.doc_Id);\r\n if (dataItem.quantity == undefined || dataItem.quantity == null || dataItem.quantity.toString() == \"\" || dataItem.quantity <= 0) {\r\n this.notificationService.showToast(\"Attached document grid serial number \" + (index + 1) + \" - No of Copies is required\", \"Warning\");\r\n haserror = true;\r\n this.isShowbulkSave = true;\r\n return;\r\n } else if (dataItem.category == undefined || dataItem.category == null || dataItem.category.toString() == \"\") {\r\n this.notificationService.showToast(\"Attached document grid serial number \" + (index + 1) + \" - Category is required\", \"Warning\");\r\n haserror = true;\r\n this.isShowbulkSave = true;\r\n return;\r\n } else if (dataItem.type == undefined || dataItem.type == null || dataItem.type.toString() == \"\") {\r\n this.notificationService.showToast(\"Attached document grid serial number \" + (index + 1) + \" - Type is required\", \"Warning\");\r\n haserror = true;\r\n this.isShowbulkSave = true;\r\n return;\r\n } else {\r\n grid.closeRow(rowIndex);\r\n this.isShowbulkSave = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n bulkCancel(grid: any) {\r\n if (this.documentViewList.length > 0) {\r\n this.isShowbulkSave = false;\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n grid.closeRow(rowIndex);\r\n });\r\n }\r\n }\r\n\r\n bulkDelete(grid: any) {\r\n this.isShowbulkSave = false;\r\n this.documentViewList = [];\r\n }\r\n\r\n bulkEdit(grid: any) {\r\n if (this.documentViewList.length > 0) {\r\n this.isShowbulkSave = true;\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n dataItem.selectedType = [];\r\n\r\n if (!!dataItem.type && dataItem.type.length > 0) {\r\n dataItem.selectedType = dataItem.type.map(x => x.dedId);\r\n }\r\n\r\n grid.editRow(rowIndex);\r\n });\r\n }\r\n }\r\n\r\n editRowData(data: any) {\r\n data.dataItem.selectedType = [];\r\n\r\n if (!!data.dataItem.type && data.dataItem.type.length > 0) {\r\n data.dataItem.selectedType = data.dataItem.type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n }\r\n\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n UpdateRowDataDist(data: any) {\r\n if (this.formGroupDist.valid) {\r\n this.saveCurrentDistribution();\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n }\r\n\r\n UpdateRowData(input: any) {\r\n if (input.dataItem.quantity == undefined || input.dataItem.quantity == null || input.dataItem.quantity.toString() == \"\" || input.dataItem.quantity <= 0) {\r\n this.notificationService.showToast(\"No of Copies is required\", \"Warning\");\r\n return;\r\n } else if (input.dataItem.category == undefined || input.dataItem.category == null || input.dataItem.category.toString() == \"\") {\r\n this.notificationService.showToast(\"Category is required\", \"Warning\");\r\n return;\r\n } else if (input.dataItem.type == undefined || input.dataItem.type == null || input.dataItem.type.toString() == \"\") {\r\n this.notificationService.showToast(\"Type is required\", \"Warning\");\r\n return;\r\n } else {\r\n input.sender.closeRow(input.rowIndex);\r\n }\r\n }\r\n\r\n cancelRowDataDist(data: any) {\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n onCategoryChange(val: any) {\r\n this.formGroupDist.get('category')?.setValue(val.additionalValues.additionalValues);\r\n }\r\n\r\n onValueChange(val: any, fieldName: string, dataItem: any) {\r\n if (fieldName.toLocaleLowerCase() == 'quantity') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data)\r\n data[0].quantity = val.target.value;\r\n } else if (fieldName.toLocaleLowerCase() == 'category') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data) {\r\n data[0].category = val.additionalValues.additionalValues;\r\n data[0].selectedCategory = data[0].category.dedId;\r\n }\r\n } else if (fieldName.toLocaleLowerCase() == 'type') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data) {\r\n data[0].type = val.emittingList.map((x: {\r\n additionalValues: any;\r\n }) => x.additionalValues);\r\n data[0].selectedType = data[0].type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n }\r\n } else if (fieldName.toLocaleLowerCase() == 'remarks') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data)\r\n data[0].remarks = val.target.value;\r\n }\r\n this.documentUpdateList = this.documentViewList;\r\n }\r\n\r\n onTypeChange(event: any, gridType?: string, dataItem?: any) {\r\n if (!!event) {\r\n if (gridType == \"distribution\") {\r\n if (event.emittingList.length > 0) {\r\n this.formGroupDist.get('type').setValue(event.emittingList.map((x: {\r\n additionalValues: any;\r\n }) => x.additionalValues));\r\n }\r\n }\r\n }\r\n }\r\n\r\n public remarkChange(value: any): void {\r\n this.formGroupDist.get('remarks').setValue(value.target.value);\r\n }\r\n\r\n public qtyChange(value: any): void {\r\n this.formGroupDist.get('quantity').setValue(value.target.value);\r\n }\r\n\r\n private getTransmittalMembers(members: IReceiverDetails[]): ITransmittalMemberModel[] {\r\n let _refmem = members.map(x => {\r\n if (this.masterMembers.some(y => y.memberId == x.member_Id)) {\r\n let _obj;\r\n let member: ITransmittalMemberModel;\r\n\r\n _obj = this.masterMembers.filter(y => y.memberId == x.member_Id)[0];\r\n\r\n member = {\r\n memberId: _obj ? x.member_Id : null,\r\n memberName: _obj ? x.member_Name : null,\r\n memberShortName: _obj ? _obj.memberShortName : \"\",\r\n eMailId: _obj ? _obj.eMailId : \"\",\r\n staffPSNo: _obj ? _obj.staffPSNo : \"\",\r\n mobileNo: _obj ? _obj.mobileNo : \"\",\r\n groupBy: x.receiver_Group\r\n };\r\n return member;\r\n }\r\n });\r\n return _refmem.filter(value => value != undefined);\r\n }\r\n\r\n previewTransmittal() {\r\n if (this.messageGroupForm.valid && this.transmittalForm.valid && this.messageContentForm.valid && this.dynamicForm.value.valid) {\r\n if (this.distributionList.length == 0) {\r\n this.notificationService.showToast(\"Distribution List Cannot be Empty\", \"Warning\");\r\n return;\r\n }\r\n let findEmptyfields: any;\r\n findEmptyfields = this.distributionList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n });\r\n if (findEmptyfields.length > 0) {\r\n this.editRowDynamic(findEmptyfields[0]);\r\n return;\r\n }\r\n\r\n if (this.documentList.length == 0) {\r\n this.notificationService.showToast(\"No Documents Attached\", \"Warning\");\r\n return;\r\n }\r\n let findocEmptyfields: any;\r\n findocEmptyfields = this.documentViewList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n return;\r\n });\r\n if (findocEmptyfields.length > 0) {\r\n this.editDocRowDynamic(findocEmptyfields[0]);\r\n return;\r\n }\r\n if (this.documentViewList && this.documentViewList.some(x => !x.isAttachemtUploded)) {\r\n this.notificationService.showToast(\"Every document should have at least one attachment\", \"Warning\");\r\n return;\r\n }\r\n this.createTransmittalCoverSheet();\r\n } else {\r\n this.notificationService.showPopup(\"Mandatory fields are missing\", \"Warning\");\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.messageGroupForm);\r\n this.formMarkAsTouched(this.transmittalForm);\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n }\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n\r\n GetWorkFlowStatus() {\r\n if (this.data.WorkflowTemplateDetails)\r\n if (this.data.WorkflowTemplateDetails.workflowStatus && this.data.WorkflowTemplateDetails.workflowStatus.some((x: {\r\n is_Show_Attachment_In_DTN: boolean;\r\n }) => x.is_Show_Attachment_In_DTN == true)) {\r\n this.is_Show_Attachment_In_DTN = true;\r\n this.task_id_list = this.data.WorkflowTemplateDetails.workflowStatus.filter((x: {\r\n is_Show_Attachment_In_DTN: boolean;\r\n }) => x.is_Show_Attachment_In_DTN == true).map((y: {\r\n task_Id: any;\r\n }) => y.task_Id).join();\r\n }\r\n }\r\n\r\n reSet() {\r\n this.messageGroupForm.reset();\r\n this.messageContentForm.reset();\r\n this.MessageId = 0;\r\n this.messageList = [];\r\n this.fromList = [];\r\n this.toList = [];\r\n this.ccList = [];\r\n this.bccList = [];\r\n this.datevalue = new Date(this.getDateFormat());\r\n this.RespondOn = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n this.transmittalFormat = 'Transmittal';\r\n this.numFormat = 'Auto';\r\n this.readonly = true;\r\n this.responseRequired = 'No';\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getSignatureList();\r\n this.getElementDetails(\"Message Category\");\r\n this.getElementDetails(\"Copy Type\");\r\n this.selectedCategory = null;\r\n this.selectedTransmittalType = null\r\n this.selectedTo = null;\r\n this.selectedFrom = null;\r\n this.distributionList = [];\r\n this.ccMembers = [];\r\n this.ccFormMembers.updateValueAndValidity();\r\n this.ccFormMembers.setValue([]);\r\n this.resetCcMemberFilter();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n\r\n\r\n public clickLocalAttachment() {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, msgId: -1, libraryName: FileUploadLibrary.Communication, createdBy: this.memberId, documents: [{ value: -1, text: this.messageNo, revisionNo: \"\" }], isEditable: false },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n });\r\n }\r\n\r\n\r\n deleteFile(rowIndex: any) {\r\n this.notificationService.showPopup('Are you sure to delete', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let fileDetails = this.attachmentsList[rowIndex];\r\n this._fileService.DeleteFile({ libraryNumber: 4, fileId: fileDetails.fileId, fileName: fileDetails.fileName + '.' + fileDetails.fileExtension }).subscribe(res => {\r\n this.attachmentsList.splice(rowIndex, 1);\r\n });\r\n }\r\n });\r\n\r\n }\r\n}","
\r\n
\r\n

New Transmittal

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Numbering Format : \r\n \r\n Semi\r\n Manual\r\n Auto\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Transmittal Number | \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Transmittal No\r\n \r\n \r\n
\r\n \r\n \r\n Serial No\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Category is required\r\n \r\n
\r\n \r\n \r\n No of copies\r\n \r\n \r\n No of copies is required\r\n \r\n \r\n Enter Numbers Only\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Confidential\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n From is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n To is required\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Response Required

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n No Of Days\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Response Date is required\r\n \r\n \r\n \r\n \r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Sl. No.Assigned CcGroup By
\r\n {{i+1}}\r\n {{member.memberName}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.receiver_Group}}\r\n \r\n \r\n \r\n \r\n {{getMemberNames(dataItem.members)}}\r\n \r\n \r\n \r\n \r\n {{dataItem.quantity}}\r\n \r\n \r\n \r\n No of copies\r\n \r\n \r\n \r\n No of copies is required\r\n \r\n \r\n \r\n \r\n \r\n {{getElementDesc(dataItem.category)}}\r\n \r\n \r\n \r\n \r\n \r\n Category is required\r\n \r\n \r\n \r\n \r\n \r\n {{getTypeElementDesc(dataItem.type)}}\r\n \r\n \r\n \r\n \r\n \r\n Type is required\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.remarks}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Documents*

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_No}}\r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.authorized_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.quantity}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getElementDesc(dataItem.category)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTypeElementDesc(dataItem.type)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.remarks}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Action\r\n
\r\n \r\n \r\n \r\n \r\n 1 && !is_Show_Attachment_In_DTN\" style=\"font-size: 1.25em; cursor: pointer; margin-left: 2%;\" (click)=\"bulkAttachmentClick(docGrid)\" id=\"\" aria-hidden=\"true\">\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

COMMON TRANSMITTAL ATTACHMENTS -

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName + '.'+ dataItem.fileExtension}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, ElementRef, OnInit, ViewChild, Inject, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DynamicFormComponent } from 'src/app/CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport { IMsgAttachmentsModel, IMsgDocumentAttachmentModel, IMsgElementInputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { ISignatureOutputModel } from 'src/app/ViewModel/CommunicationModel';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { FieldConfig } from 'src/app/CommonComponents/dynamic-form/interface/field.interface';\r\n\r\nimport { debounceTime, exhaustMap, filter, scan, startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { formatDate } from '@angular/common';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { ITransmittalTemplateModel, ITransmittalMemberModel, ITransmittalReceiverDetails, ITransmittalDistributionViewModel, IReceiverDetails, ITransmittalGroupViewModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';\r\nimport { MatChipList } from '@angular/material/chips';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { ITransmittalDocumentDetails, ITransmittalDocViewModel, ITransmittalSerialNoInputModel, ITransmittalMsgInputModel, ITransmittalMsgReceiverInput, ITransmittalGroupMemberInput, ITransmittalMsgDocumentInput, ITransmittalDocumentInput, ITransmittalDocumentCopyInput, ITransmittalDocumentElementDetails, ITransmittalElementSLNoInputModel, IReceiverInput, IDistributionMemberDetails, ITransmittalDocumentMsgDetails, ITransmittalDocumentCopyDetails, ITransmittalDocumentElementInput, ITransmittalMailDetails, ITransmittalViewDocDetails, ITransmittalDocumentAttachmentModel, ITransmittalSignedDocumentsModel } from 'src/app/ViewModel/TransmittalModel';\r\nimport { TransmittalMsgService } from 'src/app/Service/transmittal/transmittal.service';\r\nimport { TransmittalTemplateComponent } from '../transmittal-template/transmittal-template.component';\r\nimport { TransmittalViewComponent } from '../transmittal-view/trasnsmittal-view.component';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { groupBy, map, sortBy } from 'lodash';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { ScheduleDocumentMailListComponent } from '../../engineering-schedule/schedule-document-mail-list/schedule-document-mail-list.component';\r\nimport { IDocumentMailInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { DocumentViewGridComponent } from '../document-grid/document-view-grid/document-view-grid.component';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { RespondWorkflowListModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { ElementLinkService } from 'src/app/Service/element-link/element-link.service';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { Observable, BehaviorSubject, Subject, Subscription } from 'rxjs';\r\nimport { of } from 'rxjs/internal/observable/of';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\n\r\nconst matches = (el: {\r\n matches: any; msMatchesSelector: any;\r\n}, selector: string) => (el.matches || el.msMatchesSelector).call(el, selector);\r\n\r\nconst createFormGroup = (dataItem: ITransmittalDocViewModel) => new FormGroup({\r\n 'quantity': new FormControl(dataItem.quantity, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'category': new FormControl(dataItem.category, [Validators.required]),\r\n 'type': new FormControl(dataItem.type, [Validators.required]),\r\n 'remarks': new FormControl(dataItem.remarks)\r\n});\r\n\r\nconst createFromGroupDist = (dataItem: ITransmittalGroupViewModel) => new FormGroup({\r\n 'quantity': new FormControl(dataItem.quantity, [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n 'category': new FormControl(dataItem.category, [Validators.required]),\r\n 'type': new FormControl(dataItem.type, [Validators.required]),\r\n 'remarks': new FormControl(dataItem.remarks)\r\n});\r\n\r\n@Component({\r\n selector: 'app-transmittal-edit',\r\n templateUrl: './transmittal-edit.component.html',\r\n styleUrls: ['./transmittal-edit.component.css']\r\n})\r\nexport class TransmittalEditComponent implements OnInit {\r\n\r\n ShowTransmittalTemplate: boolean = false;\r\n transmittalData!: TransmittalTemplateComponent;\r\n private transmittalViewComponent!: TransmittalViewComponent;\r\n @ViewChild('docGrid') docGrid!: GridComponent;\r\n @ViewChild('distGrid') distGrid!: GridComponent;\r\n @ViewChild(\"docSetForm\") dynamicForm!: DynamicFormComponent;\r\n @ViewChild('transmittalViewComponent') set content(content: TransmittalViewComponent) {\r\n if (!!content) { // initially setter gets called with undefined\r\n this.transmittalViewComponent = content;\r\n }\r\n }\r\n @ViewChild(GridComponent)\r\n private grid!: GridComponent;\r\n panelOpenState = true;\r\n public inputType: any;\r\n public selectedMessages!: any[];\r\n public transmittalFormat!: string;\r\n public numFormat!: string;\r\n public isShowSerialNo: boolean = true;\r\n serialNoLength: number = 5;\r\n public readonly!: boolean;\r\n public DistrowIndex!: number;\r\n public reciviedDoc: any[] = [];\r\n public responseRequired!: string;\r\n public projectId!: number;\r\n public selectedData: any[] = [];\r\n public groupId!: number;\r\n public memberId: number | undefined;\r\n public canManualNo: boolean = false;\r\n public msgNo!: string;\r\n public getSelected_Type: any[] = [];\r\n public _getSelected_Type: any[] = [];\r\n public messageNo!: string;\r\n public DocSelectedCategory: number | null | undefined;\r\n public DocSelectedType: number[] | undefined | null;\r\n public MessageId!: number;\r\n public autoSerialNo!: string;\r\n public isMessageValid!: boolean;\r\n isWorkflow!: boolean;\r\n editedRowIndex!: number | undefined;\r\n editedRowIndexDist!: number;\r\n public formGroup!: FormGroup | undefined;\r\n formGroupDist!: FormGroup | any;\r\n public projectElements: IProjectElementsOutput[] = [];\r\n public numElements: Map = new Map();\r\n public elementInp: IMsgElementInputModel[] | (ITransmittalElementSLNoInputModel | undefined)[] = [];\r\n public elementInput: IMsgElementInputModel[] = [];\r\n public mailType: string = '';\r\n categoryList: IProjectElementDetailsOutput[] = [];\r\n copyTypeList: any[] = [];\r\n templateDetails: ITransmittalTemplateModel[] = [];\r\n distributionList: any[] = [];\r\n documentViewList: ITransmittalDocViewModel[] = [];\r\n documentUpdateList: any[] = [];\r\n currentEditGroupViewModel!: ITransmittalGroupViewModel | any;\r\n signedDocuments: ITransmittalDocumentAttachmentModel[] = [];\r\n template_Id: string | number | null = null;\r\n selectedCategory!: number | any;\r\n selectedRemarks!: string | undefined;\r\n selectedTransmittalType: number[] = [];\r\n selectedFrom!: number | null;\r\n selectedTo!: number | null;\r\n WorkflowDocument!: boolean;\r\n separatorKeysCodes: number[] = [ENTER, SPACE, COMMA];\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n multiple = false;\r\n doc_Id: number | null = null;\r\n masterMembers: ITransmittalMemberModel[] = [];\r\n masterMemberIds!: number[];\r\n filteredMembers!: Observable;\r\n ccFilteredMembers!: Observable;\r\n fromFilteredMembers!: Observable;\r\n ccMembers: ITransmittalMemberModel[] = [];\r\n @ViewChild('ccInput') ccInput!: ElementRef;\r\n @ViewChild('ccauto') matCcAutoComplete!: MatAutocomplete;\r\n @ViewChild('ccChipList') ccChipList!: MatChipList;\r\n ccfilter$!: Observable | undefined;\r\n private _nextPage$ = new Subject();\r\n templateFormat: string = '';\r\n elementsConfig: FieldConfig[] = [];\r\n mailSubject: string = '';\r\n IsShowAttachmentList = false;\r\n isShowbulkSave = false;\r\n projectName!: string;\r\n /*Signature*/\r\n IsShowPopup = false;\r\n public IsDisabled!: boolean;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = {\r\n horizontal: 'center',\r\n vertical: 'bottom'\r\n };\r\n public margin = {\r\n horizontal: -15,\r\n vertical: 10\r\n };\r\n public signatureList: ISignatureOutputModel[] = [];\r\n public documentList: any[] = [];\r\n public messageList: any[] = [];\r\n public membersList: any[] | undefined = [];\r\n mailFrom: string = '';\r\n public fromList: any[] = [];\r\n mailTo: string = '';\r\n public toList: any[] = [];\r\n mailCC: string = '';\r\n public ccList: any[] = [];\r\n mailBCC: string = '';\r\n public bccList: any[] = [];\r\n selected_Category: any;\r\n selected_Type!: number[];\r\n messageGroupForm!: FormGroup;\r\n transmittalForm!: FormGroup;\r\n messageContentForm!: FormGroup;\r\n public isRevisedDateInvalid!: boolean;\r\n public datevalue = new Date(this.getDateFormat());\r\n public RespondOn: string | null = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n public dtnList: RespondWorkflowListModel[] = [];\r\n public pendingWFList: any[] = [];\r\n public is_Send_Mail: boolean = true;\r\n componentRef: any;\r\n public CurrentProjectDetails!: ProjectViewModel;\r\n public is_Show_Attachment_In_DTN!: boolean;\r\n public task_id_list!: string;\r\n public enableFullscreen: boolean = false;\r\n UnsubscribeArray: Subscription[] = [];\r\n attachmentsList: IMsgDocumentAttachmentModel[] = [];\r\n public commonattachment: boolean = false;\r\n public transmittalId!:number;\r\n public dynamicElementList:any[];\r\n\r\n constructor(\r\n private _projService: ProjectInfoService,\r\n public communicationService: CommunicationService,\r\n public commonService: CommonService,\r\n public memberService: ExternalMemberService,\r\n public elementLinkService: ElementLinkService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private notificationService: NotificationService,\r\n private _transmittalService: TransmittalService,\r\n private _formBuilder: FormBuilder,\r\n private _transmittalMsgService: TransmittalMsgService,\r\n private _scheduleDocService: ScheduleDocumentService,\r\n private _fileService: FileService,\r\n private _workflowTemplateService:WorkflowTemplateService\r\n ) { }\r\n\r\n async ngOnInit() {\r\n this.selectedTransmittalType = null;\r\n this.inputType = this.data['inputType'];\r\n //this.doc_Id = this.data[\"doc_Id\"];\r\n //this.dtnList = this.data[\"selectedList\"];\r\n //if (this.dtnList == undefined)\r\n //this.dtnList = [];\r\n \r\n this.transmittalId=this.data['transmittalId']\r\n this.transmittalFormat = 'Transmittal';\r\n this.numFormat = 'Auto';\r\n this.readonly = true;\r\n this.IsDisabled = true;\r\n this.responseRequired = 'No';\r\n this.createTransmittalGroupForm();\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.CurrentProjectDetails = this.commonService.getCurrentProjectDetails();\r\n // if (this.CurrentProjectDetails && this.CurrentProjectDetails.doc_Number_Format) {\r\n // this.numFormat = this.CurrentProjectDetails.doc_Number_Format;\r\n // this.onNumFormatChange(this.numFormat);\r\n // }\r\n this.callMemberRoleandFeature();\r\n //this.getSerialNoLength();\r\n await this.getElementDetails(\"Message Category\");\r\n await this.getElementDetails(\"Copy Type\");\r\n await this.getTransmittalDetails()\r\n let _getProjectMembers = this._transmittalService.getProjectMembers().subscribe((res: ProjectMemberModel[]) => {\r\n this.masterMembers = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo,\r\n address: x.address\r\n };\r\n return transmittalMember;\r\n });\r\n this.masterMemberIds = this.masterMembers.map(x => x.memberId);\r\n this.ccfilter$ = this.createSerachFilter('ccMembersCtrl');\r\n this.filterMembers();\r\n });\r\n this.getDynamicForm();\r\n this.getSignatureList();\r\n this.getProjectName();\r\n this.getMembers();\r\n this.getTransmittalDetailsById(this.transmittalId);\r\n\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n if (this.inputType == 'dtnPreparation') {\r\n this.is_Send_Mail = false;\r\n this.isWorkflow = true;\r\n }\r\n }\r\n\r\n getTransmittalDetailsById(MessageId:number)\r\n {\r\n this._transmittalMsgService.GetTransmittalMessageDetails(MessageId).subscribe(details => {\r\n if(details && details.length>0)\r\n {\r\n let distributionDetails=this._transmittalMsgService.GetTransmittalGroupMemberDetails(MessageId)\r\n let receiverDetails=this._transmittalMsgService.GetTransmittalReceiverDetails(MessageId)\r\n let docDetails = this._transmittalMsgService.GetTransmittalDocumentDetails(MessageId)\r\n let _transmittalDetails = forkJoin(receiverDetails, distributionDetails,docDetails).subscribe((res: any[]) => {\r\n let docDetails=res[2].transmittalDocumentDetails;\r\n let quantity:number;\r\n if(docDetails && docDetails.length>0)\r\n {\r\n let workflowId=docDetails[0].workflowId;\r\n this._workflowTemplateService.getWorkflowTemplate(workflowId).subscribe(res=>{\r\n if (res.workflowStatus && res.workflowStatus.some((x: {\r\n is_Show_Attachment_In_DTN: boolean;\r\n }) => x.is_Show_Attachment_In_DTN == true)) {\r\n this.is_Show_Attachment_In_DTN = true;\r\n }\r\n })\r\n this.documentList=docDetails.map(x => {\r\n let docInput: any = {\r\n docId: x.doc_Id,\r\n documentNo: x.doc_No,\r\n title: x.doc_Title,\r\n revision: x.revision_No,\r\n authorisedByName: x.authorised_By,\r\n createdByName: x.created_By,\r\n schedule_Type: x.scheduleType,\r\n is_Show_DTN_Attachment_Task_Id: x.is_Show_DTN_Attachment_Task_Id\r\n };\r\n return docInput;\r\n })\r\n this.documentViewList=docDetails.map(x => {\r\n let doctype:any[]=[];\r\n x.doc_Type.split(',').forEach(x => {\r\n doctype.push(this.copyTypeList.filter(type => type.dedShortDescription==x)[0]);\r\n })\r\n let category: any = this.categoryList.filter(val=>val.dedId==x.category)[0];\r\n let type: any = doctype;\r\n let remarks: any = x.remarks;\r\n let quantity: any = x.quantity;\r\n let docViewModel: ITransmittalDocViewModel = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n title: x.doc_Title,\r\n document_No: x.doc_No,\r\n authorized_By: x.authorised_By,\r\n category: category,\r\n type: type,\r\n remarks: remarks,\r\n quantity: quantity,\r\n scheduleType: x.scheduleType,\r\n isAttachemtUploded: x.scheduleType == 3 ? true : false,\r\n task_Id: x.is_Show_DTN_Attachment_Task_Id\r\n };\r\n if (x.schedule_Type == 3 || (x.is_Show_DTN_Attachment_Task_Id != undefined && x.is_Show_DTN_Attachment_Task_Id != null))\r\n return this.validateAttachment(docViewModel, x.is_Show_DTN_Attachment_Task_Id)\r\n else\r\n return this.validateAttachment(docViewModel);\r\n })\r\n this.documentUpdateList = this.documentViewList;\r\n quantity=this.documentViewList[0].quantity\r\n }\r\n let obj:ITransmittalTemplateModel[]=[{\r\n project_Id: this.projectId,\r\n group_Id: this.groupId,\r\n template_Name: '',\r\n template_Subject: details[0].message_Subject,\r\n is_Active: true,\r\n userId: 0,\r\n quantity:quantity,\r\n category:details[0].message_Type\r\n }]\r\n let receiverDetails:ITransmittalReceiverDetails[]=[{\r\n template_Id: 0,\r\n receiverFromDetails: res[0].transmittalFromDetails,\r\n receiverToDetails: res[0].transmittalToDetails,\r\n receiverCcDetails: res[0].transmittalCcDetails,\r\n is_Active: true,\r\n userId: 0\r\n }]\r\n this.setTransmittalDetails(obj);\r\n this.setReceiverDetails(receiverDetails);\r\n let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n this.distributionList = res[1].map((x: {\r\n type_Short_Description: {\r\n toString: () => string;\r\n }; receiver_Group: number | null | undefined; category_Short_Description: any; remarks: any; quantity: any;\r\n }) => {\r\n this.getSelected_Type = [];\r\n let selected_type: any[];\r\n selected_type = x.type_Short_Description.toString().replace(/-/g, \"\").split(',');\r\n for (let i = 0; i < selected_type.length; i++) {\r\n for (let j = 0; j < this.copyTypeList.length; j++) {\r\n if (selected_type[i] == this.copyTypeList[j].dedShortDescription) {\r\n this.getSelected_Type.push(this.copyTypeList[j]);\r\n }\r\n }\r\n };\r\n\r\n let isMembersAviable:boolean=groupByResult.filter(y => y.filter(z => z.groupBy == x.receiver_Group)[0]).length>0;\r\n if(isMembersAviable)\r\n {\r\n let distributerViewModel: ITransmittalGroupViewModel = {\r\n receiver_Group: x.receiver_Group,\r\n members: groupByResult.filter(y => y.filter(z => z.groupBy == x.receiver_Group)[0])[0],\r\n category: this.categoryList.filter(y => y.dedShortDescription == x.category_Short_Description)[0],\r\n type: this.getSelected_Type,\r\n remarks: x.remarks,\r\n quantity: x.quantity\r\n };\r\n return distributerViewModel;\r\n }\r\n }).filter(x => !!x);\r\n // this.documentViewList.forEach((dataItem, rowIndex) => {\r\n // let _category = this.categoryList.filter(y => y.dedId == res[0][0].category)[0];\r\n // let _quantity = res[0][0].quantity;\r\n // let _type = this.transmittalForm.get(\"formType\")?.value;\r\n \r\n // if (!!_category) {\r\n // dataItem.category = _category;\r\n // dataItem.selectedCategory = _category.dedId\r\n // }\r\n \r\n // if (!!_quantity) {\r\n // dataItem.quantity = _quantity;\r\n // }\r\n \r\n // if (!!_type) {\r\n // let _getSelectedType: any[] = [];\r\n // _getSelectedType = [];\r\n // _getSelectedType.push(_type);\r\n \r\n // dataItem.type = _getSelectedType;\r\n // dataItem.selectedType = _getSelectedType.map(x => x.dedId)\r\n // }\r\n \r\n // });\r\n });\r\n this.UnsubscribeArray.push(_transmittalDetails);\r\n }\r\n })\r\n }\r\n\r\n private onDocumentClick(e: any): void {\r\n if (!matches(e.target, '#docGrid tbody *, #docGrid .k-grid-toolbar .k-button')) {\r\n if (e.target.id != 'attachmentRemarks' && e.target.id != 'attachmentEdit') {\r\n this.UpdateRowData(null);\r\n }\r\n }\r\n }\r\n\r\n\r\n async callMemberRoleandFeature() {\r\n let _getPorjectMemberRoles = this.commonService.getProjectMemberRoles(this.projectId, this.groupId, this.memberId).subscribe((result: any[]) => { });\r\n let _getProjectMemberFeatures = await this.commonService.getProjectMemberFeatures(this.projectId, this.memberId, this.groupId).subscribe((result1: any[]) => {\r\n this.canManualNo = result1.some(data => data.feature_Desc == 'Manual No');\r\n if (!this.canManualNo && this.numFormat == 'Manual')\r\n this.numFormat = 'Auto';\r\n });\r\n this.UnsubscribeArray.push(_getPorjectMemberRoles, _getProjectMemberFeatures)\r\n }\r\n\r\n private createSerachFilter(formControlName: string): Observable | undefined {\r\n let x: any = this.messageGroupForm\r\n return x ? x.get(formControlName)?.valueChanges.pipe(\r\n startWith(''),\r\n debounceTime(200),\r\n filter(q => typeof q === \"string\")) : new Observable();\r\n\r\n }\r\n\r\n getProjectName() {\r\n let currentProject = this.commonService.getCurrentProjectDetails();\r\n this.projectName = currentProject.projectCode + ' - ' + currentProject.projectDescription;\r\n }\r\n\r\n // async getSerialNoLength() {\r\n // let slNoArray = await this.elementLinkService.getNumberingSlNoLength(this.projectId, this.groupId, Module.Transmittal).toPromise();\r\n // this.serialNoLength = slNoArray.serialNoLength != 0 ? slNoArray.serialNoLength : 5;\r\n // }\r\n\r\n createTransmittalCoverSheet() {\r\n this.transmittalData = {\r\n templateName: 'common',\r\n to: this.toMember.memberName + '
' + this.toMember.address,\r\n attention: this.toMember.memberName,\r\n From: this.fromMember.memberName,\r\n cc: this.ccMembers.map(x => x.memberName).join(';'),\r\n subject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n date: formatDate(this.datevalue, 'dd-MMM-yyyy', 'en-US'),\r\n edrcRef: this.messageNo,\r\n cusRef: this.getFormValue('txtCusRef', this.messageContentForm),\r\n projName: this.projectName,\r\n docDetails: this.getTransViewModel(),\r\n distributionDetails: this.getDistributionViewModel(),\r\n is_Show_Attachment_In_DTN: this.is_Show_Attachment_In_DTN,\r\n task_id_list: this.task_id_list,\r\n message_Note: this.selectedRemarks,\r\n fileDetails: this.attachmentsList && this.attachmentsList.length > 0 ? this.attachmentsList : []\r\n };\r\n this.ShowTransmittalTemplate = true;\r\n }\r\n\r\n getTransViewModel(): ITransmittalViewDocDetails[] {\r\n return this.documentUpdateList.map(x => {\r\n let type_Desc: string = '';\r\n let type_Short_Desc: string = '';\r\n\r\n if (!!x.type) {\r\n type_Desc = x.type.map((x: {\r\n dedDescription: any;\r\n }) => x.dedDescription).toString();\r\n type_Short_Desc = x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString();\r\n }\r\n let category_Desc: string = '';\r\n let category_Short_Desc: string = '';\r\n if (!!x.category) {\r\n category_Desc = x.category.dedDescription;\r\n category_Short_Desc = x.category.dedShortDescription;\r\n }\r\n let transDocViewModel: ITransmittalViewDocDetails = {\r\n authorised_By: x.authorized_By,\r\n doc_Id: x.doc_Id,\r\n doc_No: x.document_No,\r\n doc_Title: x.title,\r\n revision_No: x.revision_No,\r\n remarks: x.remarks,\r\n quantity: x.quantity,\r\n type_Description: type_Desc,\r\n type_Short_Description: type_Short_Desc,\r\n category_Description: category_Desc,\r\n category_Short_Description: category_Short_Desc,\r\n scheduleType: x.scheduleType,\r\n task_Id: x.task_Id\r\n };\r\n return transDocViewModel;\r\n });\r\n }\r\n\r\n getDistributionViewModel(): ITransmittalDistributionViewModel[] {\r\n return this.distributionList.map(x => {\r\n let distributionView: ITransmittalDistributionViewModel = {\r\n member_Name: x.members.map((mem: {\r\n memberName: any;\r\n }) => mem.memberName).join('/'),\r\n receiver_Group: x.receiver_Group,\r\n quantity: x.quantity,\r\n remarks: x.remarks,\r\n category_Description: x.category.dedDescription,\r\n category_Short_Description: x.category.dedShortDescription,\r\n type_Description: x.type.map((x: {\r\n dedDescription: any;\r\n }) => x.dedDescription).toString(),\r\n type_Short_Description: x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString(),\r\n category: x.category.dedId,\r\n copy_Type: x.type.dedId\r\n }\r\n return distributionView;\r\n })\r\n }\r\n\r\n createTransmittalGroupForm() {\r\n this.transmittalForm = this._formBuilder.group({\r\n txtMsgSerialNo: new FormControl({\r\n value: '',\r\n disabled: true\r\n }),\r\n txtSerialNo: new FormControl({\r\n value: '',\r\n disabled: true\r\n }, [Validators.pattern(\"^[0-9]*$\")]),\r\n lblIsConfidential: new FormControl(false),\r\n category: new FormControl('', Validators.required),\r\n formCategory: new FormControl('', Validators.required),\r\n txtquantity: new FormControl('', [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n formType: new FormControl(''),\r\n });\r\n this.transmittalForm.get('txtMsgSerialNo')?.valueChanges.subscribe((x: any) => {\r\n this.generateMessageNo();\r\n });\r\n this.transmittalForm.get('txtSerialNo')?.valueChanges.subscribe((x: any) => {\r\n this.generateMessageNo();\r\n })\r\n this.messageGroupForm = this._formBuilder.group({\r\n ccMembersCtrl: new FormControl(),\r\n ccMembers: [\r\n [],\r\n [Validators.required, this.validateMemberSelection.bind(this)]\r\n ],\r\n txtNoOfDays: new FormControl(),\r\n fromMember: new FormControl('', Validators.required),\r\n formFromMember: new FormControl('', Validators.required),\r\n toMember: new FormControl('', Validators.required),\r\n formToMember: new FormControl('', Validators.required)\r\n });\r\n this.messageContentForm = this._formBuilder.group({\r\n txtMailSubject: new FormControl(),\r\n txtCusRef: new FormControl()\r\n });\r\n\r\n }\r\n\r\n private filterMembers(): void {\r\n\r\n this.ccFilteredMembers = this.getFilteredMembers(this.ccfilter$);\r\n }\r\n\r\n private getFilteredMembers(filter$: Observable): Observable {\r\n return filter$.pipe(\r\n switchMap((filter: any) => {\r\n //Note: Reset the page with every new seach text\r\n let currentPage = 1;\r\n return this._nextPage$.pipe(\r\n startWith(currentPage),\r\n exhaustMap(_ => this.getMembersFake(filter, currentPage)),\r\n tap(() => currentPage++),\r\n scan((allMembers, newMembers: any) => allMembers.concat(newMembers), []),\r\n );\r\n }));\r\n }\r\n\r\n // Fake backend api\r\n private getMembersFake(startsWith: string, page: number): Observable {\r\n const take = 10;\r\n const skip = page > 0 ? (page - 1) * take : 0;\r\n const filtered = this.masterMembers\r\n .filter(option => option.memberName?.toLowerCase().includes(startsWith.toLowerCase()));\r\n return of(filtered.slice(skip, skip + take));\r\n }\r\n\r\n optionClicked(event: Event, member: ITransmittalMemberModel, type: string) {\r\n event.stopPropagation();\r\n switch (type) {\r\n case 'cc':\r\n this.toggleCcSelection(member);\r\n break;\r\n }\r\n }\r\n\r\n // viewMessageList(category: number, data: any) {\r\n // let inputModel: IDocumentMailInputModel = {\r\n // DocId: data.doc_Id,\r\n // DocumentNo: data.document_No,\r\n // Category: category,\r\n // ProjectId: this.projectId,\r\n // GroupId: this.groupId,\r\n // MemberId: this.memberId,\r\n // TransType: \"\",\r\n // revisionNo: null\r\n // };\r\n // this.dialog.open(ScheduleDocumentMailListComponent, {\r\n // panelClass: ['mat-dialog-secondary', 'w80'],\r\n // data: inputModel\r\n // });\r\n // }\r\n\r\n toggleCcSelection(member: ITransmittalMemberModel) {\r\n const index: number = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) : 0;\r\n if (index > -1) {\r\n this.ccMembers.splice(index, 1);\r\n this.ccFormMembers?.value.splice(index, 1);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n } else {\r\n this.ccMembers.push(member);\r\n this.ccFormMembers?.value.push(member);\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n isMemberSelected(member: ITransmittalMemberModel, type: string): boolean {\r\n let result: boolean = false;\r\n switch (type) {\r\n case 'cc':\r\n result = this.ccMembers != null ? this.ccMembers.findIndex(x => x.memberId == member.memberId) > -1 : false\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n resetCcMemberFilter() {\r\n this.messageGroupForm.get('ccMembersCtrl')?.setValue('');\r\n this.ccInput.nativeElement.value = '';\r\n this.ccInput.nativeElement.blur();\r\n }\r\n\r\n removeCc(member: ITransmittalMemberModel): void {\r\n const index = this.ccMembers.indexOf(member);\r\n if (index >= 0) {\r\n this.ccMembers.splice(index, 1);\r\n // Remove element from control value array\r\n this.ccFormMembers?.value.splice(index, 1);\r\n // where index = index of removed element\r\n this.ccFormMembers?.updateValueAndValidity();\r\n this.resetCcMemberFilter();\r\n }\r\n }\r\n\r\n // use getter method to access toMembers control value easily\r\n get toMember(): ITransmittalMemberModel {\r\n return this.messageGroupForm.get('toMember')?.value;\r\n }\r\n\r\n get ccFormMembers() {\r\n return this.messageGroupForm.get('ccMembers');\r\n }\r\n\r\n get fromMember(): ITransmittalMemberModel {\r\n return this.messageGroupForm.get('fromMember')?.value;\r\n }\r\n\r\n onScroll() {\r\n //Note: This is called multiple times after the scroll has reached the 80% threshold position.\r\n this._nextPage$.next();\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"message\":\r\n this.messageGroupForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n }\r\n\r\n }\r\n\r\n validateMemberSelection(abstractControl: AbstractControl): ValidationErrors | null | undefined | any {\r\n if (abstractControl.touched || abstractControl.dirty) {\r\n let selectedValue: any[] = abstractControl.value;\r\n if (!!selectedValue) {\r\n selectedValue = selectedValue.map(x => x.memberId);\r\n }\r\n if (selectedValue && !selectedValue.every(member => this.masterMemberIds.includes(member))) {\r\n return {\r\n IsError: true\r\n };\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n ontransmittalFormatChange(value: string) {\r\n this.transmittalFormat = value;\r\n }\r\n\r\n // onNumFormatChange(value: string) {\r\n // this.numFormat = value;\r\n // this.isShowSerialNo = this.numFormat == 'Auto' || this.numFormat == 'Semi';\r\n // if (this.numFormat == 'Auto') {\r\n // this.transmittalForm.get('txtMsgSerialNo')?.disable();\r\n // this.transmittalForm.get('txtSerialNo')?.disable();\r\n // this.GetMessageSerialNo();\r\n // } else if (this.numFormat == 'Semi') {\r\n // this.transmittalForm.get('txtSerialNo')?.enable();\r\n // this.transmittalForm.get('txtMsgSerialNo')?.disable();\r\n // this.GetMessageSerialNo();\r\n // } else if (this.numFormat == 'Manual') {\r\n // this.transmittalForm.get('txtMsgSerialNo')?.setValue('');\r\n // this.transmittalForm.get('txtSerialNo')?.setValue('');\r\n // this.transmittalForm.get('txtMsgSerialNo')?.enable();\r\n // this.transmittalForm.get('txtSerialNo')?.disable();\r\n // }\r\n // }\r\n\r\n public getMessageNumber(): string {\r\n let docNo: string = this.getFormValue(\"txtMsgSerialNo\", this.transmittalForm);\r\n if (this.numFormat == 'Auto' || this.numFormat == 'Semi')\r\n return docNo + '-' + this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n else\r\n return docNo;\r\n }\r\n\r\n onResponseRequiredChange(value: any) {\r\n this.responseRequired = value;\r\n }\r\n\r\n attachmentClick(data: any) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: -1,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n documents: [{\r\n value: data.doc_Id,\r\n text: data.document_No,\r\n revisionNo: data.revision_No\r\n }],\r\n isEditable: false\r\n },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.signedDocuments.push({\r\n docId: res.docId,\r\n fileName: fileName.substring(0, fileName.lastIndexOf(\".\")),\r\n fileExtension: fileExtn,\r\n fileSize: res.fileSize,\r\n revisionNo: res.revisionNo\r\n });\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n data.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n }\r\n\r\n bulkAttachmentClick() {\r\n if (this.documentViewList.length > 0) {\r\n let documentList: Array = new Array();\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n documentList.push({\r\n value: dataItem.doc_Id,\r\n text: dataItem.document_No,\r\n revisionNo: dataItem.revision_No\r\n });\r\n });\r\n\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: -1,\r\n docId: 0,\r\n revisionNo: \"\",\r\n libraryName: FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n documents: documentList,\r\n isEditable: true\r\n },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.signedDocuments.push({\r\n docId: res.docId,\r\n fileName: fileName.substring(0, fileName.lastIndexOf(\".\")),\r\n fileExtension: fileExtn,\r\n fileSize: res.fileSize,\r\n revisionNo: res.revisionNo\r\n });\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: dataItem.doc_Id,\r\n revisionNo: dataItem.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n dataItem.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n });\r\n }\r\n }\r\n\r\n viewAttachmentClick(data: ITransmittalDocViewModel) {\r\n if (this.MessageId > 0) {\r\n const dialog = this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: this.MessageId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n isDeleteEnable: false,\r\n documentNo: this.messageNo,\r\n task_ID: this.task_id_list\r\n },\r\n });\r\n\r\n dialog.afterClosed().subscribe((res: any) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n data.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n } else {\r\n const dialog = this.dialog.open(FileListComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: {\r\n projectId: this.projectId,\r\n msgId: -1,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No,\r\n libraryName: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n createdBy: this.memberId,\r\n isDeleteEnable: data.scheduleType == 3 ? false : true,\r\n documentNo: this.messageNo,\r\n task_ID: data.task_Id ? data.task_Id : this.task_id_list\r\n },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: (data.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: data.doc_Id,\r\n revisionNo: data.revision_No\r\n })\r\n }).subscribe((_data: any[]) => {\r\n data.isAttachemtUploded = _data.length > 0 ? true : false;\r\n });\r\n this.UnsubscribeArray.push(_getFiles)\r\n });\r\n }\r\n }\r\n\r\n public cancelHandler(rowIndex: any): void {\r\n this.closeEditor(rowIndex);\r\n }\r\n\r\n private closeEditor(rowIndex: number | undefined): void {\r\n this.docGrid.closeRow(rowIndex);\r\n }\r\n\r\n editDocRowDynamic(dataItem: any) {\r\n let rowIndex = this.documentViewList.findIndex(data => data.category == dataItem.category && data.type == dataItem.type);\r\n\r\n if (!!dataItem.category) {\r\n this.DocSelectedCategory = dataItem.category.dedId;\r\n } else {\r\n this.DocSelectedCategory = null;\r\n }\r\n if (!!dataItem.type) {\r\n this.DocSelectedType = dataItem.type.dedId;\r\n } else {\r\n this.DocSelectedType = null;\r\n }\r\n this.docGrid.editRow(rowIndex);\r\n }\r\n\r\n cancelRowData(data: any) {\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n getDynamicForm() {\r\n // let _getProject\r\n // let _getProjectElements = this._projService.getProjectElements({\r\n // projectId: this.projectId,\r\n // groupId: this.groupId,\r\n // moduleId: Module.Transmittal,\r\n // IsQueryForStaticElement: false\r\n // }).subscribe(\r\n // (res: IProjectElementsOutput[]) => {\r\n\r\n // this.projectElements = res;\r\n // this.elementsConfig = res.map(x => {\r\n // let field: FieldConfig;\r\n // let childDEId = null;\r\n // let childDEDescription = \"\";\r\n // let data = res.filter(item => item.dependentElementId == x.elementId);\r\n\r\n // if (data.length > 0) {\r\n // childDEId = data[0].elementId;\r\n // childDEDescription = data[0].elementDescription;\r\n // }\r\n\r\n // field = {\r\n // de_id: x.elementId,\r\n // module_id: Module.Transmittal,\r\n // dependent_de_id: x.dependentElementId,\r\n // dependent_de_Description: x.dependentElementDescription,\r\n // child_de_id: childDEId,\r\n // child_de_Description: childDEDescription,\r\n // name: x.elementDescription,\r\n // deDescription: x.elementDescription,\r\n // type: 'select',\r\n // value: new BehaviorSubject(null)\r\n // }\r\n // if (x.isMandatory) {\r\n // field.validations = [{\r\n // name: \"required\",\r\n // validator: Validators.required,\r\n // message: field.name + \" is Required\"\r\n // }]\r\n // }\r\n // if (x.isNumbering) {\r\n // this.numElements.set(x.elementDescription, '');\r\n // }\r\n // return field;\r\n // });\r\n // this.dynamicForm.fields = this.elementsConfig;\r\n // this.dynamicForm.createControl();\r\n\r\n // let resForm: FormGroup = this.dynamicForm.value;\r\n // //Numbering elements array\r\n // let numberingElements: string[] = Array.from(this.numElements.keys());\r\n // numberingElements.forEach(element => {\r\n // resForm.get(element)?.valueChanges.subscribe((x: any) => {\r\n // if (!!x) {\r\n // if (this.numElements.has(element)) {\r\n // if (!!x)\r\n // this.numElements.set(element, x.dedShortDescription);\r\n // else\r\n // this.numElements.set(element, '');\r\n // }\r\n // if ((this.numFormat == 'Auto' || this.numFormat == 'Semi'))\r\n // this.GetMessageSerialNo();\r\n // }\r\n // });\r\n // });\r\n // this.onCascadingAutocomplete_Change();\r\n // });\r\n // this.UnsubscribeArray.push(_getProjectElements)\r\n // this.communicationService.getMessageElementsById(this.transmittalId).subscribe(res => {\r\n // res.forEach(x => {\r\n // this.dynamicForm.form.get('form'+x.deDescription)?.setValue(x.dedId);\r\n // this.dynamicForm.form.get(x.deDescription)?.setValue({...x,sortBy:1});\r\n // })\r\n // })\r\n \r\n this.communicationService.getMessageElementsById(this.transmittalId).toPromise().then(res => {\r\n let elementsConfig: FieldConfig[] = [];\r\n this.dynamicElementList=res;\r\n res.forEach(x => {\r\n let field: FieldConfig = { type: \"label\", label: x.deDescription, de_id: x.deId, value: new BehaviorSubject(x.dedShortDescription + \"-\" + x.dedDescription) }\r\n elementsConfig.push(field);\r\n })\r\n this.dynamicForm.fields = [];\r\n this.dynamicForm.fields = elementsConfig;\r\n this.dynamicForm.createControl();\r\n })\r\n\r\n }\r\n\r\n // onCascadingAutocomplete_Change() {\r\n // this.elementsConfig.forEach((data: any) => {\r\n // if (!!data.child_de_id) {\r\n // this.dynamicForm.form.get(data.deDescription)?.valueChanges.subscribe((x: any) => {\r\n // let resForm: FormGroup = this.dynamicForm.value;\r\n // let _field = this.dynamicForm.getCascadingAutocompleteDetails(data.child_de_Description);\r\n // let parentControlSelectedValue: IProjectElementDetailsOutput = resForm.get(data.deDescription)?.value;\r\n\r\n // if (_field.length > 0 && !!parentControlSelectedValue) {\r\n // let _getProjectElementCascadingDetails = this._projService.getProjectElementCascadingDetails({\r\n // projectId: this.projectId,\r\n // groupId: this.groupId,\r\n // moduleId: Module.Transmittal,\r\n // deId: _field[0].de_id,\r\n // deDescription: _field[0].deDescription,\r\n // dependentDEId: _field[0].dependent_de_id,\r\n // dependentDEDId: parentControlSelectedValue.dedId\r\n // }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n // if (res.length > 0) {\r\n // res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n // _field[0].values = res;\r\n // } else {\r\n // _field[0].values = [];\r\n // }\r\n // }, (err: any) => { });\r\n // this.UnsubscribeArray.push(_getProjectElementCascadingDetails)\r\n // } else {\r\n // _field[0].values = [];\r\n // }\r\n // })\r\n // }\r\n // })\r\n // }\r\n\r\n /**\r\n * Get elementDetailsForm Controls value\r\n * @param controlName ControlName\r\n */\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n /**\r\n *Get Message Serial No\r\n */\r\n // GetMessageSerialNo() {\r\n // //Coin the Document number based on the element values selection changes\r\n // let elementValues: string[] = Array.from(this.numElements.values());\r\n // let selectedElementValues: string[] = elementValues.filter(val => val != '');\r\n // this.msgNo = elementValues.filter(val => val != '').join('-');\r\n // this.transmittalForm.get('txtMsgSerialNo')?.setValue(this.msgNo);\r\n // //Ensure all the mandatory numering elements selected\r\n // if (elementValues.length > 0 && elementValues.length == selectedElementValues.length) {\r\n // let resForm: FormGroup = this.dynamicForm.value;\r\n // this.elementInp = this.projectElements.filter(x => x.isNumbering).map(x => {\r\n // let selectedValue: IProjectElementDetailsOutput = resForm.get(x.elementDescription)?.value;\r\n // if (!!selectedValue) {\r\n // let result: ITransmittalElementSLNoInputModel = {\r\n // deId: x.elementId,\r\n // dedId: selectedValue.dedId,\r\n // deDescription: x.elementDescription,\r\n // dedDescription: selectedValue.dedDescription,\r\n // dedShortDescription: selectedValue.dedShortDescription,\r\n // sortBy: +selectedValue.sortBy\r\n\r\n\r\n // }\r\n // return result;\r\n // }\r\n // });\r\n // let inputModel: ITransmittalSerialNoInputModel = {\r\n // projectId: this.commonService.getProjectId(),\r\n // groupId: this.groupId,\r\n // moduleId: Module.Transmittal,\r\n // elementDetails: this.elementInp\r\n // };\r\n // let _getTransmittalSerialNo = this._transmittalMsgService.getTransmittalSerialNo(inputModel).subscribe((result: StandardOutputModel) => {\r\n // //Set manipulated value from the parent component(W.r.t other documents elements selection while bulk upload)\r\n // this.transmittalForm.get('txtSerialNo')?.setValue(String(result.result).padStart(this.serialNoLength, '0'));\r\n // });\r\n // this.UnsubscribeArray.push(_getTransmittalSerialNo);\r\n // }\r\n // }\r\n\r\n /**\r\n * Get Element Details\r\n */\r\n public async getElementDetails(elementName: string) {\r\n await this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.Transmittal,\r\n deDescription: elementName\r\n }).toPromise().then((res: any[]) => {\r\n switch (elementName) {\r\n case \"Message Category\":\r\n this.categoryList = res;\r\n if (this.categoryList.length == 1)\r\n this.transmittalForm.get(\"formCategory\")?.setValue(this.categoryList[0].dedDescription);\r\n break;\r\n case \"Copy Type\":\r\n this.copyTypeList = res;\r\n break;\r\n }\r\n }, (err: any) => { });\r\n //this.UnsubscribeArray.push(_getProjectElementDetails);\r\n }\r\n\r\n setMessageValues(event: {\r\n text: string; additionalValues: {\r\n additionalValues: any;\r\n };\r\n }, formControlName: string) {\r\n this.mailType = event.text;\r\n this.transmittalForm.get(formControlName)?.setValue(event.additionalValues.additionalValues);\r\n }\r\n\r\n setTransmittalTypeValues(event: { emittingList: [additionalValues: any, value: number | null | undefined]; }, formControlName: string) {\r\n\r\n this.transmittalForm.get(formControlName).setValue(event.emittingList.map(x => x.additionalValues));\r\n this.selectedTransmittalType = event.emittingList.map(x => x.value);\r\n\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n let _type = this.transmittalForm.get(\"formType\")?.value;\r\n\r\n if (!!_type) {\r\n let _getSelectedType: any[] = [];\r\n _getSelectedType = [];\r\n _getSelectedType = _type;\r\n\r\n dataItem.type = _getSelectedType;\r\n dataItem.selectedType = _getSelectedType.map(x => x.dedId)\r\n }\r\n\r\n });\r\n }\r\n\r\n saveTransmittal(is_Send_Mail: boolean) {\r\n if (this.messageGroupForm.valid && this.transmittalForm.valid && this.messageContentForm.valid && this.dynamicForm.value.valid) {\r\n let findEmptyfields: any;\r\n findEmptyfields = this.distributionList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n });\r\n if (findEmptyfields.length > 0) {\r\n this.editRowDynamic(findEmptyfields[0]);\r\n return;\r\n }\r\n if (this.distributionList.length == 0) {\r\n this.notificationService.showToast(\"Distribution List Cannot be Empty\", \"Warning\");\r\n return;\r\n }\r\n if (this.documentList.length == 0 && this.documentViewList.length==0) {\r\n this.notificationService.showToast(\"No Documents Attached\", \"Warning\");\r\n return;\r\n }\r\n if (is_Send_Mail == false) {\r\n if (this.documentViewList && this.documentViewList.some(x => !x.isAttachemtUploded)) {\r\n this.notificationService.showToast(\"Every document should have at least one attachment\", \"Warning\");\r\n return;\r\n }\r\n }\r\n\r\n this.previewTransmittal();\r\n let disciplineId = 0;\r\n let discipline = '';\r\n let selectedValue: any = this.dynamicElementList.filter(x => x.deDescription.toUpperCase().trim()=='Discipline'.toUpperCase().trim());\r\n if (selectedValue != null && selectedValue != undefined) {\r\n disciplineId = selectedValue[0].dedId;\r\n discipline = selectedValue[0].dedDescription;\r\n }\r\n let semiNo: string = '0';\r\n let msgNo: string = this.getFormValue(\"txtMsgSerialNo\", this.transmittalForm);\r\n if (this.numFormat == 'Semi' || this.numFormat == 'Auto') {\r\n semiNo = this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n semiNo = semiNo.replace(/\\D|^0+/g, \"\");\r\n msgNo = msgNo + '-' + this.getFormValue(\"txtSerialNo\", this.transmittalForm);\r\n }\r\n let transmittalMsgInputDetails: ITransmittalMsgInputModel = {\r\n inputType: this.inputType,\r\n project_Id: this.projectId,\r\n message_Id: this.transmittalId ? this.transmittalId : this.MessageId,\r\n message_Number: this.transmittalId ? this.transmittalId.toString() : null,\r\n message_Serial_Number: is_Send_Mail ? +semiNo : null,\r\n discipline: disciplineId,\r\n cust_Ref_No: this.getFormValue('txtCusRef', this.messageContentForm),\r\n parent_Message_Id: 0,\r\n message_Type: this.getFormValue('category', this.transmittalForm).dedId,\r\n has_Attachments: this.documentList.length > 0 || this.messageList.length > 0,\r\n is_Confidential: this.getFormValue('lblIsConfidential', this.transmittalForm) == null ? false : this.getFormValue('lblIsConfidential', this.transmittalForm),\r\n message_Category: 3,\r\n message_Subject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n message_Body: this.transmittalViewComponent.getHtmlContent(),\r\n response_Type: this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n respond_On: this.RespondOn,\r\n issue_Reason: 10,\r\n sent_On: is_Send_Mail ? this.datevalue : null,\r\n is_Mail_Sent: is_Send_Mail,\r\n is_Active: true,\r\n userId: this.memberId,\r\n message_Note: !!this.selectedRemarks ? this.selectedRemarks : null\r\n };\r\n let _insertUpdateTransmittalDetails = this._transmittalMsgService.InsertUpdateTransmittalDetails(transmittalMsgInputDetails).subscribe((x: StandardOutputModel | any) => {\r\n if (x.successCode == 200) {\r\n let messageId: number = +x.result;\r\n let transmittalReceiverDetails = this.saveTransmittalReceiverDetails(messageId);\r\n let transmittalDistributionDetails = this.saveTransmittalDistributionDetails(messageId);\r\n let transmittalDocMsgDetails = this.saveTransmittalMsgDocDetails(messageId);\r\n let transmittalDocDetails = this.saveTransmittalDocDetails(messageId);\r\n let transmittalDocCopyDetails = this.saveTransmittalDocCopyDetails(messageId);\r\n //let transmittalDocEleDetails = this.saveTransmittalDocEleDetails(messageId)\r\n let _transmittaldDetails = forkJoin([transmittalReceiverDetails,\r\n transmittalDistributionDetails,\r\n transmittalDocMsgDetails,\r\n transmittalDocDetails,\r\n transmittalDocCopyDetails\r\n //transmittalDocEleDetails\r\n ]).subscribe((res: any[]) => {\r\n if (this.signedDocuments.length > 0) {\r\n let signedDocs: ITransmittalSignedDocumentsModel = {\r\n projectId: this.projectId,\r\n msgId: messageId,\r\n createdBy: this.memberId,\r\n signedDocuments: this.signedDocuments\r\n }\r\n let _updateSignedDocumentsMessageId = this._transmittalMsgService.UpdateSignedDocumentsMessageId(signedDocs).subscribe(async (res: StandardOutputModel | any) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_updateSignedDocumentsMessageId);\r\n }\r\n if (this.attachmentsList.length > 0) {\r\n let attachedDoc: IMsgAttachmentsModel = { projectId: this.projectId, msgId: messageId, createdBy: this.memberId, messageDocuments: this.attachmentsList }\r\n let _updateCommunicationDocumentMessageId = this.communicationService.updateCommunicationDocsMsgId(attachedDoc).subscribe((res: any) => {\r\n if (res.successCode != 200) {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_updateCommunicationDocumentMessageId);\r\n }\r\n\r\n if (is_Send_Mail == true) {\r\n let sTo: string = this.toMember.eMailId;\r\n let sCC: string = this.ccMembers.map((x: any) => x.eMailId).join(',');\r\n let sFrom: string = this.fromMember.eMailId;\r\n let mailDetails: ITransmittalMailDetails = {\r\n from_List: sFrom,\r\n to_List: sTo,\r\n cc_List: sCC,\r\n project_Code: this.commonService.getProjectCode(),\r\n discipline: discipline,\r\n mail_Body: this.transmittalViewComponent.getHtmlContent(),\r\n mail_Subject: this.getFormValue('txtMailSubject', this.messageContentForm),\r\n message_Id: messageId\r\n }\r\n let _sendTransmittalMail = this._transmittalMsgService.SendTransmittalMail(mailDetails).subscribe((res: StandardOutputModel | any) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n if (this.isWorkflow != true) {\r\n this.notificationService.showPopup(\"Transmittal Sent successfully\", \"Success\");\r\n }\r\n this.reSet();\r\n this.getTransmittalDetails();\r\n this.closeDialog(x.result);\r\n } else {\r\n this.notificationService.showPopup(res.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_sendTransmittalMail);\r\n } else {\r\n if (this.isWorkflow != true) {\r\n this.notificationService.showPopup(\"Transmittal Saved successfully\", \"Success\");\r\n }\r\n this.reSet();\r\n this.getTransmittalDetails();\r\n this.closeDialog(x.result);\r\n }\r\n });\r\n this.UnsubscribeArray.push(_transmittaldDetails);\r\n } else {\r\n this.notificationService.showPopup(x.successMessage, \"Warning\");\r\n }\r\n });\r\n this.UnsubscribeArray.push(_insertUpdateTransmittalDetails);\r\n } else {\r\n this.notificationService.showPopup(\"Mandatory fields are required\", \"Warning\");\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.messageGroupForm);\r\n this.formMarkAsTouched(this.transmittalForm);\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n }\r\n }\r\n\r\n private generateMessageNo() {\r\n let serialNo: any = this.getFormValue('txtSerialNo', this.transmittalForm);\r\n this.messageNo = this.getFormValue('txtMsgSerialNo', this.transmittalForm);\r\n if (!!serialNo) {\r\n this.messageNo = this.messageNo + \"-\" + this.getFormValue('txtSerialNo', this.transmittalForm);\r\n }\r\n }\r\n\r\n private saveTransmittalReceiverDetails(messageId: number) {\r\n let fromMembers: ITransmittalMemberModel[] = [];\r\n fromMembers.push(this.fromMember);\r\n let toMembers: ITransmittalMemberModel[] = [];\r\n toMembers.push(this.toMember);\r\n let transmittalReceiverInput: ITransmittalMsgReceiverInput = {\r\n message_Id: messageId,\r\n transmittalFromDetails: fromMembers.map(x => {\r\n let fromMember: IReceiverInput = {\r\n member_Id: x.memberId,\r\n receiver_Type: 1,\r\n receiver_Group: 0,\r\n sort_By: 1\r\n };\r\n return fromMember;\r\n }),\r\n transmittalToDetails: toMembers.map(x => {\r\n let toMember: IReceiverInput = {\r\n member_Id: x.memberId,\r\n receiver_Type: 2,\r\n receiver_Group: 0,\r\n sort_By: 1\r\n };\r\n return toMember;\r\n\r\n }),\r\n transmittalCcDetails: this.ccMembers.map(x => {\r\n let ccMember: IReceiverInput = {\r\n member_Id: x.memberId,\r\n receiver_Type: 3,\r\n receiver_Group: x.groupBy,\r\n sort_By: 1\r\n };\r\n return ccMember;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalReceiverDetails(transmittalReceiverInput);\r\n }\r\n\r\n private saveTransmittalDistributionDetails(messageId: number) {\r\n let transmittalDistributionInput: ITransmittalGroupMemberInput = {\r\n message_Id: messageId,\r\n distributionMemberDetails: this.distributionList.map(x => {\r\n let distDetails: IDistributionMemberDetails = {\r\n group_Id: x.receiver_Group,\r\n group_Member: x.members.map((mem: {\r\n memberName: any;\r\n }) => mem.memberName).join('/'),\r\n quantity: x.quantity,\r\n category: x.category == null ? \"\" : x.category.dedShortDescription,\r\n copy_Type: x.type == null ? \"\" : x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString(),\r\n address: null,\r\n remarks: x.remarks\r\n };\r\n return distDetails;\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalGroupMemberDetails(transmittalDistributionInput);\r\n }\r\n\r\n private saveTransmittalMsgDocDetails(messageId: number) {\r\n let transmittalDocumentMessageInput: ITransmittalMsgDocumentInput = {\r\n message_Id: messageId,\r\n transmittalDocumentMessageDetails: this.documentUpdateList.map(x => {\r\n let distDetails: ITransmittalDocumentMsgDetails = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n response_Remarks: x.remarks,\r\n response: this.getFormValue('txtNoOfDays', this.messageGroupForm),\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalMsgDocDetails(transmittalDocumentMessageInput);\r\n }\r\n\r\n private saveTransmittalDocDetails(messageId: number) {\r\n let transmittalDocumentInput: ITransmittalDocumentInput = {\r\n message_Id: messageId,\r\n transmittalDocumentDetails: this.documentUpdateList.map(x => {\r\n let distDetails: ITransmittalDocumentDetails = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n quantity: x.quantity,\r\n doc_Type: x.type.map((x: {\r\n dedShortDescription: any;\r\n }) => x.dedShortDescription).toString(),\r\n category: x.category.dedId,\r\n remarks: x.remarks\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalDocDetails(transmittalDocumentInput);\r\n }\r\n\r\n private saveTransmittalDocCopyDetails(messageId: number) {\r\n let transmittalDocumentCopyInput: any = {\r\n message_Id: messageId,\r\n transmittalDocumentCopyDetails: this.documentUpdateList.map(x => {\r\n let distDetails: ITransmittalDocumentCopyDetails = {\r\n doc_Id: x.doc_Id,\r\n revision_No: x.revision_No,\r\n no_of_Copies: x.quantity,\r\n copy_Type: x.type.dedId,\r\n };\r\n return distDetails;\r\n\r\n }),\r\n is_Active: true,\r\n userId: this.memberId\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalDocCopyDetails(transmittalDocumentCopyInput);\r\n }\r\n\r\n private saveTransmittalDocEleDetails(messageId: number) {\r\n let transmittalDocEleDetails: ITransmittalDocumentElementDetails[] = [];\r\n let resForm: FormGroup = this.dynamicForm.value;\r\n transmittalDocEleDetails = this.projectElements.map(x => {\r\n let selectedValue: any = resForm.get(x.elementDescription)?.value;\r\n let result: ITransmittalDocumentElementDetails = {\r\n deId: x.elementId,\r\n dedId: selectedValue.dedId,\r\n userId: this.memberId,\r\n isActive: true,\r\n messageId: messageId\r\n }\r\n return result;\r\n });\r\n let transmittalDocumentElement: ITransmittalDocumentElementInput = {\r\n elementDetailsMapping: transmittalDocEleDetails\r\n }\r\n return this._transmittalMsgService.InsertUpdateTransmittalDocElementDetails(transmittalDocumentElement);\r\n }\r\n\r\n async getMembers() {\r\n this.membersList = await this.memberService.GetMembersList({\r\n group_Id: this.groupId,\r\n member_Id: null\r\n }).toPromise();\r\n }\r\n\r\n public getSignatureList() {\r\n let _getSignatureList = this.communicationService.GetSignatureList({\r\n MemberId: this.memberId\r\n })\r\n .subscribe((res: ISignatureOutputModel[]) => {\r\n this.signatureList = res;\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(_getSignatureList);\r\n }\r\n\r\n // showDocumentCart() {\r\n // let obj: any = {}\r\n // if (this.documentViewList.length > 0) {\r\n // obj[\"data\"] = this.documentViewList;\r\n // }\r\n // const dialogRef = this.dialog.open(DocumentViewGridComponent, {\r\n // panelClass: 'mat-dialog-primary',\r\n // data: obj\r\n // });\r\n // dialogRef.afterClosed().subscribe((res: any) => {\r\n // this.WorkflowDocument = res;\r\n // if (res.length > 0) {\r\n // this.reciviedDoc = res.filter((data: {\r\n // isSelected: boolean;\r\n // }) => data.isSelected == true);\r\n // Array.prototype.push.apply(this.documentList, this.reciviedDoc);\r\n // } else {\r\n // if (this.documentList.length < 0) {\r\n // this.documentList = [];\r\n // }\r\n // }\r\n // let currentDocList: ITransmittalDocViewModel[] = this.documentViewList;\r\n // this.documentViewList = this.documentList.map(x => {\r\n // let _category: any = this.transmittalForm.get(\"category\")?.value;\r\n // let _type: any = this.transmittalForm.get(\"formType\")?.value;\r\n // let _remarks: any = \"\";\r\n // let _quantity: any = this.transmittalForm.get(\"txtquantity\")?.value;\r\n // let transDocViewModel: ITransmittalDocViewModel = currentDocList.filter(tdoc => tdoc.doc_Id == x.docId)[0];\r\n // if (!!transDocViewModel) {\r\n // _category = transDocViewModel.category;\r\n // _type = transDocViewModel.type;\r\n // _remarks = transDocViewModel.remarks;\r\n // _quantity = transDocViewModel.quantity;\r\n // }\r\n\r\n // this._getSelected_Type = [];\r\n // this._getSelected_Type.push(_type);\r\n\r\n // let docViewModel: ITransmittalDocViewModel = {\r\n // doc_Id: x.docId,\r\n // revision_No: x.revision,\r\n // title: x.title,\r\n // document_No: x.documentNo,\r\n // authorized_By: x.authorisedByName,\r\n // category: _category,\r\n // type: this._getSelected_Type,\r\n // remarks: _remarks,\r\n // quantity: _quantity,\r\n // isAttachemtUploded: false,\r\n // selectedCategory: _category.dedId,\r\n // selectedType: this._getSelected_Type.map(x => x.dedId)\r\n // };\r\n // return this.validateAttachment(docViewModel);\r\n // });\r\n // this.documentUpdateList = this.documentViewList;\r\n // });\r\n // }\r\n\r\n validateAttachment(input: ITransmittalDocViewModel, task_Id?: string): ITransmittalDocViewModel {\r\n let _getFiles = this._fileService.GetFiles({\r\n libraryNumber: (input.scheduleType == 3 || this.is_Show_Attachment_In_DTN) ? FileUploadLibrary.WorkflowDocument : FileUploadLibrary.SignedDocuments,\r\n value: JSON.stringify({\r\n projectId: this.projectId,\r\n docId: input.doc_Id,\r\n revisionNo: input.revision_No,\r\n task_ID: task_Id ? task_Id : this.task_id_list\r\n })\r\n }).subscribe((_data: any[]) => {\r\n input.isAttachemtUploded = _data.length > 0 ? true : false;\r\n return input;\r\n });\r\n this.UnsubscribeArray.push(_getFiles);\r\n return input;\r\n }\r\n\r\n removeDocument(data: any) {\r\n if (this.documentList.length > 0) {\r\n this.documentList.forEach((value, index) => {\r\n if (value.docId == data.dataItem.doc_Id) {\r\n this.documentList.splice(index, 1);\r\n }\r\n });\r\n }\r\n if (this.documentViewList.length > 0) {\r\n this.documentViewList.forEach((value, index) => {\r\n if (value.doc_Id == data.dataItem.doc_Id) {\r\n this.documentViewList.splice(index, 1);\r\n }\r\n });\r\n }\r\n if (this.signedDocuments.length > 0) {\r\n this.signedDocuments.forEach((value, index) => {\r\n if (value.docId == data.dataItem.doc_Id) {\r\n this.documentList.splice(index, 1);\r\n }\r\n })\r\n }\r\n this.documentUpdateList = this.documentViewList;\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', {\r\n month: 'short'\r\n })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n getValue(selectedText: {\r\n value: string | null;\r\n }) {\r\n this.isRevisedDateInvalid = selectedText.value == null;\r\n this.RespondOn = selectedText.value;\r\n }\r\n\r\n addDays() {\r\n let value = this.getFormValue('txtNoOfDays', this.messageGroupForm);\r\n if (!isNaN(value)) {\r\n var futureDate = new Date();\r\n futureDate.setDate(futureDate.getDate() + value);\r\n this.RespondOn = formatDate(futureDate, 'dd-MM-yyyy', 'en-US');;\r\n this.datevalue = futureDate;\r\n return futureDate;\r\n } else {\r\n this.notificationService.showToast(\"Enter Valid Number\", \"Warning\");\r\n\r\n }\r\n }\r\n\r\n closeDialog(message_Number?: string) {\r\n if (this.attachmentsList && this.attachmentsList.length > 0 && !message_Number) {\r\n this.attachmentsList.forEach(x => {\r\n this._fileService.DeleteFile({ libraryNumber: 4, fileId: x.fileId, fileName: x.fileName + '.' + x.fileExtension }).subscribe(data => { });\r\n })\r\n }\r\n this.dialogRef.close(message_Number);\r\n }\r\n\r\n getGroupByValue(member: ITransmittalMemberModel): number | null | undefined {\r\n return member.groupBy;\r\n }\r\n\r\n onGroupByChange(value: number, member: ITransmittalMemberModel) {\r\n if (typeof Number(value) === \"number\")\r\n member.groupBy = value;\r\n else\r\n member.groupBy = null;\r\n }\r\n\r\n getElementDesc(element: any): string {\r\n if (!!element)\r\n return element.dedShortDescription + ' - ' + element.dedDescription;\r\n return '';\r\n }\r\n\r\n getTypeElementDesc(element: any[]): string {\r\n if (!!element && element.length > 0)\r\n return element.map(x => x.dedShortDescription).toString();\r\n return '';\r\n }\r\n\r\n public async getTransmittalDetails() {\r\n let _getTransmittalDetails = await this._transmittalService.GetTransmittalDetails({\r\n project_Id: this.projectId,\r\n group_Id: this.groupId\r\n })\r\n .subscribe((res: ITransmittalTemplateModel[]) => {\r\n this.templateDetails = res;\r\n }, (err: any) => { });\r\n this.UnsubscribeArray.push(_getTransmittalDetails);\r\n }\r\n\r\n numberOnly(event: {\r\n which: any; keyCode: any;\r\n }): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n // changeTransmittalTemplateList(event: {\r\n // value: string | number | null;\r\n // }) {\r\n // if (event.value != \"-2\") {\r\n // this.reSet();\r\n // this.template_Id = event.value;\r\n // let transmittalDetails: Observable = this._transmittalService.GetTransmittalDetails({\r\n // project_Id: this.projectId,\r\n // group_Id: this.groupId,\r\n // template_Id: event.value\r\n // });\r\n // let receiverDetails: Observable = this._transmittalService.GetTransmittalReceiverDetails({\r\n // template_Id: event.value\r\n // });\r\n // let distributionDetails: Observable = this._transmittalService.GetTransmittalDistributionDetails({\r\n // template_Id: event.value\r\n // });\r\n // let _transmittalDetails = forkJoin(transmittalDetails, receiverDetails, distributionDetails).subscribe((res: any[]) => {\r\n // this.setTransmittalDetails(res[0]);\r\n // this.setReceiverDetails(res[1]);\r\n // let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n // let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n // this.distributionList = res[2].map((x: {\r\n // copy_Type: {\r\n // toString: () => string;\r\n // }; receiver_Group: number | null | undefined; category: any; remarks: any; quantity: any;\r\n // }) => {\r\n // this.getSelected_Type = [];\r\n // let selected_type: any[];\r\n // selected_type = x.copy_Type.toString().replace(/-/g, \"\").split(',');\r\n // for (let i = 0; i < selected_type.length; i++) {\r\n // for (let j = 0; j < this.copyTypeList.length; j++) {\r\n // if (selected_type[i] == this.copyTypeList[j].dedShortDescription) {\r\n // this.getSelected_Type.push(this.copyTypeList[j]);\r\n // }\r\n // }\r\n // };\r\n // let distributerViewModel: ITransmittalGroupViewModel = {\r\n // receiver_Group: x.receiver_Group,\r\n // members: groupByResult.filter(y => y.filter(z => z.groupBy == x.receiver_Group)[0])[0],\r\n // category: this.categoryList.filter(y => y.dedId == x.category)[0],\r\n // type: this.getSelected_Type,\r\n // remarks: x.remarks,\r\n // quantity: x.quantity\r\n // };\r\n // return distributerViewModel;\r\n // });\r\n\r\n // this.documentViewList.forEach((dataItem, rowIndex) => {\r\n // let _category = this.categoryList.filter(y => y.dedId == res[0][0].category)[0];\r\n // let _quantity = res[0][0].quantity;\r\n // let _type = this.transmittalForm.get(\"formType\")?.value;\r\n\r\n // if (!!_category) {\r\n // dataItem.category = _category;\r\n // dataItem.selectedCategory = _category.dedId\r\n // }\r\n\r\n // if (!!_quantity) {\r\n // dataItem.quantity = _quantity;\r\n // }\r\n\r\n // if (!!_type) {\r\n // let _getSelectedType: any[] = [];\r\n // _getSelectedType = [];\r\n // _getSelectedType.push(_type);\r\n\r\n // dataItem.type = _getSelectedType;\r\n // dataItem.selectedType = _getSelectedType.map(x => x.dedId)\r\n // }\r\n\r\n // });\r\n // });\r\n // this.UnsubscribeArray.push(_transmittalDetails);\r\n // } else {\r\n // this.reSet();\r\n // }\r\n // }\r\n\r\n setTransmittalDetails(res: ITransmittalTemplateModel[]) {\r\n this.messageContentForm.get(\"txtMailSubject\")?.setValue(res[0].template_Subject);\r\n this.transmittalForm.get(\"txtquantity\")?.setValue(res[0].quantity);\r\n this.selectedCategory = res[0].category;\r\n this.selectedRemarks = res[0].template_Remarks;\r\n this.transmittalForm.get(\"formCategory\")?.setValue(this.selectedCategory);\r\n }\r\n\r\n setReceiverDetails(transmittalReceiverInput: ITransmittalReceiverDetails[]) {\r\n let fromMembers: ITransmittalMemberModel[] = this.getTransmittalMembers(transmittalReceiverInput[0].receiverFromDetails);\r\n if (!!fromMembers && !!fromMembers[0]) {\r\n this.selectedFrom = fromMembers[0].memberId;\r\n this.messageGroupForm.get(\"formFromMember\")?.setValue(this.selectedFrom);\r\n }\r\n let toMembers: ITransmittalMemberModel[] = this.getTransmittalMembers(transmittalReceiverInput[0].receiverToDetails);\r\n if (!!toMembers && !!toMembers[0]) {\r\n this.selectedTo = toMembers[0].memberId;\r\n this.messageGroupForm.get(\"formToMember\")?.setValue(this.selectedTo);\r\n }\r\n this.ccMembers = this.getTransmittalMembers(transmittalReceiverInput[0].receiverCcDetails);\r\n if (this.ccMembers != null) {\r\n this.ccFormMembers.setValue([...this.ccMembers]);\r\n }\r\n\r\n this.ccFormMembers.updateValueAndValidity();\r\n\r\n this.resetCcMemberFilter();\r\n }\r\n\r\n showGroupView() {\r\n this.distGrid.closeRow(this.DistrowIndex);\r\n if (this.ccMembers.filter(x => !x.groupBy).length > 0) {\r\n this.notificationService.showPopup(\"Please enter group by value for all CC members\", \"Warning\");\r\n return;\r\n }\r\n let sortedCcMembers: ITransmittalMemberModel[] = sortBy(this.ccMembers, x => x.groupBy);\r\n let groupByResult: ITransmittalMemberModel[][] = map(groupBy(sortedCcMembers, x => x.groupBy));\r\n let existingDistributionList: ITransmittalGroupViewModel[] = this.distributionList;\r\n this.distributionList = groupByResult.map(x => {\r\n let groupBy: any = x[0].groupBy;\r\n let category: any = this.transmittalForm.get(\"category\")?.value;;\r\n let type: any = null;\r\n let quantity: any = this.transmittalForm.get('txtquantity')?.value;\r\n let remarks: any = \"\";\r\n if (!!existingDistributionList && existingDistributionList.length > 0) {\r\n let groupView: ITransmittalGroupViewModel = existingDistributionList.filter(dl => dl.receiver_Group == x[0].groupBy)[0];\r\n if (!!groupView) {\r\n category = groupView.category;\r\n type = groupView.type;\r\n quantity = groupView.quantity;\r\n remarks = groupView.remarks;\r\n }\r\n }\r\n let distributerViewModel: ITransmittalGroupViewModel = {\r\n receiver_Group: groupBy,\r\n members: x,\r\n category: category,\r\n type: type,\r\n remarks: remarks,\r\n quantity: quantity\r\n };\r\n return distributerViewModel;\r\n })\r\n }\r\n\r\n // getMemberNames(dataItem: ITransmittalMemberModel[]): string {\r\n // return dataItem.map(x => x.memberName).join(' / ');\r\n // }\r\n\r\n private saveCurrentDistribution(): void {\r\n if (this.formGroupDist) {\r\n this.currentEditGroupViewModel.type = this.formGroupDist.get('type')?.value;\r\n this.currentEditGroupViewModel.category = this.formGroupDist.get('category')?.value;\r\n this.currentEditGroupViewModel.quantity = this.formGroupDist.get('quantity')?.value;\r\n this.currentEditGroupViewModel.remarks = this.formGroupDist.get('remarks')?.value;\r\n if (this.distributionList.filter(x => x.receiver_Group == this.currentEditGroupViewModel.receiver_Group).length > 0) {\r\n let index = this.distributionList.findIndex(x => x.receiver_Group == this.currentEditGroupViewModel.receiver_Group);\r\n this.distributionList.splice(index, 1);\r\n }\r\n this.distributionList.push(this.currentEditGroupViewModel);\r\n this.closeEditorDistList();\r\n }\r\n }\r\n\r\n /**\r\n * Close the row editor\r\n */\r\n public cancelHandlerDistList(): void {\r\n this.closeEditorDistList();\r\n }\r\n\r\n private closeEditorDistList(): void {\r\n this.distGrid.closeRow(this.editedRowIndex);\r\n this.editedRowIndex = undefined;\r\n this.currentEditGroupViewModel = undefined;\r\n this.formGroupDist = undefined;\r\n }\r\n\r\n editRowDynamic(dataItem: any) {\r\n this.formGroupDist = createFromGroupDist(dataItem);\r\n this.distributionList = this.distributionList.sort((a, b) => a.receiver_Group - b.receiver_Group);\r\n let rowIndex!: number;\r\n for (let i = 0; i < this.distributionList.length; i++) {\r\n if (this.distributionList[i].receiver_Group == dataItem.receiver_Group) {\r\n rowIndex = i;\r\n break;\r\n }\r\n }\r\n if (this.editedRowIndexDist >= 0) {\r\n this.grid.closeRow(this.editedRowIndex);\r\n }\r\n if (!!dataItem.category) {\r\n this.selected_Category = dataItem.category.dedId;\r\n this.formGroupDist.get('category')?.setValue(this.selected_Category);\r\n } else {\r\n this.selected_Category = null;\r\n this.formGroupDist.get('category')?.setValue(null);\r\n }\r\n if (!!dataItem.type) {\r\n this.selected_Type = dataItem.type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n this.formGroupDist.get('type')?.setValue(this.selected_Type);\r\n } else {\r\n this.selected_Type = [];\r\n this.formGroupDist.get('type')?.setValue(null);\r\n }\r\n this.formGroupDist.get('quantity')?.setValue(dataItem.quantity);\r\n this.editedRowIndexDist = rowIndex;\r\n this.editedRowIndex = rowIndex;\r\n this.editedRowIndexDist = rowIndex;\r\n this.currentEditGroupViewModel = dataItem;\r\n this.distGrid.editRow(rowIndex);\r\n }\r\n\r\n editRowDataDist(data: any) {\r\n this.selected_Type = [];\r\n this.DistrowIndex = data.rowIndex;\r\n this.formGroupDist = createFromGroupDist(data.dataItem);\r\n //closing previous row, if anything opened\r\n if (this.editedRowIndexDist >= 0) {\r\n data.sender.closeRow(this.editedRowIndexDist);\r\n }\r\n this.editedRowIndexDist = data.rowIndex;\r\n if (!!data.dataItem.type && data.dataItem.type.length > 0) {\r\n this.selected_Type = data.dataItem.type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n this.formGroupDist.get('type')?.setValue(this.selected_Type);\r\n } else {\r\n this.selected_Type = [];\r\n this.formGroupDist.get('type')?.setValue([]);\r\n }\r\n if (!!data.dataItem.category) {\r\n this.selected_Category = data.dataItem.category.dedId;\r\n this.formGroupDist.get('category')?.setValue(this.selected_Category);\r\n } else {\r\n this.selected_Category = null;\r\n this.formGroupDist.get('category')?.setValue(null);\r\n }\r\n this.formGroupDist.get('quantity')?.setValue(data.dataItem.quantity);\r\n this.editedRowIndexDist = data.rowIndex;\r\n this.currentEditGroupViewModel = data.dataItem;\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n public cellClickHandler(data: any): void {\r\n return;\r\n }\r\n\r\n bulkSave(grid: any) {\r\n if (this.documentViewList.length > 0) {\r\n let haserror: boolean = false;\r\n\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n if (!haserror) {\r\n let index = this.documentViewList.findIndex(x => x.doc_Id == dataItem.doc_Id);\r\n if (dataItem.quantity == undefined || dataItem.quantity == null || dataItem.quantity.toString() == \"\" || dataItem.quantity <= 0) {\r\n this.notificationService.showToast(\"Attached document grid serial number \" + (index + 1) + \" - No of Copies is required\", \"Warning\");\r\n haserror = true;\r\n this.isShowbulkSave = true;\r\n return;\r\n } else if (dataItem.category == undefined || dataItem.category == null || dataItem.category.toString() == \"\") {\r\n this.notificationService.showToast(\"Attached document grid serial number \" + (index + 1) + \" - Category is required\", \"Warning\");\r\n haserror = true;\r\n this.isShowbulkSave = true;\r\n return;\r\n } else if (dataItem.type == undefined || dataItem.type == null || dataItem.type.toString() == \"\") {\r\n this.notificationService.showToast(\"Attached document grid serial number \" + (index + 1) + \" - Type is required\", \"Warning\");\r\n haserror = true;\r\n this.isShowbulkSave = true;\r\n return;\r\n } else {\r\n grid.closeRow(rowIndex);\r\n this.isShowbulkSave = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n bulkCancel(grid: any) {\r\n if (this.documentViewList.length > 0) {\r\n this.isShowbulkSave = false;\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n grid.closeRow(rowIndex);\r\n });\r\n }\r\n }\r\n\r\n bulkDelete(grid: any) {\r\n this.isShowbulkSave = false;\r\n this.documentViewList = [];\r\n }\r\n\r\n bulkEdit(grid: any) {\r\n if (this.documentViewList.length > 0) {\r\n this.isShowbulkSave = true;\r\n this.documentViewList.forEach((dataItem, rowIndex) => {\r\n dataItem.selectedType = [];\r\n\r\n if (!!dataItem.type && dataItem.type.length > 0) {\r\n dataItem.selectedType = dataItem.type.map(x => x.dedId);\r\n }\r\n\r\n grid.editRow(rowIndex);\r\n });\r\n }\r\n }\r\n\r\n editRowData(data: any) {\r\n data.dataItem.selectedType = [];\r\n\r\n if (!!data.dataItem.type && data.dataItem.type.length > 0) {\r\n data.dataItem.selectedType = data.dataItem.type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n }\r\n\r\n data.sender.editRow(data.rowIndex);\r\n }\r\n\r\n UpdateRowDataDist(data: any) {\r\n if (this.formGroupDist.valid) {\r\n this.saveCurrentDistribution();\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n }\r\n\r\n UpdateRowData(input: any) {\r\n if (input.dataItem.quantity == undefined || input.dataItem.quantity == null || input.dataItem.quantity.toString() == \"\" || input.dataItem.quantity <= 0) {\r\n this.notificationService.showToast(\"No of Copies is required\", \"Warning\");\r\n return;\r\n } else if (input.dataItem.category == undefined || input.dataItem.category == null || input.dataItem.category.toString() == \"\") {\r\n this.notificationService.showToast(\"Category is required\", \"Warning\");\r\n return;\r\n } else if (input.dataItem.type == undefined || input.dataItem.type == null || input.dataItem.type.toString() == \"\") {\r\n this.notificationService.showToast(\"Type is required\", \"Warning\");\r\n return;\r\n } else {\r\n input.sender.closeRow(input.rowIndex);\r\n }\r\n }\r\n\r\n cancelRowDataDist(data: any) {\r\n data.sender.closeRow(data.rowIndex);\r\n }\r\n\r\n onCategoryChange(val: any) {\r\n this.formGroupDist.get('category')?.setValue(val.additionalValues.additionalValues);\r\n }\r\n\r\n onValueChange(val: any, fieldName: string, dataItem: any) {\r\n if (fieldName.toLocaleLowerCase() == 'quantity') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data)\r\n data[0].quantity = val.target.value;\r\n } else if (fieldName.toLocaleLowerCase() == 'category') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data) {\r\n data[0].category = val.additionalValues.additionalValues;\r\n data[0].selectedCategory = data[0].category.dedId;\r\n }\r\n } else if (fieldName.toLocaleLowerCase() == 'type') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data) {\r\n data[0].type = val.emittingList.map((x: {\r\n additionalValues: any;\r\n }) => x.additionalValues);\r\n data[0].selectedType = data[0].type.map((x: {\r\n dedId: any;\r\n }) => x.dedId);\r\n }\r\n } else if (fieldName.toLocaleLowerCase() == 'remarks') {\r\n var data: any = this.documentViewList.filter(item => item.document_No.toLocaleLowerCase() == dataItem.document_No.toLocaleLowerCase());\r\n if (data)\r\n data[0].remarks = val.target.value;\r\n }\r\n this.documentUpdateList = this.documentViewList;\r\n }\r\n\r\n onTypeChange(event: any, gridType?: string, dataItem?: any) {\r\n if (!!event) {\r\n if (gridType == \"distribution\") {\r\n if (event.emittingList.length > 0) {\r\n this.formGroupDist.get('type').setValue(event.emittingList.map((x: {\r\n additionalValues: any;\r\n }) => x.additionalValues));\r\n }\r\n }\r\n }\r\n }\r\n\r\n public remarkChange(value: any): void {\r\n this.formGroupDist.get('remarks').setValue(value.target.value);\r\n }\r\n\r\n public qtyChange(value: any): void {\r\n this.formGroupDist.get('quantity').setValue(value.target.value);\r\n }\r\n\r\n private getTransmittalMembers(members: IReceiverDetails[]): ITransmittalMemberModel[] {\r\n let _refmem = members.map(x => {\r\n if (this.masterMembers.some(y => y.memberId == x.member_Id)) {\r\n let _obj;\r\n let member: ITransmittalMemberModel;\r\n\r\n _obj = this.masterMembers.filter(y => y.memberId == x.member_Id)[0];\r\n\r\n member = {\r\n memberId: _obj ? x.member_Id : null,\r\n memberName: _obj ? x.member_Name : null,\r\n memberShortName: _obj ? _obj.memberShortName : \"\",\r\n eMailId: _obj ? _obj.eMailId : \"\",\r\n staffPSNo: _obj ? _obj.staffPSNo : \"\",\r\n mobileNo: _obj ? _obj.mobileNo : \"\",\r\n groupBy: x.receiver_Group\r\n };\r\n return member;\r\n }\r\n });\r\n return _refmem.filter(value => value != undefined);\r\n }\r\n\r\n previewTransmittal() {\r\n if (this.messageGroupForm.valid && this.transmittalForm.valid && this.messageContentForm.valid && this.dynamicForm.value.valid) {\r\n if (this.distributionList.length == 0) {\r\n this.notificationService.showToast(\"Distribution List Cannot be Empty\", \"Warning\");\r\n return;\r\n }\r\n let findEmptyfields: any;\r\n findEmptyfields = this.distributionList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n });\r\n if (findEmptyfields.length > 0) {\r\n this.editRowDynamic(findEmptyfields[0]);\r\n return;\r\n }\r\n\r\n if (this.documentList.length == 0 && this.documentViewList.length==0) {\r\n this.notificationService.showToast(\"No Documents Attached\", \"Warning\");\r\n return;\r\n }\r\n let findocEmptyfields: any;\r\n findocEmptyfields = this.documentViewList.filter((data, index) => {\r\n if (!data.type || !data.category || !data.quantity) {\r\n return data;\r\n }\r\n return;\r\n });\r\n if (findocEmptyfields.length > 0) {\r\n this.editDocRowDynamic(findocEmptyfields[0]);\r\n return;\r\n }\r\n if (this.documentViewList && this.documentViewList.some(x => !x.isAttachemtUploded)) {\r\n this.notificationService.showToast(\"Every document should have at least one attachment\", \"Warning\");\r\n return;\r\n }\r\n this.createTransmittalCoverSheet();\r\n } else {\r\n this.notificationService.showPopup(\"Mandatory fields are missing\", \"Warning\");\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n this.formMarkAsTouched(this.messageGroupForm);\r\n this.formMarkAsTouched(this.transmittalForm);\r\n this.formMarkAsTouched(this.dynamicForm.form);\r\n }\r\n }\r\n\r\n formMarkAsTouched(form: FormGroup) {\r\n if (!form.valid)\r\n Object.keys(form.controls).forEach(key => {\r\n form.get(key)?.markAsTouched();\r\n });\r\n }\r\n\r\n GetWorkFlowStatus() {\r\n if (this.data.WorkflowTemplateDetails)\r\n if (this.data.WorkflowTemplateDetails.workflowStatus && this.data.WorkflowTemplateDetails.workflowStatus.some((x: {\r\n is_Show_Attachment_In_DTN: boolean;\r\n }) => x.is_Show_Attachment_In_DTN == true)) {\r\n this.is_Show_Attachment_In_DTN = true;\r\n this.task_id_list = this.data.WorkflowTemplateDetails.workflowStatus.filter((x: {\r\n is_Show_Attachment_In_DTN: boolean;\r\n }) => x.is_Show_Attachment_In_DTN == true).map((y: {\r\n task_Id: any;\r\n }) => y.task_Id).join();\r\n }\r\n }\r\n\r\n reSet() {\r\n this.messageGroupForm.reset();\r\n this.messageContentForm.reset();\r\n this.MessageId = 0;\r\n this.messageList = [];\r\n this.fromList = [];\r\n this.toList = [];\r\n this.ccList = [];\r\n this.bccList = [];\r\n this.datevalue = new Date(this.getDateFormat());\r\n this.RespondOn = formatDate(this.datevalue, 'dd-MM-yyyy', 'en-US');\r\n this.transmittalFormat = 'Transmittal';\r\n this.numFormat = 'Auto';\r\n this.readonly = true;\r\n this.responseRequired = 'No';\r\n this.messageGroupForm.controls['txtNoOfDays'].setValue(0);\r\n this.projectId = this.commonService.getProjectId();\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.getSignatureList();\r\n this.getElementDetails(\"Message Category\");\r\n this.getElementDetails(\"Copy Type\");\r\n this.selectedCategory = null;\r\n this.selectedTransmittalType = null\r\n this.selectedTo = null;\r\n this.selectedFrom = null;\r\n this.distributionList = [];\r\n this.ccMembers = [];\r\n this.ccFormMembers.updateValueAndValidity();\r\n this.ccFormMembers.setValue([]);\r\n this.resetCcMemberFilter();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe());\r\n }\r\n\r\n\r\n public clickLocalAttachment() {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, msgId: -1, libraryName: FileUploadLibrary.Communication, createdBy: this.memberId, documents: [{ value: -1, text: this.messageNo, revisionNo: \"\" }], isEditable: false },\r\n });\r\n dialog.componentInstance.onUploadFinished.subscribe(res => {\r\n let fileName: string = res.fileName;\r\n let fileExtn: string = fileName.substring(fileName.lastIndexOf(\".\") + 1);\r\n this.attachmentsList.push({ fileId: -1, fileName: fileName.substring(0, fileName.lastIndexOf(\".\")), fileExtension: fileExtn, fileSize: res.fileSize });\r\n });\r\n }\r\n\r\n\r\n deleteFile(rowIndex: any) {\r\n this.notificationService.showPopup('Are you sure to delete', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n let fileDetails = this.attachmentsList[rowIndex];\r\n this._fileService.DeleteFile({ libraryNumber: 4, fileId: fileDetails.fileId, fileName: fileDetails.fileName + '.' + fileDetails.fileExtension }).subscribe(res => {\r\n this.attachmentsList.splice(rowIndex, 1);\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Edit Transmittal

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Transmittal Number | \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Transmittal No\r\n \r\n \r\n
\r\n \r\n \r\n Serial No\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Category is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Confidential\r\n \r\n \r\n  \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n From is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n To is required\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n {{member.memberName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select any member\r\n \r\n \r\n Please select the value only from the available list\r\n \r\n \r\n \r\n
\r\n \r\n {{member.memberName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Response Required

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n No Of Days\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Response Date is required\r\n \r\n \r\n \r\n \r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Sl. No.Assigned CcGroup By
\r\n {{i+1}}\r\n {{member.memberName}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.receiver_Group}}\r\n \r\n \r\n \r\n \r\n {{dataItem.members | iGetMemberNamePipe}}\r\n \r\n \r\n \r\n \r\n {{dataItem.quantity}}\r\n \r\n \r\n \r\n No of copies\r\n \r\n \r\n \r\n No of copies is required\r\n \r\n \r\n \r\n \r\n \r\n {{getElementDesc(dataItem.category)}}\r\n \r\n \r\n \r\n \r\n \r\n Category is required\r\n \r\n \r\n \r\n \r\n \r\n {{getTypeElementDesc(dataItem.type)}}\r\n \r\n \r\n \r\n \r\n \r\n Type is required\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.remarks}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

ATTACHMENT - Documents*

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.document_No}}\r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.authorized_By}}\r\n \r\n \r\n \r\n \r\n {{dataItem.quantity}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getElementDesc(dataItem.category)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getTypeElementDesc(dataItem.type)}}\r\n \r\n \r\n \r\n \r\n {{dataItem.selectedType}}\r\n \r\n \r\n \r\n \r\n {{dataItem.remarks}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Action\r\n
\r\n \r\n \r\n \r\n \r\n 1 && !is_Show_Attachment_In_DTN\" style=\"font-size: 1.25em; cursor: pointer; margin-left: 2%;\" (click)=\"bulkAttachmentClick(docGrid)\" id=\"\" aria-hidden=\"true\">\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

COMMON TRANSMITTAL ATTACHMENTS -

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileName + '.'+ dataItem.fileExtension}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit, QueryList, ViewChildren, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CreateTransmittalComponent } from '../transmittal-creation/transmittal-creation.component';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { AttachmentsListComponent } from '../attachments-list/attachments-list.component';\r\nimport { TransmittalMsgService } from 'src/app/Service/transmittal/transmittal.service';\r\nimport { ITransmittalDetailsModel, ITransmittalDocumentDetails, ITransmittalDocumentInput, ITransmittalMailDetails, ITransmittalMsgInputModel, ITransmittalMsgReceiverInput } from 'src/app/ViewModel/TransmittalModel';\r\nimport { TransmittalTemplateComponent } from '../transmittal-template/transmittal-template.component';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\n\r\nimport { formatDate } from '@angular/common';\r\nimport { TransmittalViewComponent } from '../transmittal-view/trasnsmittal-view.component';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { ITransmittalMemberModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport * as _ from 'lodash';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { Subscription, Observable, forkJoin } from 'rxjs';\r\nimport { saveAs } from 'file-saver';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { FileService } from 'src/app/Service/file/file.service';\r\nimport { TransmittalEditComponent } from '../transmittal-edit/transmittal-edit.component';\r\n@Component({\r\n selector: 'app-transmittal-list',\r\n templateUrl: './transmittal-list.component.html',\r\n styleUrls: ['./transmittal-list.component.css']\r\n})\r\nexport class TransmittalListComponent implements OnInit, OnDestroy {\r\n @ViewChildren('divIcon') divIconHover!: QueryList;\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n public isSearch: boolean = false;\r\n enableFilter = false;\r\n enableFullscreen = false;\r\n pageSize = 15;\r\n LastViewingRecords = 30;\r\n LastViewingRecord: string = '30';\r\n noOfDays = [30, 60, 90, 'All'];\r\n public lastscrollLeft!: number;\r\n selectedIndex = 0;\r\n selectedRootIndex = 0;\r\n selectedTabIndex = 0;\r\n draft!: boolean;\r\n inbox!: boolean;\r\n landingall!: boolean;\r\n sent!: boolean;\r\n memberId: number = 0;\r\n projectId: number | null = null;\r\n groupId: number = 0;\r\n public gridData: ITransmittalDetailsModel[] = [];\r\n public data: any[] = [];\r\n public searchList: any[] = [];\r\n public allList: any[] = [];\r\n public buttonType = 'MyMessages';\r\n public viewTrasmittalTabs: TransmittalTemplateComponent[] = [];\r\n viewTransmittalData: TransmittalTemplateComponent | null | undefined;\r\n public viewData: any[] = [];\r\n public shareMsgList: any[] = [];\r\n public mailBoxType: any = null;\r\n IsShowCreateList = false;\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n public margin = { horizontal: -15, vertical: 10 };\r\n public projectName!: string;\r\n public datevalue = new Date(this.getDateFormat());\r\n private transmittalViewComponent!: TransmittalViewComponent;\r\n public membersList: ITransmittalMemberModel[] = [];\r\n UnsubscribeArray: Subscription[] = [];\r\n public mailReceiverDetails: any[] = [];\r\n public toMember: any[] = [];\r\n public ccMember: any[] = [];\r\n public fromMember: any[] = [];\r\n public MessageId: number | any = null;\r\n private _transmittalData!: TransmittalTemplateComponent | null;\r\n public isDTNReleased: boolean;\r\n\r\n @ViewChild('transmittalViewComponent') set content(content: TransmittalViewComponent) {\r\n if (content) { // initially setter gets called with undefined\r\n this.transmittalViewComponent = content;\r\n }\r\n }\r\n constructor(\r\n private dialog: MatDialog,\r\n private _transmittalService: TransmittalMsgService,\r\n public commonService: CommonService,\r\n private notificationService: NotificationService,\r\n private encryptDecryptService: EncryptDecryptService,\r\n private transmittalService: TransmittalService,\r\n private _fileService: FileService) {\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.commonService.hasRequestedObject()) {\r\n setTimeout(() => {\r\n this.initialPageLoad();\r\n }, 2000);\r\n }\r\n else {\r\n this.initialPageLoad();\r\n }\r\n }\r\n\r\n initialPageLoad() {\r\n let currentProject = this.commonService.getCurrentProjectDetails();\r\n this.projectName = currentProject.projectCode + ' - ' + currentProject.projectDescription;\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.projectId = currentProject.projectId;\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.loadGrid();\r\n this.getProjectMembers();\r\n }\r\n\r\n loadGrid() {\r\n let inputMsgId = null;\r\n if (this.commonService.hasRequestedObject()) {\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n inputMsgId = requestedObject['inputDocId'];\r\n }\r\n let _getTransmittalList = this._transmittalService.GetTransmittalList({ project_id: this.projectId }).subscribe((res: ITransmittalDetailsModel[]) => {\r\n res.forEach(x => {\r\n if(x.message_Id.toString() != x.message_Number)\r\n x.isDtnReleased = true;\r\n else\r\n x.isDtnReleased = false;\r\n })\r\n this.gridData = _.uniqBy(res, 'message_Number')\r\n this.setRedirectObjects();\r\n\r\n let x = this.gridData;\r\n x.map(y => {\r\n y.documentNo = res.filter(o => o.message_Number == y.message_Number).map(u => { return u.documentNo }).join(', ');\r\n });\r\n })\r\n this.UnsubscribeArray.push(_getTransmittalList)\r\n }\r\n\r\n setRedirectObjects() {\r\n if (this.gridData.length > 0 && this.commonService.hasRequestedObject()) {/*Mail Redirection*/\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n let inputMsgId = requestedObject['inputMsgId'];\r\n if (inputMsgId) {\r\n this.commonService.checkAndDeleteRequestedObject();\r\n let _data = this.gridData.filter(x => x.message_Id == inputMsgId);\r\n if (_data.length > 0) {\r\n this.viewTransmittalClick(_data[0]);\r\n }\r\n else {\r\n this.notificationService.showToast(\"You are not authorized to view the Message\", \"Warning\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n public advanceSearch() {\r\n this.searchList = [];\r\n this.isSearch = !this.isSearch;\r\n }\r\n\r\n createTransmittalClick() {\r\n const dialogRef = this.dialog.open(CreateTransmittalComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createTransmittal', selectedList: [] },\r\n autoFocus: false\r\n });\r\n \r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n closeAdvSearch(event: any) {\r\n this.searchList = event;\r\n this.isSearch = false;\r\n if (this.searchList.length == 0) {\r\n this.notificationService.showToast(\"Search returned no results\", \"Warning\");\r\n }\r\n }\r\n\r\n onHover(event: Event): void {\r\n if ((event.target as HTMLElement).closest('div.k-grid-content')) {\r\n const newscrollLeft = (event.target as HTMLElement).closest('div.k-grid-content')?.scrollLeft;\r\n if (newscrollLeft && this.lastscrollLeft !== newscrollLeft) {\r\n for (let i = 0; i < this.divIconHover.length; i++) {\r\n this.divIconHover['_results'][i]['nativeElement']['style'].right = (0 - newscrollLeft) + 'px';\r\n }\r\n this.lastscrollLeft = newscrollLeft;\r\n }\r\n }\r\n }\r\n\r\n public onValChange(val: string) {\r\n this.searchList = [];\r\n //Reset the isselected flag as false\r\n this.data.forEach(x => x.isSelected = false);\r\n this.buttonType = val;\r\n }\r\n\r\n /**\r\n * Multiple select of listed messages\r\n * @param event\r\n *\r\n */\r\n onSelectionChange(event: Event | any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: any) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: any) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n }\r\n\r\n viewAttachmentClick(data: ITransmittalDetailsModel) {\r\n let dialogRef = this.dialog.open(AttachmentsListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { messageId: data.message_Id },\r\n });\r\n dialogRef.afterClosed().subscribe((data: any) => {\r\n if (!!data) {\r\n this.getPopupviewTransmittalClick(data);\r\n }\r\n });\r\n }\r\n\r\n /**Lastviewrecords change */\r\n public lastviewingrecordsmethod(event: any) {\r\n if (event == \"All\") {\r\n this.LastViewingRecords = 0;\r\n this.LastViewingRecord = \"All\";\r\n }\r\n else {\r\n this.LastViewingRecords = event;\r\n this.LastViewingRecord = event;\r\n }\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n getDateFormat() {\r\n let today = new Date();\r\n var dd = String(today.getDate()).padStart(2, '0');\r\n var mm = today.toLocaleString('default', { month: 'short' })\r\n var yyyy = today.getFullYear();\r\n let today1 = dd + '-' + mm + '-' + yyyy;\r\n return today1;\r\n }\r\n\r\n viewTabClick(event: MatTabChangeEvent) {\r\n this.viewTransmittalData = null;\r\n if (this.selectedTabIndex != 0) {\r\n this.viewTransmittalData = this.viewTrasmittalTabs[this.selectedTabIndex - 1];\r\n }\r\n }\r\n\r\n public closeTabClick(tab: TransmittalTemplateComponent) {\r\n this.viewTrasmittalTabs.forEach((value, index) => {\r\n if (value.message_id == tab.message_id) this.viewTrasmittalTabs.splice(index, 1);\r\n this.gridData.map((gridVal)=>{ if(gridVal.message_Id==value.message_id) gridVal.isSelected = null; })\r\n });\r\n if (this.viewTrasmittalTabs.length == 0) {\r\n this.selectedTabIndex = 0;\r\n }\r\n }\r\n\r\n viewTransmittalClick(data: ITransmittalDetailsModel) {\r\n let filteredTransmittals: TransmittalTemplateComponent[] = this.viewTrasmittalTabs.filter(x => x.message_id == data.message_Id);\r\n if (filteredTransmittals && filteredTransmittals.length == 0) {\r\n this.pushTransmittalTemplateModel(data);\r\n }\r\n }\r\n\r\n getPopupviewTransmittalClick(data: any) {\r\n let filertGridData = this.gridData.filter(element => element.message_Id == data.messageId)[0];\r\n this.viewTransmittalClick(filertGridData);\r\n }\r\n\r\n pushTransmittalTemplateModel(data: ITransmittalDetailsModel) {\r\n this.MessageId = data.message_Id;\r\n this.isDTNReleased = data.isDtnReleased;\r\n let fileInput_Communication = {\r\n projectId: data.project_Id,\r\n messageId: data.message_Id\r\n }\r\n\r\n let groupDetails: Observable = this._transmittalService.GetTransmittalGroupMemberDetails(data.message_Id);\r\n let docDetails: Observable = this._transmittalService.GetTransmittalDocumentDetails(data.message_Id);\r\n let receiverDetails: Observable = this._transmittalService.GetTransmittalReceiverDetails(data.message_Id);\r\n let getTransmittalFiles = this._fileService.GetFiles({ libraryNumber: 4, value: JSON.stringify(fileInput_Communication) });\r\n let _transmittalDetails = forkJoin(groupDetails, docDetails, receiverDetails,getTransmittalFiles).subscribe((res: any[]) => {\r\n let receiverDetails: ITransmittalMsgReceiverInput = res[2];\r\n let docDetails: ITransmittalDocumentInput = res[1];\r\n let transDocDetails: ITransmittalDocumentDetails[] = [];\r\n this.mailReceiverDetails.push(receiverDetails);\r\n if (!!docDetails && !!docDetails.transmittalDocumentDetails) {\r\n transDocDetails = docDetails.transmittalDocumentDetails;\r\n }\r\n let to = receiverDetails.transmittalToDetails[0].member_Id;\r\n let toWithAddress: string = \"\";\r\n if (to) {\r\n let toMember = this.membersList.filter(x => x.memberId == to)\r\n if (toMember.length && toMember[0].address) {\r\n toWithAddress = toMember[0].memberName + '
' + toMember[0].address;\r\n }\r\n else if (toMember.length) {\r\n toWithAddress = toMember[0].memberName ? toMember[0].memberName : \"\";\r\n }\r\n else {\r\n toWithAddress = receiverDetails.transmittalToDetails[0].member_Name;\r\n }\r\n }\r\n else {\r\n toWithAddress = receiverDetails.transmittalToDetails.map(x => x.member_Name).join(',')\r\n }\r\n let transmittalTemplate: TransmittalTemplateComponent = {\r\n templateName: 'common',\r\n projName: this.projectName,\r\n edrcRef: data.message_Number,\r\n cusRef: data.cust_Ref_No,\r\n docDetails: transDocDetails,\r\n distributionDetails: res[0],\r\n subject: data.message_Subject,\r\n attention: receiverDetails.transmittalToDetails.map(x => x.member_Name).join(','),\r\n to: toWithAddress,\r\n date: formatDate(data.created_On, 'dd-MMM-yyyy', 'en-US'),\r\n message_No: data.message_Number,\r\n message_id: data.message_Id,\r\n cc: receiverDetails.transmittalCcDetails.map(x => x.member_Name).join(','),\r\n From: receiverDetails.transmittalFromDetails.map(x => x.member_Name).join(','),\r\n message_Note: data.message_Note,\r\n fileDetails: res[3].length > 0 ? res[3] : []\r\n }\r\n // attention: receiverDetails.transmittalCcDetails.map(x => x.member_Name).join(','),\r\n this.viewTrasmittalTabs.push(transmittalTemplate);\r\n this._transmittalData = null;\r\n this._transmittalData = transmittalTemplate;\r\n this.selectedTabIndex = 1;\r\n })\r\n this.UnsubscribeArray.push(_transmittalDetails)\r\n }\r\n\r\n viewTransmittalsClick() {\r\n this.gridData.forEach(element => {\r\n if (element.isSelected)\r\n this.viewTransmittalClick(element);\r\n });\r\n }\r\n\r\n exportToWord() {\r\n //To check and remove \"Signed Copies\" column from Work document\r\n let rootElement: HTMLElement | any = document.getElementById('TransmittalComponent')?.cloneNode(true) as HTMLCanvasElement;\r\n let documentGrid: HTMLElement = rootElement.children[0].children[\"documentGrid\"];\r\n if (documentGrid) {\r\n let tHead: HTMLCollection = documentGrid.children[0].children[0].children;\r\n if (tHead && tHead.length > 1) {\r\n tHead[1].remove();\r\n }\r\n for (let i = 0; i < documentGrid.children[1].children.length; i++) {\r\n let tBody: HTMLCollection = documentGrid.children[1].children[i].children;\r\n if (tBody && tBody.length > 1) {\r\n tBody[1].remove();\r\n }\r\n }\r\n }\r\n let docName: string = this.viewTrasmittalTabs[this.selectedTabIndex - 1].message_No;\r\n var header = \"Export Word Document
\";\r\n var footer = \"\";\r\n var html = header + rootElement.innerHTML + footer;\r\n var blob = new Blob(['\\ufeff', html], {\r\n type: 'application/msword'\r\n });\r\n // Specify link url\r\n var url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html);\r\n // Specify file name\r\n let filename = docName + '.doc';\r\n // Create download link element\r\n var downloadLink = document.createElement(\"a\");\r\n document.body.appendChild(downloadLink);\r\n // if (navigator.msSaveOrOpenBlob) {\r\n // navigator.msSaveOrOpenBlob(blob, filename);\r\n // } \r\n if (blob) {\r\n saveAs(blob, filename);\r\n // return;\r\n }\r\n else {\r\n // Create a link to the file\r\n downloadLink.href = url;\r\n // Setting the file name\r\n downloadLink.download = filename;\r\n //triggering the function\r\n downloadLink.click();\r\n }\r\n document.body.removeChild(downloadLink);\r\n }\r\n\r\n async getProjectMembers() {\r\n let _getProjectMembers = this.transmittalService.getProjectMembers().subscribe(async (res: ProjectMemberModel[]) => {\r\n this.membersList = res.map(x => {\r\n let transmittalMember: ITransmittalMemberModel = {\r\n memberId: x.memberId,\r\n memberName: x.memberName,\r\n memberShortName: x.memberShortName,\r\n eMailId: x.eMailId,\r\n mobileNo: x.mobileNo,\r\n staffPSNo: x.staffPSNo,\r\n address: x.address\r\n };\r\n return transmittalMember;\r\n });\r\n });\r\n this.UnsubscribeArray.push(_getProjectMembers)\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.gridData\r\n };\r\n return result;\r\n }\r\n\r\n public HelpUrlClick() {\r\n let x = JSON.parse(this.commonService.getSessionStorageItem(\"Menu\"))\r\n let url = x.filter((y: { menuDesc: string; }) => y.menuDesc == \"Transmittal\")[0].helpUrl\r\n if (url) {\r\n window.open(url);\r\n }\r\n }\r\n\r\n getMailIDList(input: any) {\r\n let globArr: { memberId: number; }[] = [];\r\n let arr = input;\r\n let result = arr.split(',');\r\n result.forEach(function (obj: string) {\r\n let memberObj = { memberId: parseInt(obj, 10) }\r\n globArr.push(memberObj);\r\n });\r\n return globArr;\r\n }\r\n\r\n isNull(data: string) {\r\n return data != null ? data : '';\r\n }\r\n\r\n closeDialog() {\r\n this.selectedTabIndex = 0;\r\n }\r\n\r\n async sendMail(is_Send_Mail: boolean) {\r\n if (is_Send_Mail) {\r\n let toMemberIds = this.mailReceiverDetails[0].transmittalToDetails.map((x: { member_Id: any; }) => x.member_Id).join(',')\r\n let ccMemberIds = this.mailReceiverDetails[0].transmittalCcDetails.map((x: { member_Id: any; }) => x.member_Id).join(',')\r\n let fromMemberIds = this.mailReceiverDetails[0].transmittalFromDetails.map((x: { member_Id: any; }) => x.member_Id).join(',')\r\n let toMemberIdList: any[] = this.getMailIDList(toMemberIds);\r\n let ccMemberIdList: any[] = this.getMailIDList(ccMemberIds);\r\n let fromMemberIdList: any[] = this.getMailIDList(fromMemberIds);\r\n this.toMember = this.membersList.filter(f => toMemberIdList.some(item => item.memberId === f.memberId));\r\n this.ccMember = this.membersList.filter(f => ccMemberIdList.some(item => item.memberId === f.memberId));\r\n this.fromMember = this.membersList.filter(f => fromMemberIdList.some(item => item.memberId === f.memberId));\r\n let transmittalMsgInputDetails: ITransmittalMsgInputModel = {\r\n inputType: 'sendTransmittalMail',\r\n project_Id: this.projectId,\r\n message_Id: this.MessageId,\r\n message_Number: null,\r\n message_Serial_Number: null,\r\n discipline: null,\r\n parent_Message_Id: null,\r\n message_Type: 141,\r\n has_Attachments: false,\r\n is_Confidential: false,\r\n message_Category: 3,\r\n message_Subject: \"\",\r\n message_Body: \"\",\r\n response_Type: null,\r\n respond_On: null,\r\n issue_Reason: null,\r\n sent_On: null,\r\n is_Mail_Sent: is_Send_Mail,\r\n is_Active: true,\r\n userId: this.memberId\r\n };\r\n if (!!this.toMember && this.toMember.length>0) {\r\n await this._transmittalService.InsertUpdateTransmittalDetails(transmittalMsgInputDetails).subscribe(async (x: StandardOutputModel) => {\r\n if (x.successCode == 200 || x.successCode == 205) {\r\n let sTo: string = this.toMember?this.toMember.map(x => x.eMailId).join(','):\"\";\r\n let sCC: string = this.ccMember?this.ccMember.map(x => x.eMailId).join(','):\"\";\r\n let sFrom: string = this.fromMember?this.fromMember.map(x => x.eMailId).join(','):\"\";\r\n\r\n let filteredDTN: ITransmittalDetailsModel = this.gridData.filter(x => x.message_Id == this.MessageId)[0];\r\n let mailDetails: ITransmittalMailDetails = {\r\n from_List: sFrom,\r\n to_List: sTo,\r\n cc_List: sCC,\r\n project_Code: this.commonService.getProjectCode(),\r\n discipline: this.isNull(filteredDTN.discipline_Description),\r\n mail_Body: this.transmittalViewComponent.getHtmlContent(),\r\n mail_Subject: this._transmittalData ? this._transmittalData.subject : \"\",\r\n message_Id: this.MessageId\r\n }\r\n await this._transmittalService.SendTransmittalMail(mailDetails).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200 || res.successCode == 205) {\r\n this.notificationService.showToast(\"Transmittal Sent successfully\", \"Success\");\r\n this.closeTabClick(this.viewTrasmittalTabs[0]);\r\n }\r\n else {\r\n this.notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showToast(x.successMessage, \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showPopup(\"To member is not in this Business Group\", \"Warning\");\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.UnsubscribeArray.forEach(x => x.unsubscribe())\r\n }\r\n\r\n viewDci(transmittalDetails:ITransmittalDetailsModel)\r\n {\r\n const _dialog=this.dialog.open(TransmittalEditComponent,{\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'dtnPreparation',transmittalId:transmittalDetails.message_Id},\r\n })\r\n _dialog.afterClosed().subscribe((res: any) => {\r\n this.loadGrid();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{tab.message_No}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Create Transmittal\r\n
\r\n
\r\n \r\n View Transmittal\r\n
\r\n
\r\n \r\n Help Manual\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.message_Number}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.message_Subject}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline_Description}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.respond_On| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TransmittalListComponent } from './transmittal-list/transmittal-list.component';\r\n\r\nexport const transmittalRoutes: Routes = [\r\n { path: 'transmittal-list', component: TransmittalListComponent, data: { title: 'TRANSMITTAL', isProjectCodeRequired: true } }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(transmittalRoutes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TransmittalRoutingModule { }\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[transmittalHost]',\r\n})\r\nexport class TransmittalTemplateDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","import { Component, ComponentFactoryResolver, ComponentRef, ElementRef, Input, OnInit, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { HCITransmittalTemplateComponent } from \"../templates/hci-transmittal/hci-transmittal-template.component\";\r\nimport { CommonTransmittalTemplateComponent } from \"../templates/template_common/transmittal-template-common.component\";\r\nimport { TransmittalTemplateComponent } from \"../transmittal-template/transmittal-template.component\";\r\nimport { TransmittalTemplateDirective } from \"../transmittal-template/transmittal-template.directive\";\r\n\r\nconst componentMapper:any = {\r\n common: CommonTransmittalTemplateComponent,\r\n hci:HCITransmittalTemplateComponent\r\n};\r\n\r\n@Component({\r\n selector: \"app-transmittal-view\",\r\n templateUrl: \"./transmittal-view.component.html\"\r\n})\r\nexport class TransmittalViewComponent implements OnInit {\r\n componentRef!: ComponentRef;\r\n private _transmittalData!: TransmittalTemplateComponent;\r\n @Input() set transmittalData(data: TransmittalTemplateComponent) { \r\n if (!!data) {\r\n this._transmittalData = data;\r\n this.loadComponent();\r\n this.updateProperties();\r\n }\r\n }\r\n @ViewChild(TransmittalTemplateDirective,{static:true}) transmittalHost!: TransmittalTemplateDirective;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private elRef: ElementRef) {\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n loadComponent() {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentMapper[this._transmittalData.templateName]);\r\n const viewContainerRef = this.transmittalHost.viewContainerRef;\r\n viewContainerRef.clear();\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n }\r\n public getHtmlContent() {\r\n return this.elRef.nativeElement.innerHTML;\r\n }\r\n\r\n public updateProperties() {\r\n this.componentRef.instance.to = this._transmittalData.to;\r\n this.componentRef.instance.date = this._transmittalData.date;\r\n this.componentRef.instance.edrcRef = this._transmittalData.edrcRef;\r\n this.componentRef.instance.cusRef = this._transmittalData.cusRef;\r\n this.componentRef.instance.subject = this._transmittalData.subject;\r\n this.componentRef.instance.projName = this._transmittalData.projName;\r\n this.componentRef.instance.distributionDetails = this._transmittalData.distributionDetails;\r\n this.componentRef.instance.docDetails = this._transmittalData.docDetails;\r\n this.componentRef.instance.attention = this._transmittalData.attention;\r\n this.componentRef.instance.From = this._transmittalData.From;\r\n this.componentRef.instance.message_No = this._transmittalData.message_No;\r\n this.componentRef.instance.message_id = this._transmittalData.message_id;\r\n this.componentRef.instance.workflowId = this._transmittalData.workflowId;\r\n this.componentRef.instance.is_Show_Attachment_In_DTN = this._transmittalData.is_Show_Attachment_In_DTN;\r\n this.componentRef.instance.task_id_list = this._transmittalData.task_id_list;\r\n this.componentRef.instance.message_Note = this._transmittalData.message_Note;\r\n this.componentRef.instance.fileDetails = this._transmittalData?.fileDetails;\r\n }\r\n}","","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { WFTCartDialogOutputModel, WorkflowTemplateStatusInputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { groupBy } from 'lodash';\r\nimport { WftdBodyInputComponent } from '../wftd-body-input/wftd-body-input.component';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { IScheduleType } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { WorkflowTemplateDataService } from 'src/app/Service/workflow-template/workflow-template-data.service';\r\n\r\n@Component({\r\n\tselector: 'app-add-workflow-template-dialog',\r\n\ttemplateUrl: './add-workflow-template-dialog.component.html',\r\n\tstyleUrls: ['./add-workflow-template-dialog.component.css']\r\n})\r\nexport class AddWorkflowTemplateDialogComponent implements OnInit {\r\n\r\n\t@ViewChild(WftdBodyInputComponent) bodyInputComponent!: WftdBodyInputComponent;\r\n\r\n\tenableFullscreen = false;\r\n\tenableFilter = false;\r\n\twfTemplateHasError = false;\r\n\tselectedElementClear = 'N';\r\n\telementsList: any[] = [];\r\n\tselectedModuleId = '';\r\n\tworkflowTask: number = 0;\r\n\tselectedModuleClear = 'N';\r\n\tmoduleList: any[] = [];\r\n\r\n\t/** Kendo list */\r\n\ttemplateList: any[] = [];\r\n\tpublic workflowIntegrateToList: RoleFeatureModel[] = [];\r\n\tpublic statusList: RoleFeatureModel[] = [];\r\n\tworkFlowTaskList: RoleFeatureModel[] = [];\r\n\tselectedWorkFlowTaskDescription: string = '';\r\n\r\n\ttemplateArray = [{}];\r\n\tworkflowTemplateList = [];\r\n\ticList: any[] = [];\r\n\tbuList: any[] = [];\r\n\tprojectList: ProjectViewModel[] = [];\r\n\tbusinessGroupList: BusinessGroupModel[] = [];\r\n\tscheduleTypeList: IScheduleType[] = [{ schType_Id: 1, schType_Name: \"DCI\" }, { schType_Id: 2, schType_Name: \"Ext DCI\" }, { schType_Id: 3, schType_Name: \"Std DCI\" }, { schType_Id: 4, schType_Name: \"Vendor DCI\" }];\r\n\tworkFlowTemplate: any;\r\n\tstatuInput!: WorkflowTemplateStatusInputModel;\r\n\tclearIcSelected = 'N';\r\n\tclearBuSelected = 'N';\r\n\tclearProjectSelected = 'N';\r\n\tclearBusinessGrpSelected = 'N';\r\n\tclearWfStatusSelected = 'N';\r\n\r\n\ticid: number | null = null;\r\n\ticDescription: string = '';\r\n\r\n\tbuid: number | null = null;\r\n\tbuDescription: string = '';\r\n\r\n\tprojectId: number | null = null;\r\n\tprojectDescription: string = '';\r\n\r\n\tbusinessGroupId: number | null = null;\r\n\tbusinessGroupDescription: string = '';\r\n\r\n\tscheduleTypeid: number | null = null;\r\n\tscheduleTypeDescription: string = '';\r\n\ttemplateName = '';\r\n\ttemplateDescription = '';\r\n\tisForsupersede = true;\r\n\tisForReAssignment = true;\r\n\tbottomKendoList = [];\r\n\tworkFlowStatusList = [];\r\n\tworkflowId: number | null = null;\r\n\tselectedTaskId!: number;\r\n\tselectedTaskStageId!: number;\r\n\ticIsDisabled: boolean = false;\r\n\tprojectIsDisabled: boolean = false;\r\n\tclearValue: string = \"N\"\r\n\tworkFlowTemplateApiResponse!: WorkflowTemplateDialogModel | any;\r\n\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic projectInfoService: ProjectInfoService,\r\n\t\tpublic WorkflowTemplateDataService: WorkflowTemplateDataService\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.projectId = (!!this.data && !!this.data['SrcProject']) ? this.data['SrcProject'] : null;\r\n\t\tthis.businessGroupId = (!!this.data && !!this.data['SrcBG']) ? this.data['SrcBG'] : null;\r\n\t\tthis.projectList = (!!this.data && !!this.data['projectList']) ? this.data['projectList'] : null;\r\n\t\tthis.icList = (!!this.data && !!this.data['icList']) ? this.data['icList'] : null;\r\n\t\tthis.buList = (!!this.data && !!this.data['buList']) ? this.data['buList'] : null;\r\n\t\tthis.businessGroupList = (!!this.data && !!this.data['businessGroupList']) ? this.data['businessGroupList'] : null;\r\n\r\n\t\tthis.getWorkflowIntegrateTo();\r\n\t\tthis.getWorkflowStatus();\r\n\r\n\t\tthis.workflowTemplateList = this.data['workflowTemplateList'];\r\n\r\n\t\tthis.workflowTemplateService.isCreateMode = this.data.isCreateMode;\r\n\t\tthis.workflowTemplateService.isEditMode = this.data.isEditMode;\r\n\t\tthis.workflowTemplateService.isViewMode = this.data.isViewMode;\r\n\r\n\r\n\t\tif (!!this.data['dataItem'] && this.data['dataItem']['workflowId']) {\r\n\t\t\tthis.workflowId = this.data['dataItem']['workflowId'];\r\n\t\t\tthis.getBottomKendoData(this.data['dataItem']['workflowId']);\r\n\t\t} else {\r\n\t\t\tthis.workflowId = null;\r\n\t\t\tthis.workflowTemplateService.supportForBottomKendo.next([]);\r\n\t\t\tthis.bodyInputComponent.parentTaskId = 1;\r\n\t\t}\r\n\t\tthis.bodyInputComponent.parentWorkflowId = this.workflowId;\r\n\r\n\t\tthis.workflowTemplateService.supportForClearMainData.subscribe((data: any) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.clearThisComponentInput();\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.workflowTemplateService.supportForClearSelectedWfStatus.subscribe((data: any) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.clearWfStatusSelectedFun();\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.workflowTemplateService.customTaskId = 1;\r\n\t}\r\n\r\n\tGetTemplateDetails(): any {\r\n\t\treturn {\r\n\t\t\tSrcProject: this.data['SrcProject'],\r\n\t\t\tSrcBG: this.data['SrcBG'],\r\n\t\t\tDestProject: this.projectId,\r\n\t\t\tDestBG: this.businessGroupId\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getWorkflowStatus() {\r\n\t\tthis.workflowTemplateService.getWorkflowTaskList(this.businessGroupId, Module.Workflow, \"Workflow\", null, \"Workflow Status\", null, null, this.projectId).subscribe((data: any) => {\r\n\t\t\tthis.statusList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getWorkflowIntegrateTo() {\r\n\t\tthis.workflowTemplateService.getCommonDEDAgainstDE(\"Workflow IntegrateTo\").subscribe((data: any) => {\r\n\t\t\tthis.workflowIntegrateToList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getWorkflowStatusName(id: number) {\r\n\t\tif (this.statusList.filter(item => item.dedId == id).length > 0)\r\n\t\t\treturn this.statusList.filter(item => item.dedId == id)[0][\"dedDescription\"];\r\n\t\telse\r\n\t\t\treturn '';\r\n\t}\r\n\r\n\tpublic getWorkflowIntegrateToName(id: number) {\r\n\t\tif (this.workflowIntegrateToList.filter(item => item.dedId == id).length > 0)\r\n\t\t\treturn this.workflowIntegrateToList.filter(item => item.dedId == id)[0][\"dedDescription\"];\r\n\t\telse\r\n\t\t\treturn '';\r\n\t}\r\n\r\n\tcloseDialog() {\r\n\t\tthis.dialogRef.close();\r\n\t}\r\n\r\n\tasync getBusinessGroup(projectId: number | null) {\r\n\t\tif (!projectId) {\r\n\t\t\tthis.businessGroupList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data: BusinessGroupModel[]) => {\r\n\t\t\tthis.businessGroupList = data.filter(each => each.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\tasync getProject() {\r\n\t\tthis.projectInfoService.getProjectList(this.commonService.getLoggedInUserId()).subscribe((data: ProjectViewModel[]) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tdata.forEach(x => { x.projectDescription = x.projectCode + ' - ' + x.projectDescription });\r\n\t\t\t}\r\n\t\t\tthis.projectList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tasync getBuList() {\r\n\t\tif (!this.icid) {\r\n\t\t\tthis.buList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.buList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"BU\").toPromise();\r\n\t}\r\n\r\n\tasync getIcList() {\r\n\t\tthis.icList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"IC\").toPromise();\r\n\t}\r\n\r\n\tchangeWorkflowTemplateList(event: { value: number; }) {\r\n\t\tif (event.value != -2) {\r\n\t\t\tthis.workflowTemplateService.isCopyMode = true;\r\n\t\t\tthis.getBottomKendoData(event.value, true);\r\n\t\t} else {\r\n\t\t\tthis.workflowTemplateService.isCopyMode = false;\r\n\r\n\t\t\tthis.workflowId = null;\r\n\t\t\tthis.workflowTemplateService.supportForBottomKendo.next([]);\r\n\t\t\tthis.bodyInputComponent.parentTaskId = 1;\r\n\t\t\tthis.bodyInputComponent.parentWorkflowId = this.workflowId;\r\n\r\n\t\t\tthis.workflowTemplateService.supportForClearMainData.subscribe((data: any) => {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tthis.clearThisComponentInput();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.workflowTemplateService.supportForClearSelectedWfStatus.subscribe((data: any) => {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tthis.clearWfStatusSelectedFun();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tthis.workflowTemplateService.customTaskId = 1;\r\n\t\t\tthis.workflowTemplateService.supportForClearInputData.next(true);\r\n\t\t\tthis.icid = null;\r\n\t\t\tthis.icDescription = '';\r\n\t\t\tthis.buid = null;\r\n\t\t\tthis.buDescription = '';\r\n\t\t\tthis.projectId = null;\r\n\t\t\tthis.projectDescription = '';\r\n\t\t\tthis.businessGroupId = null;\r\n\t\t\tthis.businessGroupDescription = '';\r\n\t\t\tthis.scheduleTypeid = null;\r\n\t\t\tthis.scheduleTypeDescription = '';\r\n\t\t\tthis.templateName = '';\r\n\t\t\tthis.templateDescription = '';\r\n\t\t\tthis.isForsupersede = true;\r\n\t\t\tthis.isForReAssignment = true;\r\n\t\t\tthis.workFlowStatusList = [];\r\n\t\t}\r\n\t}\r\n\r\n\tchangeIc(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.clearIcSelected = 'N';\r\n\t\tthis.getBuList();\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = true;\r\n\t\t\tthis.icid = Number(event.value);\r\n\t\t\tthis.icDescription = event.desc;\r\n\t\t} else {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t\tthis.icid = null;\r\n\t\t\tthis.icDescription = '';\r\n\t\t\tthis.clearBuSelected = 'Y';\r\n\t\t}\r\n\t}\r\n\r\n\tchangeBu(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.clearBuSelected = 'N';\r\n\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.buid = Number(event.value);\r\n\t\t\tthis.buDescription = event.desc;\r\n\t\t} else {\r\n\t\t\tthis.buid = null;\r\n\t\t\tthis.buDescription = '';\r\n\t\t}\r\n\t}\r\n\r\n\tchangeProject(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.clearProjectSelected = 'N';\r\n\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icIsDisabled = true;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t\tthis.projectId = Number(event.value);\r\n\t\t\tthis.projectDescription = event.desc;\r\n\t\t} else {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t\tthis.projectId = null;\r\n\t\t\tthis.projectDescription = '';\r\n\t\t\tthis.clearBusinessGrpSelected = 'Y';\r\n\t\t}\r\n\r\n\t\tthis.clearBusinessGrpSelected = 'Y';\r\n\t\tthis.businessGroupId = null;\r\n\t\tthis.getBusinessGroup(this.projectId);\r\n\t}\r\n\r\n\tchangeBusinessGroup(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.clearBusinessGrpSelected = 'N';\r\n\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.businessGroupId = Number(event.value);\r\n\t\t\tthis.businessGroupDescription = event.desc;\r\n\t\t} else {\r\n\t\t\tthis.businessGroupId = null;\r\n\t\t\tthis.businessGroupDescription = '';\r\n\t\t}\r\n\t}\r\n\r\n\tchangeScheduleType(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.scheduleTypeid = Number(event.value);\r\n\t\t\tthis.scheduleTypeDescription = event.desc;\r\n\t\t} else {\r\n\t\t\tthis.scheduleTypeid = null;\r\n\t\t\tthis.scheduleTypeDescription = '';\r\n\t\t}\r\n\t}\r\n\r\n\tarray_unique(arr: string | any[]) {\r\n\t\tvar result = [];\r\n\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\tif (result.indexOf(arr[i]) == -1) {\r\n\t\t\t\tresult.push(arr[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * combine values of mat expansion input, To cart, Cc cart, Action cart\r\n\t * @param event\r\n\t */\r\n\tgetInputValues(event: { inputFormGroupValue: any; actionCart: any; toCart: any[]; ccCart: any[]; }) {\r\n\t\tthis.wfTemplateHasError = false;\r\n\r\n\t\tif (!this.templateName.trim()) {\r\n\t\t\tthis.notificationService.showToast(\"Enter Template name\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.templateDescription.trim()) {\r\n\t\t\tthis.notificationService.showToast(\"Enter Template description\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.icid && !this.buid && !this.projectId && !this.businessGroupId) {\r\n\t\t\tthis.notificationService.showToast('Select anything from IC, BU, Project and Business Group list', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.scheduleTypeid) {\r\n\t\t\tthis.notificationService.showToast(\"Select Schedule Type\", \"Warning\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet reqData: any = {\r\n\t\t\t\"project_Id\": this.projectId,\r\n\t\t\t\"project_Description\": this.projectDescription,\r\n\r\n\t\t\t\"ic_Id\": this.icid,\r\n\t\t\t\"ic_Description\": this.icDescription,\r\n\t\t\t\"bu_Id\": this.buid,\r\n\t\t\t\"bu_Description\": this.buDescription,\r\n\t\t\t\"group_Id\": this.businessGroupId,\r\n\t\t\t\"group_Description\": this.businessGroupDescription,\r\n\r\n\t\t\t\"workflow_Id\": null,// creation null\r\n\t\t\t\"workflow_Name\": this.templateName,\r\n\t\t\t\"workflow_Description\": this.templateDescription,\r\n\t\t\t\"isForsupersede\": this.isForsupersede,\r\n\t\t\t\"isForReAssignment\": this.isForReAssignment,\r\n\r\n\t\t\t\"schedule_Type\": this.scheduleTypeid,\r\n\r\n\t\t\t// child component data\r\n\t\t\t\"workflowStatus\": [event.inputFormGroupValue],\r\n\t\t\t\"workflowAction\": event.actionCart,\r\n\t\t\t\"workflowAssignedTo\": [],\r\n\r\n\t\t\t\"is_Active\": true,\r\n\t\t\t\"created_By\": this.commonService.getLoggedInUserId(),\r\n\t\t}\r\n\r\n\t\tevent.toCart.forEach(each => {\r\n\t\t\treqData.workflowAssignedTo.push(each);\r\n\t\t});\r\n\t\tevent.ccCart.forEach(each => {\r\n\t\t\treqData.workflowAssignedTo.push(each);\r\n\t\t});\r\n\r\n\r\n\t\t// Check repeated member name and role name in To: and Cc:\r\n\t\tlet grpdByMemberId = groupBy(reqData.workflowAssignedTo, 'member_Id');\r\n\t\tdelete grpdByMemberId[0];\r\n\r\n\t\tlet grpdByRoleId = groupBy(reqData.workflowAssignedTo, 'role_Id');\r\n\t\tdelete grpdByRoleId[0];\r\n\r\n\t\tlet repeatedNames: any[] = [];\r\n\r\n\t\tObject.keys(grpdByMemberId).forEach(eachKey => {\r\n\t\t\tif (grpdByMemberId[eachKey] && grpdByMemberId[eachKey].length && grpdByMemberId[eachKey].length > 1) {\r\n\t\t\t\trepeatedNames.push(grpdByMemberId[eachKey][0].member_Name);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tObject.keys(grpdByRoleId).forEach(eachKey => {\r\n\t\t\tif (grpdByRoleId[eachKey] && grpdByRoleId[eachKey].length && grpdByRoleId[eachKey].length > 1) {\r\n\t\t\t\trepeatedNames.push(grpdByRoleId[eachKey][0].role_Description);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (repeatedNames.length) {\r\n\t\t\tthis.notificationService.showToast(repeatedNames.toString() + ' in both To: & Cc:', 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * WorkflowTemplateDialogModel\r\n\t\t * here combine all values from all child component\r\n\t\t */\r\n\r\n\t\treqData.workflowStatus.forEach((each: any) => {\r\n\t\t\tif (this.workflowTemplateService.isCreateMode) {\r\n\t\t\t\teach.workflow_Id = null;\r\n\t\t\t} else {\r\n\t\t\t\teach.workflow_Id = this.workFlowTemplateApiResponse.workflow_Id;\r\n\t\t\t}\r\n\r\n\t\t\tif (!each.task_Id) {\r\n\t\t\t\teach.task_Id = this.bottomKendoList.length + 1;\r\n\t\t\t\teach.step_Id = this.bottomKendoList.length + 1;\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\treqData.workflowAction.forEach((each: { workflow_Id: number | null; task_Id: number; }) => {\r\n\t\t\tif (this.workflowTemplateService.isCreateMode) {\r\n\t\t\t\teach.workflow_Id = null;\r\n\t\t\t} else {\r\n\t\t\t\teach.workflow_Id = this.workFlowTemplateApiResponse.workflow_Id;\r\n\t\t\t}\r\n\r\n\t\t\tif (!each.task_Id) {\r\n\t\t\t\teach.task_Id = this.bottomKendoList.length + 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treqData.workflowAssignedTo.forEach((each: { workflow_Id: number | null; task_Id: number; }) => {\r\n\t\t\tif (this.workflowTemplateService.isCreateMode) {\r\n\t\t\t\teach.workflow_Id = null;\r\n\t\t\t} else {\r\n\t\t\t\teach.workflow_Id = this.workFlowTemplateApiResponse.workflow_Id;\r\n\t\t\t}\r\n\r\n\t\t\tif (!each.task_Id) {\r\n\t\t\t\teach.task_Id = this.bottomKendoList.length + 1;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.workflowTemplateService.isCreateMode) {\r\n\t\t\treqData.workflow_Id = null\r\n\t\t} else {\r\n\t\t\treqData.workflow_Id = this.workFlowTemplateApiResponse.workflow_Id;\r\n\t\t}\r\n\r\n\t\t// append bottom kendo data\r\n\t\tif (this.workFlowTemplateApiResponse) {\r\n\t\t\tlet grpdAssignedTo = groupBy(reqData.workflowAssignedTo, 'task_Id');\r\n\t\t\tlet grpdActions = groupBy(reqData.workflowAction, 'task_Id');\r\n\t\t\tlet grpdStatus = groupBy(reqData.workflowStatus, 'task_Id')\r\n\r\n\t\t\tthis.workFlowTemplateApiResponse.workflowAssignedTo.forEach((each: { task_Id: string | number; }) => {\r\n\t\t\t\tif (!(grpdAssignedTo[each.task_Id] && grpdAssignedTo[each.task_Id].length)) {\r\n\t\t\t\t\treqData.workflowAssignedTo.push(each);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.workFlowTemplateApiResponse.workflowAction.forEach(each => {\r\n\t\t\t\tif (!(grpdActions[each.task_Id] && grpdActions[each.task_Id].length)) {\r\n\t\t\t\t\treqData.workflowAction.push(each);\r\n\t\t\t\t}\r\n\t\t\t\tif (!(grpdActions[each.task_Id] && grpdActions[each.task_Id].length) && this.workflowTemplateService.isCopyMode) {\r\n\t\t\t\t\tif (this.workFlowTemplateApiResponse.workflowActionCategory.length > 0) {\r\n\t\t\t\t\t\tthis.workFlowTemplateApiResponse.workflowActionCategory.forEach(element => {\r\n\t\t\t\t\t\t\tif (each.task_Id == element.task_Id) {\r\n\r\n\t\t\t\t\t\t\t\tif (each.action_Id == element.action_Id) {\r\n\r\n\t\t\t\t\t\t\t\t\teach.Document_CategoryList = element.category_Description;\r\n\r\n\t\t\t\t\t\t\t\t\teach.Document_CategoryListId = element.category_Id;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.workFlowTemplateApiResponse.workflowStatus.forEach((each: { task_Id: string | number; }) => {\r\n\t\t\t\tif (!(grpdStatus[each.task_Id] && grpdStatus[each.task_Id].length)) {\r\n\t\t\t\t\treqData.workflowStatus.push(each);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// set workflow id as null in copy mode\r\n\t\tif (this.workflowTemplateService.isCopyMode) {\r\n\t\t\tif (!reqData.workflowStatus[0]['workflow_Status'])\r\n\t\t\t\treqData.workflowStatus.splice(0, 1);\r\n\r\n\t\t\treqData.workflow_Id = null;\r\n\t\t\treqData.workflowStatus.forEach((each: { workflow_Id: null; }) => {\r\n\t\t\t\teach.workflow_Id = null;\r\n\t\t\t});\r\n\t\t\treqData.workflowAssignedTo.forEach((each: { workflow_Id: null; }) => {\r\n\t\t\t\teach.workflow_Id = null;\r\n\t\t\t});\r\n\t\t\treqData.workflowAction.forEach((each: { workflow_Id: null; }) => {\r\n\t\t\t\teach.workflow_Id = null;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet uniqueStages = reqData.workflowStatus.map((item: { sub_Workflow: any; }) => item.sub_Workflow).filter((value: any, index: any, self: string | any[]) => self.indexOf(value) === index);\r\n\r\n\t\tfor (let stage of uniqueStages) {\r\n\t\t\tlet stageWiseSteps = reqData.workflowStatus.filter((item: { sub_Workflow: any; }) => item.sub_Workflow == stage);\r\n\t\t\tlet uniqueStageWiseSteps = stageWiseSteps.map((item: { workflow_Status: any; }) => item.workflow_Status).filter((value: any, index: any, self: string | any[]) => self.indexOf(value) === index);\r\n\r\n\t\t\tif (stageWiseSteps.length != uniqueStageWiseSteps.length) {\r\n\t\t\t\tthis.wfTemplateHasError = true;\r\n\t\t\t\tthis.notificationService.showToast(\"Same stage should not contains duplicate workflow task\", \"Warning\");\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let stage of uniqueStages) {\r\n\t\t\tlet stageWiseSteps = reqData.workflowStatus.filter((item: { sub_Workflow: any; }) => item.sub_Workflow == stage);\r\n\t\t\tlet uniqueStageWiseDueOn = stageWiseSteps.filter((item: { is_Due_On: boolean; }) => item.is_Due_On == true);\r\n\r\n\t\t\tif (uniqueStageWiseDueOn.length > 1) {\r\n\t\t\t\tthis.wfTemplateHasError = true;\r\n\t\t\t\tthis.notificationService.showToast(\"Stage wise 'Is Due On' flag should be enabled for once\", \"Warning\");\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let stage of uniqueStages) {\r\n\t\t\tlet stageWiseSteps = reqData.workflowStatus.filter((item: { sub_Workflow: any; }) => item.sub_Workflow == stage);\r\n\t\t\tlet uniqueStageWiseApprovalStatus = stageWiseSteps.filter((item: { is_Approval_Status: boolean; }) => item.is_Approval_Status == true);\r\n\r\n\t\t\tif (uniqueStageWiseApprovalStatus.length > 1) {\r\n\t\t\t\tthis.wfTemplateHasError = true;\r\n\t\t\t\tthis.notificationService.showToast(\"Stage wise 'Is Approval Status' flag should be enabled for once\", \"Warning\");\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.wfTemplateHasError) {\r\n\t\t\tthis.wfTemplateHasError = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (reqData.workflowAction.length > 0) {\r\n\t\t\tlet workflowActionCategory: any[] = [];\r\n\t\t\tlet workflowAction: any[] = [];\r\n\t\t\treqData.workflowAction.forEach((element: { Document_CategoryListId: string; workflow_Id: any; task_Id: any; action_Id: any; action_Description: any; enable_Tag: any; is_Active: any; is_Default: any; next_Step_Id: any; statusDescription: any; status_Id: any; }) => {\r\n\t\t\t\tif (!!element.Document_CategoryListId) {\r\n\t\t\t\t\tlet obj = {};\r\n\t\t\t\t\tlet MapObjCategoryData: any;\r\n\t\t\t\t\tMapObjCategoryData = element.Document_CategoryListId.split(',');\r\n\t\t\t\t\tMapObjCategoryData.forEach((value: string) => {\r\n\t\t\t\t\t\tobj = {\r\n\t\t\t\t\t\t\t\"Workflow_Id\": element.workflow_Id,\r\n\t\t\t\t\t\t\t\"Task_Id\": element.task_Id,\r\n\t\t\t\t\t\t\t\"Action_Id\": element.action_Id,\r\n\t\t\t\t\t\t\t\"Is_Active\": true,\r\n\t\t\t\t\t\t\t\"Category_Id\": parseInt(value)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tworkflowActionCategory.push(obj);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet obj1 = {\r\n\t\t\t\t\t\"action_Description\": element.action_Description,\r\n\t\t\t\t\t\"action_Id\": element.action_Id,\r\n\t\t\t\t\t\"enable_Tag\": element.enable_Tag,\r\n\t\t\t\t\t\"is_Active\": element.is_Active,\r\n\t\t\t\t\t\"is_Default\": element.is_Default,\r\n\t\t\t\t\t\"next_Step_Id\": element.next_Step_Id,\r\n\t\t\t\t\t\"statusDescription\": element.statusDescription,\r\n\t\t\t\t\t\"status_Id\": element.status_Id,\r\n\t\t\t\t\t\"task_Id\": element.task_Id,\r\n\t\t\t\t\t\"workflow_Id\": element.workflow_Id\r\n\t\t\t\t}\r\n\t\t\t\tworkflowAction.push(obj1);\r\n\t\t\t});\r\n\t\t\tif (workflowActionCategory.length > 0) {\r\n\t\t\t\treqData[\"workflowActionCategory\"] = workflowActionCategory;\r\n\t\t\t}\r\n\t\t\treqData.workflowAction = workflowAction;\r\n\t\t}\r\n\t\tthis.workflowTemplateService.postWorkflowTemplate(reqData).subscribe((data: any) => {\r\n\t\t\tif (data['successCode'] == 200) {\r\n\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t\tthis.getBottomKendoData(data['result']);\r\n\t\t\t\tthis.workflowTemplateService.isCreateMode = false;\r\n\t\t\t\tthis.workflowTemplateService.isEditMode = true;\r\n\t\t\t\tthis.workflowTemplateService.isCopyMode = false;\r\n\t\t\t\tthis.workflowTemplateService.supportForClearInputData.next(true);\r\n\t\t\t} else {\r\n\t\t\t\tthis.notificationService.handleResponse(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tgetCategory_Description: any[] = []\r\n\t/** Set values for bottom kendo data */\r\n\tgetBottomKendoData(workflowId: number, isFromWfTemplateList?: boolean) {\r\n\t\tthis.WorkflowTemplateDataService.deleteWorkflowTemplate(workflowId + 'WorkflowTemplate');\r\n\t\tthis.workflowTemplateService.getWorkflowTemplate(workflowId).subscribe((data: WorkflowTemplateDialogModel) => {\r\n\t\t\tthis.workFlowTemplateApiResponse = data;\r\n\t\t\tthis.icid = this.workFlowTemplateApiResponse.ic_Id;\r\n\t\t\tthis.buid = this.workFlowTemplateApiResponse.bu_Id;\r\n\t\t\tthis.projectId = this.workFlowTemplateApiResponse.project_Id;\r\n\t\t\tthis.businessGroupId = this.workFlowTemplateApiResponse.group_Id\r\n\r\n\t\t\tthis.templateName = this.workFlowTemplateApiResponse.workflow_Name;\r\n\t\t\tthis.templateDescription = this.workFlowTemplateApiResponse.workflow_Description;\r\n\t\t\tthis.scheduleTypeid = this.workFlowTemplateApiResponse.schedule_Type;\r\n\t\t\tthis.isForsupersede = this.workFlowTemplateApiResponse.isForsupersede;\r\n\t\t\tthis.isForReAssignment = this.workFlowTemplateApiResponse.isForReAssignment;\r\n\r\n\t\t\tif (isFromWfTemplateList) {\r\n\t\t\t\tthis.workflowId = null;\r\n\t\t\t} else {\r\n\t\t\t\tthis.workflowId = workflowId;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Temp bottom kendo data\r\n\t\t\t */\r\n\t\t\tlet bottomKendoData: any = [];\r\n\t\t\t/**\r\n\t\t\t * Get Assigned To,Cc data by task id\r\n\t\t\t */\r\n\t\t\tlet grpdAssignedByTaskId = groupBy(data.workflowAssignedTo, 'task_Id');\r\n\t\t\t/**\r\n\t\t\t * Get Workflow action data by task id\r\n\t\t\t */\r\n\t\t\tlet grpdWorkflowActionByTaskId = groupBy(data.workflowAction, 'task_Id');\r\n\r\n\t\t\tif (data.workflowActionCategory && data.workflowActionCategory.length > 0) {\r\n\t\t\t\tdata.workflowActionCategory.forEach((val, index) => {\r\n\t\t\t\t\tlet obj: any = {\r\n\t\t\t\t\t\t\"action_Id\": Number,\r\n\t\t\t\t\t\t\"is_Active\": Boolean,\r\n\t\t\t\t\t\t\"task_Id\": Number,\r\n\t\t\t\t\t\t\"workflow_Id\": Number,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tif (data.workflowActionCategory && data.workflowActionCategory?.length > 0) {\r\n\r\n\r\n\t\t\t\t\t\tlet MapCategoryData: any = data.workflowActionCategory.filter(element => val.task_Id == element.task_Id && val.action_Id == element.action_Id)\r\n\t\t\t\t\t\tif (MapCategoryData.length > 0) {\r\n\t\t\t\t\t\t\tobj.action_Id = MapCategoryData[0].action_Id;\r\n\t\t\t\t\t\t\tobj.is_Active = MapCategoryData[0].is_Active;\r\n\t\t\t\t\t\t\tobj.task_Id = MapCategoryData[0].task_Id;\r\n\t\t\t\t\t\t\tobj.workflow_Id = MapCategoryData[0].workflow_Id;\r\n\t\t\t\t\t\t\tobj[\"category_Description\"] = MapCategoryData.map((X: { category_Description: any; }) => X.category_Description).toString();\r\n\t\t\t\t\t\t\tobj[\"category_Id\"] = MapCategoryData.map((X: { category_Id: any; }) => X.category_Id).toString();\r\n\t\t\t\t\t\t\tthis.getCategory_Description.push(obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.getCategory_Description = [];\r\n\t\t\t}\r\n\r\n\t\t\tdata.workflowActionCategory = this.getCategory_Description;\r\n\t\t\tdata.workflowStatus.forEach(each => {\r\n\t\t\t\tlet\r\n\t\t\t\t\ttoArr: any = [],\r\n\t\t\t\t\tccArr: any = [],\r\n\t\t\t\t\tactionArr: any = [],\r\n\t\t\t\t\tnewData: any = {\r\n\t\t\t\t\t\tworkflow_Status_Description: each.workflow_Status_Description,\r\n\t\t\t\t\t\tworkflow_Status: each.workflow_Status,\r\n\t\t\t\t\t\tstep_Id: each.step_Id,\r\n\t\t\t\t\t\ttask_Order: each.task_Order,\r\n\t\t\t\t\t\tis_Action_Required: each.is_Action_Required,\r\n\t\t\t\t\t\tworkflowAssignedTo: '',\r\n\t\t\t\t\t\tworkflowAssignedCc: '',\r\n\t\t\t\t\t\tworkflowAction: '',\r\n\t\t\t\t\t\ttask_Id: each.task_Id,\r\n\t\t\t\t\t\tis_Active: each.is_Active,\r\n\t\t\t\t\t\tdata: each,\r\n\t\t\t\t\t\tdocument_CategoryType: this.getCategory_Description.length > 0 ? this.getCategory_Description : null,\r\n\t\t\t\t\t\tintegrationType: this.getWorkflowIntegrateToName(each.integration_Type),\r\n\t\t\t\t\t\tworkflow_Stage: this.getWorkflowStatusName(each.sub_Workflow),\r\n\t\t\t\t\t\tdue_Days: each.due_Days\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif (grpdAssignedByTaskId[each.task_Id] && grpdAssignedByTaskId[each.task_Id].length) {\r\n\t\t\t\t\tgrpdAssignedByTaskId[each.task_Id].forEach(eachAssignedTo => {\r\n\t\t\t\t\t\tif (eachAssignedTo.assign_Type == 1) { // To:\r\n\t\t\t\t\t\t\tif (eachAssignedTo.member_Name) {\r\n\t\t\t\t\t\t\t\ttoArr.push(eachAssignedTo.member_Name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (eachAssignedTo.role_Description) {\r\n\t\t\t\t\t\t\t\ttoArr.push(eachAssignedTo.role_Description);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (eachAssignedTo.assign_Type == 2) { // Cc:\r\n\t\t\t\t\t\t\tif (eachAssignedTo.member_Name) {\r\n\t\t\t\t\t\t\t\tccArr.push(eachAssignedTo.member_Name);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (eachAssignedTo.role_Description) {\r\n\t\t\t\t\t\t\t\tccArr.push(eachAssignedTo.role_Description);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (grpdWorkflowActionByTaskId[each.task_Id] && grpdWorkflowActionByTaskId[each.task_Id].length) {\r\n\t\t\t\t\tgrpdWorkflowActionByTaskId[each.task_Id].forEach(eachAction => {\r\n\t\t\t\t\t\tactionArr.push(eachAction.action_Description);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnewData.workflowAssignedTo = toArr.toString();\r\n\t\t\t\tnewData.workflowAssignedCc = ccArr.toString();\r\n\t\t\t\tnewData.workflowAction = actionArr.toString();\r\n\r\n\t\t\t\tbottomKendoData.push(newData);\r\n\t\t\t});\r\n\r\n\t\t\tthis.workFlowStatusList = this.bottomKendoList = bottomKendoData;\r\n\r\n\t\t\tthis.workFlowStatusList.forEach((each: any) => {\r\n\t\t\t\teach.WorkflowTaskDisplayText = each.workflow_Stage + ' - ' + each.workflow_Status_Description;\r\n\t\t\t});\r\n\r\n\t\t\tthis.workflowTemplateService.customTaskId = bottomKendoData.length + 1;\r\n\r\n\t\t\t// create mode set child collapse header task id\r\n\t\t\tif (!this.workflowId) {\r\n\t\t\t\tthis.bodyInputComponent.parentTaskId = bottomKendoData.length + 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.workflowTemplateService.supportForBottomKendo.next(bottomKendoData);\r\n\r\n\t\t\tif (isFromWfTemplateList) {\r\n\t\t\t\tthis.selectedTaskId = this.workFlowTemplateApiResponse.workflowAssignedTo[0].task_Id;\r\n\t\t\t\tthis.workflowId = null;\r\n\r\n\t\t\t\tthis.workFlowTemplateApiResponse.workflowStatus.forEach(() => {\r\n\r\n\t\t\t\t});\r\n\t\t\t\tthis.setDataForSelectedTaskOrder(isFromWfTemplateList);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t/**\r\n\t * Clear this component's input values\r\n\t */\r\n\tclearThisComponentInput() {\r\n\t\tthis.clearIcSelected = 'Y';\r\n\t\tthis.clearBuSelected = 'Y';\r\n\t\tthis.clearProjectSelected = 'Y';\r\n\t\tthis.clearBusinessGrpSelected = 'Y';\r\n\t\tthis.templateName = this.templateDescription = '';\r\n\t\tthis.isForsupersede = true;\r\n\t\tthis.isForReAssignment = true;\r\n\r\n\t\tthis.workflowId = null;\r\n\t\tthis.workFlowTemplateApiResponse = null;\r\n\t}\r\n\r\n\tchangeWorkflowStatus(event?: any) {\r\n\t\tthis.clearWfStatusSelected = 'N';\r\n\t\tif (event.value != '-2') {\r\n\t\t\tif (event.additionalValues) {\r\n\t\t\t\tthis.selectedTaskId = event.additionalValues.additionalValues.task_Id;\r\n\t\t\t\tthis.selectedTaskStageId = event.additionalValues.additionalValues.data.sub_Workflow;\r\n\t\t\t} else {\r\n\t\t\t\tthis.selectedTaskId = event.task_Id;\r\n\t\t\t\tthis.selectedTaskStageId = event.data.sub_Workflow;\r\n\t\t\t}\r\n\t\t\tthis.bodyInputComponent.parentTaskId = this.selectedTaskId;\r\n\t\t\tthis.workflowTemplateService.selectedTaskId = this.selectedTaskId;\r\n\t\t\tthis.workflowTemplateService.isEditMode = true;\r\n\t\t\tthis.setDataForSelectedTaskOrder();\r\n\r\n\t\t} else {\r\n\t\t\tthis.workflowTemplateService.selectedTaskId = null;\r\n\t\t\tthis.bodyInputComponent.clearInputValues();\r\n\t\t}\r\n\r\n\t\tlet rootElement: HTMLElement | null = document.getElementById('carousel-container');\r\n\t\tif (rootElement)\r\n\t\t\trootElement.scrollTo({ top: 0, behavior: 'smooth' })\r\n\t}\r\n\r\n\tclearWfStatusSelectedFun() {\r\n\t\tthis.clearWfStatusSelected = 'Y';\r\n\t}\r\n\r\n\t/**\r\n\t * Set data to input values in mat expansion component\r\n\t */\r\n\tsetDataForSelectedTaskOrder(isFromWfTemplateList?: boolean) {\r\n\t\tthis.icid = this.workFlowTemplateApiResponse.ic_Id;\r\n\t\tthis.buid = this.workFlowTemplateApiResponse.bu_Id;\r\n\t\tthis.projectId = this.workFlowTemplateApiResponse.project_Id;\r\n\t\tthis.businessGroupId = this.workFlowTemplateApiResponse.group_Id\r\n\r\n\t\tthis.templateName = this.workFlowTemplateApiResponse.workflow_Name;\r\n\t\tthis.templateDescription = this.workFlowTemplateApiResponse.workflow_Description;\r\n\t\tthis.isForsupersede = this.workFlowTemplateApiResponse.isForsupersede;\r\n\t\tthis.isForReAssignment = this.workFlowTemplateApiResponse.isForReAssignment;\r\n\r\n\t\tlet grpdWorkflowStatus = groupBy(this.workFlowTemplateApiResponse.workflowStatus, 'task_Id');\r\n\t\tlet grpdAssigned = groupBy(this.workFlowTemplateApiResponse.workflowAssignedTo, 'task_Id');\r\n\t\tlet grpdActions = groupBy(this.workFlowTemplateApiResponse.workflowAction, 'task_Id');\r\n\r\n\t\tlet toCartValues: WFTCartDialogOutputModel = {\r\n\t\t\t'roleSelectedIds': [],\r\n\t\t\t'roleTextWithValue': [], //{ value: string | number, text: string }\r\n\t\t\t'roleSelectedNames': [],\r\n\t\t\t'roleEventsList': [], // need to check\r\n\r\n\t\t\t'memberSelectedIds': [],\r\n\t\t\t'memberTextWithValue': [], // { value: string | number, text: string }\r\n\t\t\t'memberSelectedNames': [],\r\n\t\t\t'memberEventList': [],\r\n\r\n\t\t\t'previousBusinessGroupId': null,\r\n\r\n\t\t\t'totalSelectedNames': [],\r\n\t\t};\r\n\r\n\t\tlet ccCartValues: WFTCartDialogOutputModel = {\r\n\t\t\t'roleSelectedIds': [],\r\n\t\t\t'roleTextWithValue': [], //{ value: string | number, text: string }\r\n\t\t\t'roleSelectedNames': [],\r\n\t\t\t'roleEventsList': [], // need to check\r\n\r\n\t\t\t'memberSelectedIds': [],\r\n\t\t\t'memberTextWithValue': [], // { value: string | number, text: string }\r\n\t\t\t'memberSelectedNames': [],\r\n\t\t\t'memberEventList': [],\r\n\r\n\t\t\t'previousBusinessGroupId': null,\r\n\r\n\t\t\t'totalSelectedNames': [],\r\n\t\t};\r\n\r\n\r\n\t\tgrpdAssigned[this.selectedTaskId].forEach(each => {\r\n\t\t\tif (each.assign_Type == 1) { // To:\r\n\t\t\t\tif (each.role_Id) {\r\n\t\t\t\t\ttoCartValues.roleSelectedIds.push(each.role_Id);\r\n\t\t\t\t\ttoCartValues.totalSelectedNames.push(each.role_Description);\r\n\t\t\t\t\ttoCartValues.roleTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(each.role_Id, each.role_Description));\r\n\t\t\t\t\ttoCartValues.roleEventsList.push({ text: this.workflowTemplateService.getAsCartSelectedValue(each.role_Id, each.role_Description).text });\r\n\t\t\t\t}\r\n\t\t\t\tif (each.member_Id) {\r\n\t\t\t\t\ttoCartValues.memberSelectedIds.push(each.member_Id);\r\n\t\t\t\t\ttoCartValues.totalSelectedNames.push(each.member_Name);\r\n\t\t\t\t\ttoCartValues.memberTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(each.member_Id, each.member_Name));\r\n\t\t\t\t\ttoCartValues.memberEventList.push({ text: this.workflowTemplateService.getAsCartSelectedValue(each.member_Id, each.member_Name).text });\r\n\t\t\t\t}\r\n\t\t\t\ttoCartValues.previousBusinessGroupId = each.group_Id;\r\n\t\t\t} else if (each.assign_Type == 2) { // Cc:\r\n\t\t\t\tif (each.role_Id) {\r\n\t\t\t\t\tccCartValues.roleSelectedIds.push(each.role_Id);\r\n\t\t\t\t\tccCartValues.totalSelectedNames.push(each.role_Description);\r\n\t\t\t\t\tccCartValues.roleTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(each.role_Id, each.role_Description));\r\n\t\t\t\t\tccCartValues.roleEventsList.push({ text: this.workflowTemplateService.getAsCartSelectedValue(each.role_Id, each.role_Description).text });\r\n\t\t\t\t}\r\n\t\t\t\tif (each.member_Id) {\r\n\t\t\t\t\tccCartValues.memberSelectedIds.push(each.member_Id);\r\n\t\t\t\t\tccCartValues.totalSelectedNames.push(each.member_Name);\r\n\t\t\t\t\tccCartValues.memberTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(each.member_Id, each.member_Name));\r\n\t\t\t\t\tccCartValues.memberEventList.push({ text: this.workflowTemplateService.getAsCartSelectedValue(each.member_Id, each.member_Name).text });\r\n\t\t\t\t}\r\n\t\t\t\tccCartValues.previousBusinessGroupId = each.group_Id;\r\n\t\t\t}\r\n\t\t});\r\n\t\t// pass values to mat expansion componet\r\n\t\tthis.bodyInputComponent.setFormValues({ inputData: grpdWorkflowStatus[this.selectedTaskId][0], toCartValues, ccCartValues, actionKendoArr: grpdActions[this.selectedTaskId], isFromWfTemplateList: isFromWfTemplateList, WorkflowActionCategory: this.workFlowTemplateApiResponse.workflowActionCategory });\r\n\t}\r\n}\r\n","
\r\n
\r\n {{ workflowTemplateService.isCreateMode ? 'Create - Workflow Template' : workflowTemplateService.isViewMode ?\r\n\t\t'View - Workflow Template' : 'Edit - Workflow Template'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n | \r\n
\r\n

Preview & Choose Template

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Template name\r\n \r\n \r\n
\r\n
\r\n \r\n Template description\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Is for Supersede\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Launch Reassign Member Pop-Up\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { RespondWorflowChecklistItemsComponent } from '../respond-worflow-checklist-items/respond-worflow-checklist-items.component';\r\n\r\n@Component({\r\n selector: 'app-document-previous-revision-checklist',\r\n templateUrl: './document-previous-revision-checklist.component.html',\r\n styleUrls: ['./document-previous-revision-checklist.component.css']\r\n})\r\nexport class DocumentPreviousRevisionChecklistComponent implements OnInit {\r\n public gridView =[];\r\n public selectionAction : any[]=[];\r\n\r\n\r\n @ViewChild(DataBindingDirective) directive: any;\r\n @ViewChild('docgrid') docGrid: any;\r\n constructor(public dialogRef: MatDialogRef,private dialog: MatDialog,@Inject(MAT_DIALOG_DATA) public data: any) \r\n { \r\n\r\n }\r\n\r\n ngOnInit() { \r\n this.data.forEach((each: { [x: string]: string; },index: any) => { \r\n each['itemIndex']= index,\r\n each['clFullName'] = each['cL_Short_Description'] + ' - ' + each['cL_Description']; \r\n }); \r\n this.gridView = this.data; \r\n }\r\n\r\n\r\n closeDialog() { \r\n this.dialogRef.close(this.selectionAction);\r\n //this.dialogRef.close();\r\n }\r\n\r\n postData() {\r\n this.closeDialog();\r\n }\r\n\r\n // public openChecklistItems(dataitem) { \r\n // debugger; \r\n // if(!!dataitem){ \r\n // let dataItem={\r\n // \"clId\" : dataitem.cL_Id,\r\n // \"clFullName\":dataitem.clFullName,\r\n // \"documentId\":dataitem.doc_Id,\r\n // \"documentRevision\": dataitem.revision_No, \r\n // }\r\n // let dialogRef = this.dialog.open(RespondWorflowChecklistItemsComponent, {\r\n // panelClass: 'mat-dialog-primary',\r\n // data: {dataItem, 'isReadMode':false} \r\n // });\r\n // dialogRef.afterClosed().subscribe((data) => { \r\n // });\r\n // } \r\n // }\r\n\r\n onSelectionChange(event: any): void { \r\n if (event['selectedRows'].length > 0) { \r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => { \r\n element.dataItem.isSelected = true;\r\n this.selectionAction.push(element.dataItem); \r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { docId: any; revision: any; }; }) => {\r\n for(let i=0;i\r\n
\r\n Document Previous Revision Checklist\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import * as moment from 'moment';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { DatePipe, formatDate } from \"@angular/common\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { RestApiService } from 'src/app/Service/rest-api.service';\r\nimport { LoaderService } from 'src/app/Service/Loader/loader.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ChecklistService } from 'src/app/Service/checklist/checklist.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { Component, Input, OnInit, ElementRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { RespondWorkflowListModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { FileUploadComponent } from 'src/app/CommonComponents/file-upload/file-upload.component';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { RespondWorflowChecklistItemsComponent } from '../respond-worflow-checklist-items/respond-worflow-checklist-items.component';\r\nimport { RespondWorflowComponent } from '../../respond-worflow/respond-worflow.component';\r\nimport { ForgeViewerComponent } from 'src/app/CommonComponents/forge-viewer/forge-viewer.component';\r\nimport { CreateTransmittalComponent } from 'src/app/Modules/transmittal/transmittal-creation/transmittal-creation.component';\r\nimport { WFActionAssignedToComponent } from '../wft-action-assignto/wft-action-asssignto.component';\r\nimport { WorkflowActionModel, IWFDocCategoryModel, IDCINoOfSheetsModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { WorkflowTemplateStatusInputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { WorkflowAssignedToModel } from 'src/app/ViewModel/WorkflowAssignedToModel';\r\nimport { WorkflowTenderQuantityComponent } from '../workflow-tender-quantity/workflow-tender-quantity.component';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { IDCIRevisionMaster, IProjectElementDetailsOutput, IProjectElementsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IDCISupersedeRevDetailsModel, IDelayReason, IRevisionCategory, IScheduleDocInfo, ILatestStageDetails } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { ScheduleDocumentService } from 'src/app/Service/scheduledocument/scheduleDocument.service';\r\nimport { FileService, FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { ScheduleWorkflowhistoryComponent } from 'src/app/Modules/engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component';\r\nimport { DocumentPreviousRevisionChecklistComponent } from '../document-previous-revision-checklist/document-previous-revision-checklist.component';\r\nimport { anyChanged } from '@progress/kendo-angular-common';\r\nimport { DocumentRevisionLinkService } from \"src/app/Service/document-revision-link/document-revision-link.service\";\r\nimport { isNumber } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-respond-worflow-action',\r\n templateUrl: './respond-worflow-action.component.html',\r\n styleUrls: ['./respond-worflow-action.component.css']\r\n})\r\nexport class RespondWorflowActionComponent implements OnInit {\r\n\r\n @Input() public selectedToggle: any;\r\n @Input() parentfu!: RespondWorflowComponent;\r\n @Input() public isBulkAction!: boolean;\r\n @Output() closeTab = new EventEmitter();\r\n @Output() CopyDetails = new EventEmitter();\r\n public index = 0;\r\n public prevIndex = 0;\r\n public nextIndex = 0;\r\n public isMatValue = 'S';\r\n public member: any = null;\r\n public isMaterial = false;\r\n public tabsArray: any = [];\r\n public groupId: number = 0;\r\n public memberId: number = 0;\r\n public projectId: number = 0;\r\n public carouselItemTransform = 0;\r\n public CarouselItemTransform = 0;\r\n public isChecklistRequired = false;\r\n public isPeerReviewRequired = false;\r\n public selectedChecklist: number = 0;\r\n public checklistCollection: any = [];\r\n public isAttachmentRequired = false;\r\n public isTransmittalRequired = false;\r\n public isDTNPreparation = false;\r\n public isDTNRelease = false;\r\n public isCCNRequired = false;\r\n public isDocstatusChangesRequired = false;\r\n public setclear: any;\r\n isShowICSpecific: boolean = false;\r\n public addCheckList: boolean = false;\r\n public isCommentSheetRequired = false;\r\n public isCommentSheetno: string | null = null;\r\n public isTenderQuantityRequired = false;\r\n public isTenderQuantityApprovalRequired = false;\r\n public _wfDetails!: RespondWorkflowListModel;\r\n public fileTypeList: RoleFeatureModel[] = [];\r\n public Checklist: string = \"A\";\r\n public fileCollection: Array = new Array();\r\n public workflowIntegrateToList: RoleFeatureModel[] = [];\r\n statusList: RoleFeatureModel[] = [];\r\n public currentWorkflowDetails!: WorkflowTemplateDialogModel;\r\n public currentTask: any;\r\n public selectedChecklistCollection: Array = new Array();\r\n public getpopupValue: any = [];\r\n public checkListApplicable!: boolean;\r\n public getTQpopupvalue: boolean = false;\r\n public isCompletedOnManul: boolean = false;\r\n public isCompletedOnManulRequired = false;\r\n public isApprovalStatusRequired = false;\r\n public isNoOfSheetsRequired = false;\r\n public supersedeActions: WorkflowActionModel[] = [];\r\n public defaultDateValue = new Date(this.getFormattedDate(new Date()));\r\n public selectedCompletedOnDate = this.getFormattedDate(new Date());\r\n public min: Date = new Date(2002, 2, 10);\r\n public today: Date = new Date();\r\n public dueOn!: Date;\r\n public isDueOnRequired: boolean = false;\r\n public isDelayed: boolean = false;\r\n public max: Date = new Date(this.getFormattedDate(new Date()));\r\n public isQuantityApplicable: string = \"A\";\r\n public action_id: any;\r\n public show: boolean = true;\r\n revForm!: FormGroup;\r\n drForm!: FormGroup;\r\n icIsDisabled: boolean = true;\r\n IsShow: boolean = false;\r\n getworkflowHistoryvalue: any[] = [];\r\n public delayReasonDD!: number | undefined;\r\n public delayReasonValid: any;\r\n revCategoryList: IRevisionCategory[] = [];\r\n delayReasonList: IDelayReason[] = [];\r\n printSizeList: IProjectElementDetailsOutput[] = [];\r\n dciStatusList: IProjectElementDetailsOutput[] = [];\r\n docCategoryList: IProjectElementDetailsOutput[] = [];\r\n ProgressLevelsList: IProjectElementDetailsOutput[] = [];\r\n selectedDocCategoryValue: number = 0;\r\n SelectedProgressLevel: number = 0;\r\n public reciviedChecklist: any[] = [];\r\n projectStaticElements: IProjectElementsOutput[] = [];\r\n isDocSetRequired: boolean = true;\r\n LatestStageDetails: ILatestStageDetails[] = [];\r\n previouswithvalue: any[] = [];\r\n PreviousChecklist: any[] = [];\r\n public checklistselectedvalue: any[] = [];\r\n public isForReAssignment!: boolean;\r\n public ListofActiondetails: any[] = [];\r\n public Actiondetails: any;\r\n public pageSize: number = 20;\r\n public Postobj!: any[];\r\n public holdReason: string | null = null;\r\n holded: boolean = false;\r\n is_checklistCopied: boolean = false;\r\n showholdTextinput: boolean = false;\r\n Can_Update_DCI_Progress_Level: boolean = false;\r\n dciRevisionList: IDCIRevisionMaster[] = [];\r\n public current_subWf: number = 0;\r\n public next_subWf: number = 0;\r\n public supersede_enabled : boolean = false;\r\n public current_RevNo: string = null;\r\n public next_RevNo: string = null;\r\n public stageChange: boolean = false;\r\n get wfInputDetails(): RespondWorkflowListModel {\r\n return this._wfDetails;\r\n }\r\n\r\n @Input() set wfDetails(value: RespondWorkflowListModel) {\r\n if (!!value && typeof value == \"object\") {\r\n this._wfDetails = value;\r\n this._wfDetails[\"comments\"] = null;\r\n this._wfDetails[\"delayReason\"] = null;\r\n this._wfDetails[\"internalReason\"] = null;\r\n this._wfDetails[\"externalReason\"] = null;\r\n }\r\n }\r\n\r\n constructor(private http: HttpClient, private encryptDecryptService: EncryptDecryptService,\r\n private loaderService: LoaderService, private restApiService: RestApiService,\r\n private dialog: MatDialog, private elem: ElementRef, public _notificationService: NotificationService,private _dciRevMaster: DocumentRevisionLinkService,\r\n public _commonService: CommonService, public _datepipe: DatePipe, public workflowTemplateService: WorkflowTemplateService,\r\n public checklistService: ChecklistService, private _projService: ProjectInfoService, private _formBuilder: FormBuilder, private _dciService: ScheduleDocumentService, private _fileService: FileService) {\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.projectId = this._commonService.getProjectId();\r\n this.memberId = this._commonService.getLoggedInUserId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n \r\n this.min = new Date(this.getFormattedDate(this.wfInputDetails.assignedOn));\r\n let _Charcode:number =this.wfInputDetails.revisionNo.charCodeAt(this.wfInputDetails.revisionNo.length - 1);\r\n let revision_No;\r\n if(!isNaN(Number(this.wfInputDetails.revisionNo)))\r\n {\r\n revision_No = String(Number(this.wfInputDetails.revisionNo)+ 1); \r\n }\r\n else{\r\n revision_No = this.wfInputDetails.revisionNo.substring(0, this.wfInputDetails.revisionNo.length - 1) +\r\n String.fromCharCode(this.wfInputDetails.revisionNo.charCodeAt(this.wfInputDetails.revisionNo.length - 1) + 1);\r\n }\r\n this.revForm = this._formBuilder.group({\r\n printSize: new FormControl('', Validators.required),\r\n formPrintSize: new FormControl('', Validators.required),\r\n revCategory: new FormControl('', Validators.required),\r\n formrevCategory: new FormControl('', Validators.required),\r\n dciStatus: new FormControl('', [Validators.required]),\r\n formDciStatus: new FormControl('', [Validators.required]),\r\n comments: new FormControl(),\r\n noOfSheets: new FormControl(),\r\n docStatus: new FormControl(),\r\n formRevision: new FormControl(revision_No, [Validators.required])\r\n });\r\n this.getStatusList();\r\n this.getElementDetails(\"Print Size\");\r\n this.getElementDetails(\"Document Category\");\r\n this.getElementDetails(\"Status\");\r\n this.getElementDetails(\"Progress Level\", Module.Workflow);\r\n this.getProjectStaticElements();\r\n this.drForm = this._formBuilder.group({\r\n delayReasonDD: new FormControl('', Validators.required),\r\n txtDRC: new FormControl('', Validators.required),\r\n txtIRC: new FormControl('', Validators.required),\r\n txtERC: new FormControl('', Validators.required),\r\n });\r\n this.delayReasonList = [{ delayReasonId: 1, delayReason: 'Delay Reason' }, { delayReasonId: 2, delayReason: 'Internal Reason' }, { delayReasonId: 3, delayReason: 'External Reason' }];\r\n forkJoin(this.workflowTemplateService.getCommonDEDAgainstDE(\"Workflow IntegrateTo\"), this.workflowTemplateService.getWorkflowTemplate(this.wfInputDetails.workflowId)).subscribe(res => {\r\n this.workflowIntegrateToList = res[0];\r\n this.currentWorkflowDetails = res[1];\r\n \r\n\r\n let wfact = this.currentWorkflowDetails.workflowAction.some(x => x.action_Description == 'Hold' && x.task_Id == this.wfInputDetails.currentTaskId);\r\n if (wfact && !this.holded)\r\n this.showholdTextinput = true;\r\n let currentTask = this.currentWorkflowDetails.workflowStatus.filter(item => item.sub_Workflow == this.wfInputDetails.subWorkflow && item.workflow_Status_Description.toUpperCase().trim() == this.wfInputDetails.taskName.toUpperCase().trim())[0];\r\n this.currentTask = currentTask;\r\n if (this.currentWorkflowDetails && this.currentWorkflowDetails.workflowAction.length > 0 && this.wfInputDetails) {\r\n this.ListofActiondetails = this.currentWorkflowDetails.workflowAction.filter(x => x.task_Id == this.wfInputDetails.currentTaskId)\r\n\r\n if (currentTask.integration_Type == null && this.ListofActiondetails && this.ListofActiondetails.length > 0) {\r\n if (this.ListofActiondetails.filter(x => x.action_Description == \"Approve\").length > 0)\r\n this.action_id = this.ListofActiondetails.filter(x => x.action_Description == \"Approve\")[0].action_Id\r\n }\r\n }\r\n this.isForReAssignment = this.currentWorkflowDetails.isForReAssignment;\r\n //Get the current workflow step actions & ensure that any of the action is invovled in supersede operation\r\n let workflowActions: WorkflowActionModel[] = this.currentWorkflowDetails.workflowAction.filter(x => x.task_Id == currentTask.task_Id);\r\n\r\n if (!!workflowActions && workflowActions.length > 0) {\r\n this.supersedeActions = workflowActions.filter(wc => wc.enable_Tag);\r\n\r\n let v = this.currentWorkflowDetails.workflowAction.filter(x => x.enable_Tag && x.task_Id == this.currentTask.task_Id);\r\n\r\n let SupersedeSubWorkflows = v.map(item => item.next_Step_Sub_Workflow)\r\n .filter((value, index, self) => self.indexOf(value) === index).join(',');\r\n\r\n\r\n let obj = {\r\n \"Doc_Id\": this.wfInputDetails.documentId,\r\n \"Stage_Ids\": SupersedeSubWorkflows\r\n }\r\n this.workflowTemplateService.GetWorkflowLatestStageDetail(obj).subscribe(data => {\r\n if (!!data) {\r\n this.LatestStageDetails = data.map((x: any) => { x.scheduled_On = new Date(x.scheduled_On), x.revisedScheduled_On = (x.revisedScheduled_On ? new Date(x.revisedScheduled_On) : null), x.minScheduled_On = (x.minScheduled_On ? new Date(x.minScheduled_On) : null), x.maxScheduled_On = (x.maxScheduled_On ? new Date(x.maxScheduled_On) : null); return x });\r\n }\r\n })\r\n }\r\n\r\n this.isCompletedOnManulRequired = this.isCompletedOnManul = currentTask.is_Completed_On_Manual;\r\n this.isApprovalStatusRequired = currentTask.is_Approval_Status;\r\n this.isDueOnRequired = currentTask.is_Due_On;\r\n this.isNoOfSheetsRequired = currentTask.is_No_Of_Sheets_Required;\r\n this.isCCNRequired = currentTask.is_CCN_Required;\r\n this.Can_Update_DCI_Progress_Level = currentTask.can_Update_DCI_Progress_Level;\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Attachment'.toUpperCase().trim()) {\r\n this.isAttachmentRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Checklist'.toUpperCase().trim()) {\r\n this.isChecklistRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Tender Quantity'.toUpperCase().trim()) {\r\n this.isTenderQuantityRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Tender Quantity Approval'.toUpperCase().trim()) {\r\n this.isTenderQuantityApprovalRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Checklist + Tender Quantity'.toUpperCase().trim()) {\r\n this.isChecklistRequired = true;\r\n this.isTenderQuantityRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Comment Sheet'.toUpperCase().trim()) {\r\n this.isCommentSheetRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Peer Review'.toUpperCase().trim()) {\r\n this.isPeerReviewRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'Transmittal'.toUpperCase().trim()) {\r\n this.isTransmittalRequired = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'DTN Preparation'.toUpperCase().trim()) {\r\n this.isDTNPreparation = true;\r\n }\r\n\r\n if (currentTask.integration_Type != null && this.getWorkflowIntegrateToName(currentTask.integration_Type).toUpperCase().trim() === 'DTN Release'.toUpperCase().trim()) {\r\n this.isDTNRelease = true;\r\n }\r\n\r\n if (this.isDueOnRequired) {\r\n this.dueOn = this.wfInputDetails.dueOn;\r\n let doDate = formatDate(this.dueOn, 'yyyy-MM-dd', 'en-US');\r\n let today = formatDate(this.today, \"yyyy-MM-dd\", 'en-US');\r\n if (today > doDate) {\r\n this.isDelayed = true;\r\n }\r\n else {\r\n this.isDelayed = false;\r\n }\r\n }\r\n\r\n this.getFileType();\r\n this.populateFileUploadGrid();\r\n\r\n if (this.isChecklistRequired) {\r\n this.populateChecklistGrid();\r\n this.getCheckList(this.wfInputDetails.groupId, this.wfInputDetails.documentDisciplineId, null, null, this.projectId);\r\n }\r\n\r\n this.setDynamicPosition();\r\n });\r\n this.initializeReviseRevisionForm();\r\n this.getWf_History();\r\n\r\n let obj = {\r\n \"projectId\": this.projectId,\r\n \"groupId\": this.groupId,\r\n }\r\n this._dciRevMaster.getDocumentRevision(obj).subscribe((data: IDCIRevisionMaster[]) => {\r\n this.dciRevisionList = data;\r\n });\r\n }\r\n\r\n getWf_History() {\r\n if (!!this._wfDetails.documentId) {\r\n this._dciService.getWorkflowHistory(this._wfDetails.documentId).subscribe((data: any[]) => {\r\n if (data[0].is_On_Hold) {\r\n this.holded = true;\r\n this.showholdTextinput = false;\r\n }\r\n this.getworkflowHistoryvalue = [];\r\n data.sort((a, b) => a - b);\r\n this.getworkflowHistoryvalue.push(data[1]);\r\n if (data.length > 1) {\r\n this.IsShow = true;\r\n }\r\n })\r\n }\r\n }\r\n\r\n public setDynamicPosition() {\r\n let index!: number;\r\n for (let i = 0; i < this.currentWorkflowDetails.workflowStatus.length; i++) {\r\n if (this.currentWorkflowDetails.workflowStatus[i].sub_Workflow == this.wfInputDetails.subWorkflow && this.currentWorkflowDetails.workflowStatus[i].workflow_Status_Description.toUpperCase().trim() === this.wfInputDetails.taskName.toUpperCase().trim()) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n if (index && index > 3) {\r\n let rootElement: HTMLElement | null = document.getElementById('carousel-container');\r\n if (rootElement != null) {\r\n let taskDivs: any = rootElement.children[0].children;\r\n if (!!taskDivs && taskDivs.length > 0) {\r\n rootElement.scrollLeft = taskDivs.item(index).getBoundingClientRect().left - 70;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public initializeReviseRevisionForm() {\r\n this.revCategoryList = [{ revCategoryId: 1, revCategory: 'Minor' }, { revCategoryId: 2, revCategory: 'Major' }, { revCategoryId: 3, revCategory: 'First Release' }];\r\n if (!!this.wfInputDetails.revisionCategory) {\r\n let revisionCategory = this.revCategoryList.filter(data => data.revCategoryId == this.wfInputDetails.revisionCategory)[0];\r\n this.revForm.get('formrevCategory')?.setValue(revisionCategory.revCategory);\r\n this.revForm.get('revCategory')?.setValue(revisionCategory);\r\n }\r\n }\r\n\r\n getReviseRevisionDetailsHeader(): string {\r\n let result: string = \"Revise revision details required for \";\r\n let actions: string = \"\";\r\n this.supersedeActions.forEach(x => {\r\n //Action which all are having supersede option\r\n if (x.enable_Tag) {\r\n actions += actions.length == 0 ? x.action_Description : \"/\" + x.action_Description;\r\n }\r\n })\r\n return result + \"\" + actions + \"\";\r\n }\r\n\r\n onselectedValueChange(val: any, formGroupName: string, formControlName: string) {\r\n switch (formGroupName) {\r\n case \"revForm\":\r\n this.revForm.get(formControlName)?.setValue(val.additionalValues.additionalValues);\r\n break;\r\n case \"drForm\":\r\n if (!!val.additionalValues.additionalValues) {\r\n this.drForm.get(formControlName)?.setValue(val.additionalValues.additionalValues.delayReason);\r\n if (val.value > 0) {\r\n this.delayReasonDD = val.value;\r\n }\r\n }\r\n else {\r\n this.delayReasonDD = undefined;\r\n }\r\n break\r\n }\r\n }\r\n\r\n public rightMove() {\r\n let _x: any = document.getElementById('carousel-container');\r\n if (_x)\r\n _x.scrollLeft += 100;\r\n };\r\n\r\n public leftMove() {\r\n let _x: any = document.getElementById('carousel-container');\r\n if (_x)\r\n _x.scrollLeft -= 100;\r\n };\r\n\r\n public onWheel(event: WheelEvent): void {\r\n let _x: any = document.getElementById('carousel-container');\r\n if (_x)\r\n _x.scrollLeft += event.deltaY;\r\n event.preventDefault();\r\n }\r\n\r\n public closeTabClick(getIndex: any) {\r\n this.tabsArray.splice(getIndex, 1);\r\n }\r\n\r\n public getCompletedOnValue(selectedText: any) {\r\n this.selectedCompletedOnDate = selectedText.value;\r\n\r\n }\r\n\r\n public getTimeValue(selectedText: any) {\r\n }\r\n\r\n public getCheckList(businessGroupId: number, disciplineId: number, buid: number | null, icid: number | null, projectId: number) {\r\n this.checklistService.getChecklist(businessGroupId, disciplineId, buid, icid, projectId, true, true, this.isShowICSpecific).subscribe((data) => {\r\n data.forEach((each: any) => {\r\n each['clFullDescription'] = each['clShortDescription'] + ' - ' + each['clDescription'];\r\n });\r\n this.checklistCollection = data;\r\n });\r\n }\r\n\r\n public getFormattedDate(date: any): string {\r\n let res: string = \"\";\r\n if (date != null)\r\n res = (moment(date)).format('DD-MMM-yyyy');\r\n return res;\r\n }\r\n\r\n public getStatusList() {\r\n this.workflowTemplateService.getWorkflowTaskList(this.groupId, Module.Workflow, \"Workflow\", null, \"Workflow Status\", null, null, this.projectId).subscribe(data => {\r\n this.statusList = data;\r\n });\r\n }\r\n\r\n public getWorkflowStatusName(id: number) {\r\n if (this.statusList.filter(item => item.dedId == id).length > 0)\r\n return this.statusList.filter(item => item.dedId == id)[0][\"dedDescription\"];\r\n else\r\n return '';\r\n }\r\n\r\n public getWorkflowIntegrateToName(id: number) {\r\n if (this.workflowIntegrateToList.filter(item => item.dedId == id).length > 0)\r\n return this.workflowIntegrateToList.filter(item => item.dedId == id)[0][\"dedDescription\"];\r\n else\r\n return '';\r\n }\r\n\r\n public getFileType() {\r\n this.workflowTemplateService.getCommonDEDAgainstDE(\"File Type\").subscribe(data => {\r\n this.fileTypeList = data;\r\n });\r\n }\r\n\r\n public getFileTypeName(id: number) {\r\n if (this.fileTypeList.filter(item => item.dedId == id).length > 0)\r\n return this.fileTypeList.filter(item => item.dedId == id)[0][\"dedDescription\"];\r\n else\r\n return '';\r\n }\r\n\r\n public attachmentClick() {\r\n if (this.wfInputDetails.schedule_Type != 3) {\r\n const dialog = this.dialog.open(FileUploadComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '50%',\r\n data: { projectId: this.projectId, docId: this.wfInputDetails.documentId, revisionNo: this.wfInputDetails.revisionNo, moduleName: 'EDMS', libraryName: FileUploadLibrary.WorkflowDocument, createdBy: this.memberId, documents: [{ value: this.wfInputDetails.documentId, text: this.wfInputDetails.documentNumber, revisionNo: this.wfInputDetails.revisionNo, task_SNo: this.wfInputDetails.taskSerialNumber }], isEditable: false },\r\n });\r\n dialog.afterClosed().subscribe((res: any) => {\r\n this.populateFileUploadGrid();\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"No addtional attachment provided for Standard Drawing documents\", \"Warning\");\r\n }\r\n }\r\n\r\n public populateFileUploadGrid() {\r\n if (this.currentTask.is_SignedCopy_Required == true) {\r\n let transmittalFileInput: any = {\r\n projectId: this.projectId,\r\n messageId: null,\r\n docId: this.wfInputDetails.documentId,\r\n revisionNo: this.wfInputDetails.revisionNo\r\n }\r\n this._fileService.GetFiles({ libraryNumber: 5, value: JSON.stringify(transmittalFileInput) })\r\n .subscribe((data: any[]) => {\r\n let returnData = data;\r\n this.fileCollection = [];\r\n for (let index = 0; index <= data.length; index++) {\r\n this.fileCollection.push({\r\n serial: index + 1,\r\n fileId: returnData[index].fileId,\r\n fileName: returnData[index].fileName,\r\n fileSize: returnData[index].fileSize,\r\n fileExtension: returnData[index].fileExtension,\r\n fileFullName: returnData[index].fileName + '.' + returnData[index].fileExtension,\r\n uploadedBy: returnData[index].createdBy,\r\n uploadedByName: returnData[index].createdByName,\r\n uploadedOn: this.getFormattedDate(returnData[index].createdOn),\r\n fileType: returnData[index].fileType,\r\n fileTypeName: this.getFileTypeName(returnData[index].fileType),\r\n isDeleteEnable: (returnData[index].task_SNo == this._wfDetails.taskSerialNumber) && (returnData[index].createdBy == this.memberId) ? true : false, // (returnData[index].createdBy == this.memberId) ? true : false, //(each.taskSerialNumber==this._wfDetails.taskSerialNumber)?true:false; \r\n urn: returnData[index].urn,\r\n isStandardDrawingDocument: returnData[index].isStandardDrawingDocument\r\n });\r\n }\r\n });\r\n\r\n } else {\r\n let fileInput = {\r\n projectId: this.projectId,\r\n docId: this.wfInputDetails.documentId,\r\n revisionNo: this.wfInputDetails.revisionNo\r\n }\r\n this._fileService.GetFiles({ libraryNumber: FileUploadLibrary.WorkflowDocument, value: JSON.stringify(fileInput) }).subscribe(\r\n data => {\r\n this.fileCollection = [];\r\n let returnData = data;\r\n for (let index = 0; index < returnData['length']; index++) {\r\n this.fileCollection.push({\r\n serial: index + 1,\r\n fileId: returnData[index].fileId,\r\n fileName: returnData[index].fileName,\r\n fileSize: returnData[index].fileSize,\r\n fileExtension: returnData[index].fileExtension,\r\n fileFullName: returnData[index].fileName + '.' + returnData[index].fileExtension,\r\n uploadedBy: returnData[index].createdBy,\r\n uploadedByName: returnData[index].createdByName,\r\n uploadedOn: this.getFormattedDate(returnData[index].createdOn),\r\n fileType: returnData[index].fileType,\r\n fileTypeName: this.getFileTypeName(returnData[index].fileType),\r\n isDeleteEnable: (returnData[index].task_SNo == this._wfDetails.taskSerialNumber) && (returnData[index].createdBy == this.memberId) ? true : false,\r\n urn: returnData[index].urn,\r\n isStandardDrawingDocument: returnData[index].isStandardDrawingDocument\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n public downloadFile(dataItem: any) {\r\n this.loaderService.isLoading.next(true);\r\n\r\n this._fileService.DownloadFile({ libraryNumber: FileUploadLibrary.WorkflowDocument, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe((res: any) => {\r\n this.loaderService.isLoading.next(false);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(res);\r\n downloadLink.download = dataItem.fileFullName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }, err => {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showToast(\"Error in downloading attachment, try after some time\", \"Warning\");\r\n })\r\n }\r\n\r\n public deleteFile(dataItem: any) {\r\n if (this.wfInputDetails.schedule_Type != 3) {\r\n this._notificationService.showPopup('Are you sure to delete', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this._fileService.DeleteFile({ libraryNumber: FileUploadLibrary.WorkflowDocument, fileId: dataItem.fileId, fileName: dataItem.fileFullName }).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode === 200) {\r\n this._notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else {\r\n this._notificationService.showToast(res.successMessage, \"Warning\");\r\n }\r\n this.populateFileUploadGrid();\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n this._notificationService.showToast(\"Cannot delete Standard Drawing documents\", \"Warning\");\r\n }\r\n }\r\n\r\n public isShow_checklist_option!: boolean;\r\n public populateChecklistGrid() {\r\n this.workflowTemplateService.getWorkflowDocumentCheckist(this.wfInputDetails.documentId, this.wfInputDetails.revisionNo, this.wfInputDetails.workflowId).subscribe((data) => {\r\n data.forEach((each: any) => {\r\n each['clFullName'] = each['clShortName'] + ' - ' + each['clName'];\r\n each['deleteicon'] = (each.taskSerialNumber == this._wfDetails.taskSerialNumber) && (each.uploadedBy == this.memberId) ? true : false;\r\n });\r\n this.selectedChecklistCollection = data;\r\n this.isShow_checklist_option = this.selectedChecklistCollection.length > 0 ? false : true;\r\n });\r\n }\r\n\r\n public async getPreviousChecklist() {\r\n let input = {\r\n 'doc_Id': this.wfInputDetails.documentId\r\n }\r\n this.PreviousChecklist = await this.workflowTemplateService.getChecklist(input).toPromise();\r\n\r\n let dialogRef = this.dialog.open(DocumentPreviousRevisionChecklistComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '70%',\r\n data: this.PreviousChecklist\r\n });\r\n dialogRef.afterClosed().subscribe((res) => {\r\n if (res.length > 0) {\r\n this.reciviedChecklist = res.filter((data: any) => data.isSelected == true);\r\n this.reciviedChecklist.forEach(value => {\r\n this.selectedChecklistCollection.push({\r\n documentId: this.wfInputDetails.documentId,\r\n documentNumber: this.wfInputDetails.documentNumber,\r\n documentTitle: this.wfInputDetails.documentTitle,\r\n documentRevisionNo: this.wfInputDetails.revisionNo,\r\n deleteicon: true,\r\n taskSerialNumber: this.wfInputDetails.taskSerialNumber,\r\n memberId: this._commonService.getLoggedInUserId(),\r\n workflowId: this.wfInputDetails.workflowId,\r\n clId: value.cL_Id,\r\n clRevisionNo: value.cL_Rev_No,\r\n clName: value.cL_Description,\r\n clShortName: value.cL_Short_Description,\r\n clFullName: value.clFullName,\r\n uploadedBy: this._commonService.getLoggedInUserId(),\r\n uploadedByName: this._commonService.getLoggedInUserName(),\r\n uploadedOn: new Date(),\r\n is_previous_checklist: true\r\n });\r\n })\r\n this.selectedChecklistCollection = this.getUnique(this.selectedChecklistCollection, 'clId');\r\n Array.prototype.push.apply(this.checklistCollection, this.selectedChecklistCollection);\r\n this.isShow_checklist_option = this.selectedChecklistCollection.length > 0 ? false : true;\r\n }\r\n });\r\n\r\n }\r\n\r\n getUnique(arr: any, comp: any) {\r\n // store the comparison values in array\r\n const unique = arr.map((e: any) => e[comp])\r\n // store the indexes of the unique objects\r\n .map((e: any, i: any, final: any) => final.indexOf(e) === i && i)\r\n // eliminate the false indexes & return unique objects\r\n .filter((e: any) => arr[e]).map((e: any) => arr[e]);\r\n return unique;\r\n }\r\n\r\n public onChange_Checklist(event: any) {\r\n\r\n if (event.value != \"-2\")\r\n this.selectedChecklist = event.value;\r\n else\r\n this.selectedChecklist = 0;\r\n }\r\n\r\n public onclick_AddChecklist() {\r\n if (!this.addCheckList) {\r\n if (this.selectedChecklist == null || this.selectedChecklist <= 0) {\r\n this._notificationService.showToast('Please Select Check List', \"Warning\");\r\n return;\r\n }\r\n let selectedCheckList: any = null;\r\n if (this.checklistCollection.filter((item: any) => item.clId == this.selectedChecklist).length > 0)\r\n selectedCheckList = this.checklistCollection.filter((item: any) => item.clId == this.selectedChecklist)[0];\r\n if (selectedCheckList) {\r\n if (this.selectedChecklistCollection.filter(x => x.clId == selectedCheckList.clId).length == 0)\r\n this.selectedChecklistCollection.push({\r\n documentId: this.wfInputDetails.documentId,\r\n documentNumber: this.wfInputDetails.documentNumber,\r\n documentTitle: this.wfInputDetails.documentTitle,\r\n documentRevisionNo: this.wfInputDetails.revisionNo,\r\n deleteicon: true,\r\n taskSerialNumber: this.wfInputDetails.taskSerialNumber,\r\n memberId: this._commonService.getLoggedInUserId(),\r\n workflowId: this.wfInputDetails.workflowId,\r\n clId: selectedCheckList.clId,\r\n clRevisionNo: selectedCheckList.revisionNo,\r\n clName: selectedCheckList.clDescription,\r\n clShortName: selectedCheckList.clShortDescription,\r\n clFullName: selectedCheckList.clFullDescription,\r\n uploadedBy: this._commonService.getLoggedInUserId(),\r\n uploadedByName: this._commonService.getLoggedInUserName(),\r\n uploadedOn: new Date(),\r\n is_previous_checklist: false\r\n });\r\n // this.getChecklistData(); \r\n }\r\n this.isShow_checklist_option = this.selectedChecklistCollection.length > 0 ? false : true;\r\n this.selectedChecklist = -2;\r\n }\r\n }\r\n\r\n public async openChecklistItems(dataItem: any) {\r\n let assign = dataItem;\r\n let assignedvalue =\r\n {\r\n 'documentId': assign.documentId,\r\n 'documentRevisionNo': assign.documentRevisionNo,\r\n 'memberId': assign.memberId,\r\n 'clRevisionNo': assign.clRevisionNo,\r\n 'workflowId': assign.workflowId,\r\n 'taskSerialNumber': assign.taskSerialNumber,\r\n 'currentTaskSerialNumber': this._wfDetails.taskSerialNumber\r\n }\r\n\r\n if (dataItem.is_previous_checklist == true) {\r\n let getprevious = this.PreviousChecklist.filter(x => x.cL_Description == dataItem.clName)[0];\r\n let workflownew =\r\n {\r\n 'documentId': getprevious.doc_Id,\r\n 'documentRevisionNo': getprevious.revision_No,\r\n 'clId': getprevious.cL_Id,\r\n 'clRevisionNo': getprevious.cL_Rev_No\r\n }\r\n\r\n this.checklistselectedvalue = [];\r\n this.checklistselectedvalue = await this.workflowTemplateService.getWorkflowChecklistItem(workflownew).toPromise();\r\n\r\n this.workflowTemplateService.getWorkflowDocumentCheckist(getprevious.doc_Id, getprevious.revision_No, this.checklistselectedvalue[0].workflowId).subscribe((data) => {\r\n data.forEach((each: any) => {\r\n each['clFullName'] = each['clShortName'] + ' - ' + each['clName'];\r\n });\r\n this.previouswithvalue = data.filter((x: any) => x.clShortName == getprevious.cL_Short_Description)[0];\r\n let inputdata = this.previouswithvalue;\r\n\r\n let dialogRef = this.dialog.open(RespondWorflowChecklistItemsComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputdata, isReadMode: false, assignedvalue, isPerviousChecklist: dataItem.is_previous_checklist }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data: any) => {\r\n if (data) {\r\n if (this.getpopupValue[0]) {\r\n let itemToBeDelete = this.getpopupValue.filter((x: any) => x.currentpopupcl_Description == data.currentpopupcl_Description);\r\n\r\n if (itemToBeDelete.length > 0)\r\n this.getpopupValue.splice(this.getpopupValue.indexOf(itemToBeDelete), 1);\r\n }\r\n this.getpopupValue.push(data);\r\n }\r\n if (data.result == true) {\r\n dataItem.is_previous_checklist = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n // if(dataItem.is_previous_checklist == null || dataItem.is_previous_checklist == false)\r\n else {\r\n let inputdata = dataItem;\r\n let dialogRef = this.dialog.open(RespondWorflowChecklistItemsComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputdata, isReadMode: false, assignedvalue }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n if (data) {\r\n if (this.getpopupValue[0]) {\r\n let itemToBeDelete = this.getpopupValue.filter((x: { currentpopupcl_Description: any; }) => x.currentpopupcl_Description == data.currentpopupcl_Description);\r\n\r\n if (itemToBeDelete.length > 0)\r\n this.getpopupValue.splice(this.getpopupValue.indexOf(itemToBeDelete), 1);\r\n }\r\n this.getpopupValue.push(data);\r\n if (data.copy_checklistItem) {\r\n let i = this.selectedChecklistCollection.findIndex(x => x.clId == data.copy_checklistItem[0].clId && x.documentId == data.copy_checklistItem[0].documentId)\r\n this.selectedChecklistCollection[i][\"copy_checklistItem\"] = data.copy_checklistItem;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public deleteChecklist(dataItem: any) {\r\n if (dataItem.uploadedBy != this._commonService.getLoggedInUserId()) {\r\n this._notificationService.showToast('Checklist attached by another user, delete access restricted', \"Warning\");\r\n return;\r\n }\r\n\r\n this._notificationService.showPopup('Are you sure to delete', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.selectedChecklistCollection.forEach((value, index) => {\r\n if (value.clId == dataItem.clId) {\r\n this.workflowTemplateService.deleteWorkflowDocumentCheckist(dataItem.documentId, dataItem.documentRevisionNo, dataItem.clId, dataItem.clRevisionNo, this.memberId).subscribe(data => {\r\n if (data[\"successCode\"] == 200) {\r\n this.selectedChecklistCollection.splice(index, 1);\r\n\r\n if (this.getpopupValue[0]) {\r\n let itemToBeDelete = this.getpopupValue.filter((x: any) => x.currentpopupcl_Description == value.clName);\r\n\r\n if (itemToBeDelete.length > 0)\r\n this.getpopupValue.splice(this.getpopupValue.indexOf(itemToBeDelete), 1);\r\n }\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n this.isShow_checklist_option = this.selectedChecklistCollection.length == 0 ? true : false;\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Warning\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n checklistItemList: any[] = [];\r\n\r\n public BulkSubmit(datalist: any): boolean | void {\r\n this.isForReAssignment = false;\r\n if (datalist && datalist._results.length > 0) {\r\n this.Postobj = [];\r\n\r\n for (let element of datalist._results) {\r\n\r\n if (!element.Actiondetails) {\r\n let _docno = element._wfDetails.documentNumber;\r\n this._notificationService.showToast(_docno + \" - Please Select Action.\", 'Warning');\r\n return false;\r\n }\r\n\r\n let responce = this.bulk_action(element.Actiondetails, element.wfInputDetails, element);\r\n if (responce)\r\n this.Postobj.push(responce);\r\n else {\r\n this.Postobj = [];\r\n return false;\r\n }\r\n }\r\n\r\n if (this.Postobj && this.Postobj.length > 0)\r\n this.Postobj.forEach(obj => {\r\n this.Bulk_assignNextStep(obj._respondWorkflowDetails, obj.action, obj.Currentobj);\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n public onclick_action(action: WorkflowActionModel, getValue: any, doc_no = \"\") {\r\n\r\n if (action.action_Description.toUpperCase().includes('APPROVE') == true) {\r\n this.delayReasonValid = this.getFormValue('delayReasonDD', this.drForm);\r\n let drcomments: string = this.getFormValue('txtDRC', this.drForm);\r\n let ircomments: string = this.getFormValue('txtIRC', this.drForm);\r\n let ercomments: string = this.getFormValue('txtERC', this.drForm);\r\n\r\n if (this.isDueOnRequired && this.isDelayed && (this.delayReasonDD == undefined || this.delayReasonDD == 0 || this.delayReasonDD == -2)) {\r\n this.drForm.get('delayReasonDD')?.markAsTouched();\r\n this._notificationService.showToast(\"Delay Reason is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.isDueOnRequired && this.isDelayed && this.delayReasonDD > 0) {\r\n if (this.delayReasonDD == 1 && ((!!drcomments && drcomments.length < 1) || (drcomments == null || drcomments == undefined))) {\r\n this.drForm.get('txtDRC')?.markAsTouched();\r\n this._notificationService.showToast(\"Delay Reason Comments is mandatory.\", 'Warning');\r\n return;\r\n }\r\n if (this.delayReasonDD == 2 && ((!!ircomments && ircomments.length < 1) || (ircomments == null || ircomments == undefined))) {\r\n this.drForm.get('txtIRC')?.markAsTouched();\r\n this._notificationService.showToast(\"Internal Reason Comments is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.delayReasonDD == 3 && ((!!ercomments && ercomments.length < 1) || (ercomments == null || ercomments == undefined))) {\r\n this.drForm.get('txtERC')?.markAsTouched();\r\n this._notificationService.showToast(\"External Reason Comments is mandatory.\", 'Warning');\r\n return;\r\n }\r\n }\r\n\r\n if (this.isCompletedOnManulRequired && this.selectedCompletedOnDate == null) {\r\n this._notificationService.showToast(\"Completed on date selection is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n let availableFileListForCurrentUser = this.fileCollection.filter(x => x.isDeleteEnable == true);\r\n if (this.isAttachmentRequired && availableFileListForCurrentUser.length <= 0) {\r\n this._notificationService.showToast(\"Attachment is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.Checklist == \"A\") {\r\n if (this.isChecklistRequired && this.checklistCollection.length <= 0 && this.selectedChecklistCollection.length <= 0) {\r\n this._notificationService.showToast(\"Checklist inclusion is mandatory.\", 'Warning');\r\n return;\r\n }\r\n if (this.isChecklistRequired && this.checklistCollection.length > 0) {\r\n if (this.selectedChecklistCollection.length <= 0) {\r\n this._notificationService.showToast(\"Checklist inclusion is mandatory\", 'Warning');\r\n return;\r\n }\r\n if (this.selectedChecklistCollection.length != 0) {\r\n if (!this.getpopupValue[0]) {\r\n this._notificationService.showToast(\"Some of the checklist included but not considered its items, please check\", 'Warning');\r\n return;\r\n }\r\n\r\n for (let i = 0; i < this.selectedChecklistCollection.length; i++) {\r\n let isChecklistConsidered = this.getpopupValue.filter((x: any) => x.currentpopupcl_Description == this.selectedChecklistCollection[i][\"clName\"].toString() && x.checked_Allvalue == false).length;\r\n if (isChecklistConsidered == 0) {\r\n this._notificationService.showToast(\"Some of the checklist included but not considered its items, please check\", 'Warning');\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.isCommentSheetRequired && (this.isCommentSheetno == null || this.isCommentSheetno.replace(/\\s/g, \"\") == \"\")) {\r\n this._notificationService.showToast(\"Transmittal Number is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.isTenderQuantityRequired && this.isQuantityApplicable.toUpperCase().trim() == 'A') {\r\n\r\n if (this.getTQpopupvalue == false) {\r\n\r\n this._notificationService.showToast(\"Tender Quantity inclusion is mandatory.\", 'Warning');\r\n\r\n return;\r\n }\r\n }\r\n }\r\n else if (action.action_Description.toUpperCase().includes('HOLD') == true) {\r\n if (this.holdReason != null && this.holdReason != \"\") {\r\n let inputhold = {\r\n doc_Id: getValue.documentId,\r\n revision_No: getValue.revisionNo,\r\n task_Sl_No: getValue.taskSerialNumber,\r\n is_On_Hold: true,\r\n holded_By: this.memberId,\r\n holded_On: new Date(),\r\n reason_for_Hold: this.holdReason\r\n };\r\n this.workflowTemplateService.holdWorkflow(inputhold).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this._notificationService.showToast(\"Document Holded Successfully\", 'Success');\r\n this.closeTab.emit();\r\n this.holdReason = null;\r\n }\r\n else {\r\n this._notificationService.showToast(\"Error in Holding the Document\", 'Error');\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n this._notificationService.showToast(\"Holding Reason is Mandatory\", 'Warning');\r\n return;\r\n }\r\n }\r\n\r\n if (this.Can_Update_DCI_Progress_Level && (this.SelectedProgressLevel == 0 || this.SelectedProgressLevel == -2)) {\r\n this._notificationService.showToast(\"Progress Level is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.isApprovalStatusRequired && (this.selectedDocCategoryValue == 0 || this.selectedDocCategoryValue == -2)) {\r\n this._notificationService.showToast(\"Approval Status is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (action.enable_Tag && !this.revForm.valid) {\r\n this._notificationService.showToast(\"Revise revision details are mandatory to fill.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.isDTNPreparation) {\r\n this._notificationService.showToast(\"Please complete this step through DTN Preparation page\", 'Warning');\r\n return;\r\n }\r\n\r\n if (this.isDTNRelease) {\r\n this._notificationService.showToast(\"Please complete this step through DTN Release page\", 'Warning');\r\n return;\r\n }\r\n\r\n this._notificationService.showPopup('Are you sure to perform the clicked action', 'Confirm').then(data => \r\n {\r\n if (data == 'yes') {\r\n\r\n this.current_subWf = getValue.subWorkflow;\r\n this.next_subWf = action.next_Step_Sub_Workflow;\r\n this.supersede_enabled = action.enable_Tag==1 ? true : false;\r\n this.current_RevNo = getValue.revisionNo;\r\n \r\n\r\n if((this.current_subWf != null || undefined) && (this.next_subWf != null || undefined) && (this.current_subWf != this.next_subWf) )\r\n {\r\n this.stageChange = true;\r\n let next_subWf = action.next_Step_Sub_Workflow;\r\n let dciRevisionList = this.dciRevisionList.filter(x => x.stageId == next_subWf);\r\n this.next_RevNo = dciRevisionList[0].revisionNo ? dciRevisionList[0].revisionNo : null;\r\n }\r\n\r\n let currentActionDetails = this.currentWorkflowDetails.workflowAction.filter(item => item.task_Id == getValue.currentTaskId && item.action_Id == action.action_Id);\r\n let _respondWorkflowDetails: any = { \"projectId\": 0, \"groupId\": 0, respondWorkflowDetails: [], createdBy: 0, stageDetails: [] };\r\n let obj: any = {};\r\n obj[\"documentId\"] = getValue.documentId;\r\n obj[\"revisionNumber\"] = getValue.revisionNo;\r\n // obj[\"nextRevisionNumber\"] = !this.isDocSetRequired ? this.revForm.get('formRevision')?.value : null;\r\n obj[\"nextRevisionNumber\"] = (!this.isDocSetRequired || this.next_RevNo )? (this.supersede_enabled && !this.stageChange ? this.revForm.get('formRevision')?.value : this.next_RevNo) : null;\r\n obj[\"workflowId\"] = getValue.workflowId;\r\n obj[\"TaskId\"] = getValue.currentTaskId;\r\n obj[\"assignType\"] = getValue.assignedType;\r\n obj[\"memberId\"] = getValue.assignedToId;\r\n obj[\"actionPerformed\"] = action.action_Id;\r\n obj[\"completedBy\"] = this.memberId;\r\n obj[\"statusId\"] = currentActionDetails[0].status_Id;\r\n obj[\"completedOn\"] = this.isCompletedOnManulRequired ? this.selectedCompletedOnDate : null;\r\n obj[\"commentSheetNo\"] = this.isCommentSheetno ? this.isCommentSheetno : null;\r\n obj[\"comments\"] = getValue.comments;\r\n obj[\"delayReason\"] = getValue.delayReason;\r\n obj[\"internalReason\"] = getValue.internalReason;\r\n obj[\"externalReason\"] = getValue.externalReason;\r\n obj[\"isFileAvailable\"] = this.fileCollection.filter(x => x.isDeleteEnable == true).length > 0 ? true : false\r\n obj[\"taskSlNo\"] = getValue.taskSerialNumber;\r\n obj[\"ProgressLevel\"] = this.SelectedProgressLevel ? this.SelectedProgressLevel : null;\r\n\r\n _respondWorkflowDetails.projectId = getValue.projectId;\r\n _respondWorkflowDetails.groupId = getValue.groupId;\r\n _respondWorkflowDetails.createdBy = this.memberId;\r\n\r\n _respondWorkflowDetails.stageDetails = this.LatestStageDetails.map(x => { x.scheduled_On = this._datepipe.transform(x.scheduled_On, 'dd-MMM-yyyy'), x.revisedScheduled_On = (x.revisedScheduled_On ? this._datepipe.transform(x.revisedScheduled_On, 'dd-MMM-yyyy') : null), x.minScheduled_On = (x.minScheduled_On ? this._datepipe.transform(x.minScheduled_On, 'dd-MMM-yyyy') : null), x.maxScheduled_On = (x.maxScheduled_On ? this._datepipe.transform(x.maxScheduled_On, 'dd-MMM-yyyy') : null); return x });\r\n\r\n if (action.action_Description == 'Approve' && this.isTransmittalRequired) {\r\n let dialogRef = this.dialog.open(CreateTransmittalComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createTransmittal', doc_Id: getValue.documentId, revision_No: getValue.revisionNo, doc_No: getValue.documentNumber, doc_Title: getValue.documentTitle, selectedDispline: getValue.documentDisciplineId, is_Workflow: true, selectedList: [] },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n if (data != null && data != undefined) {\r\n obj[\"commentSheetNo\"] = data;\r\n _respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n this.assignNextStep(_respondWorkflowDetails, action);\r\n }\r\n else {\r\n this._notificationService.showToast(\"Failed to create Transmittal\", \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n _respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n this.assignNextStep(_respondWorkflowDetails, action);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public assignNextStep(_respondWorkflowDetails: any, action: WorkflowActionModel) {\r\n this.show = false\r\n this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails).subscribe(data => {\r\n if (data[\"successCode\"] == 200) {\r\n let isChangeUserPopupToShow = Boolean(JSON.parse(data[\"result\"].toString().split(',')[0]));\r\n let _nextStepId = parseInt(JSON.parse(data[\"result\"].toString().split(',')[1]));\r\n\r\n if (this.isApprovalStatusRequired) {\r\n let docCategoryModel: IWFDocCategoryModel = {\r\n docId: this.wfInputDetails.documentId,\r\n revisionNo: this.wfInputDetails.revisionNo,\r\n docCategory: this.selectedDocCategoryValue,\r\n userId: this.memberId\r\n }\r\n this.workflowTemplateService.UpdateWorkflowDocumentCategory(docCategoryModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 500) {\r\n this._notificationService.showToast(res.result, \"Error\");\r\n return;\r\n }\r\n });\r\n }\r\n //Update No of Sheets\r\n if (this.isNoOfSheetsRequired) {\r\n let noOfSheetsModel: IDCINoOfSheetsModel = {\r\n docId: this.wfInputDetails.documentId,\r\n revisionNo: this.wfInputDetails.revisionNo,\r\n noOfSheets: this.wfInputDetails.noOfSheets,\r\n userId: this.memberId\r\n }\r\n this.workflowTemplateService.UpdateDCINoOfSheets(noOfSheetsModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 500) {\r\n this._notificationService.showToast(res.result, \"Error\");\r\n return;\r\n }\r\n });\r\n }\r\n\r\n //update superseded revision details\r\n if (action.enable_Tag && this.revForm.valid) {\r\n let supersedeRevDetails: IDCISupersedeRevDetailsModel = {\r\n docId: this.wfInputDetails.documentId,\r\n docStatus: this.revForm.get('dciStatus')?.value.dedId,\r\n userId: this.memberId,\r\n printSize: this.revForm.get('printSize')?.value.dedId,\r\n revCategory: this.revForm.get('revCategory')?.value.revCategoryId,\r\n comments: this.revForm.get('comments')?.value,\r\n noOfSheets: this.revForm.get('noOfSheets')?.value == null ? 0 : this.revForm.get('noOfSheets')?.value\r\n }\r\n this._dciService.UpdateSupersedeRevisionDetails(supersedeRevDetails).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 500) {\r\n this._notificationService.showToast(\"Failed to update supersede revision details\", \"Error\");\r\n }\r\n })\r\n }\r\n\r\n let stepDetail: WorkflowTemplateStatusInputModel = this.currentWorkflowDetails.workflowStatus.filter(x => x.step_Id == _nextStepId)[0];\r\n\r\n let isSetpForReassignment: Boolean = stepDetail.is_Step_For_Reassignment;\r\n if (!!stepDetail && isChangeUserPopupToShow && this.isForReAssignment && isSetpForReassignment) {\r\n let nextStepAssignedToRoles: WorkflowAssignedToModel[] = this.currentWorkflowDetails.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type == 1).filter(r => r.role_Id > 0);\r\n let nextStepAssignedToMembers: WorkflowAssignedToModel[] = this.currentWorkflowDetails.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type == 1).filter(r => r.role_Id == 0 && r.member_Id > 0);\r\n //other Discipline SH removal for B&f\r\n if(stepDetail.workflow_Status_Description==\"Other Discipline Approval\" && this._commonService.getCurrentProjectDetails().icDescription==\"BF - Buildings & Factories\")\r\n {\r\n this._projService.getProjectElementDetails({\r\n projectId: this.projectId,\r\n groupId: this.groupId,\r\n moduleId: Module.ScheduleDocument,\r\n deDescription: 'Role'\r\n }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n if(res &&res.length>0&& res.some(x=>x.dedDescription.trim()==\"Other Discipline SH\"))\r\n {\r\n let otherDisciplineRole :any[]=[];\r\n otherDisciplineRole.push({\r\n \r\n \"workflow_Id\": this.currentWorkflowDetails.workflowAssignedTo[0].workflow_Id,\r\n \"task_Id\": this.currentWorkflowDetails.workflowAssignedTo[0].task_Id,\r\n \"member_Id\": 0,\r\n \"member_Name\": \"\",\r\n \"role_Id\": res.filter(x=>x.dedDescription.trim()==\"Other Discipline SH\")[0].dedId,\r\n \"role_Description\": \"Other Discipline Approval\",\r\n \"group_Id\": this.currentWorkflowDetails.workflowAssignedTo[0].group_Id,\r\n \"assign_Type\": 1,\r\n \"assign_Order\": 1,\r\n \"is_Active\": true\r\n \r\n });\r\n let dialogrRef = this.dialog.open(WFActionAssignedToComponent, {\r\n panelClass: 'mat-dialog-secondary', width: '800px',\r\n data: { docId: this.wfInputDetails.documentId, docNo: this.wfInputDetails.documentNumber, revisionNo: this.wfInputDetails.revisionNo, docDiscipline: this.wfInputDetails.documentDisciplineId, docDisciplineDEId: this.wfInputDetails.documentDisciplineDEId, nextStep: stepDetail, assignedToRoles: otherDisciplineRole, assignedToMembers: null, isReassign: false,\r\n \"is_multi_disciplie_sh\":true }, autoFocus: false, disableClose: true\r\n });\r\n dialogrRef.afterClosed().subscribe((x: any) => {\r\n this.afterDailogClose(x, data);\r\n });\r\n }\r\n \r\n }); \r\n \r\n\r\n }\r\n //end\r\n else if (!!nextStepAssignedToRoles && nextStepAssignedToRoles.length > 0) {\r\n let dialogrRef = this.dialog.open(WFActionAssignedToComponent, {\r\n panelClass: 'mat-dialog-secondary', width: '800px',\r\n data: { docId: this.wfInputDetails.documentId, docNo: this.wfInputDetails.documentNumber, revisionNo: this.wfInputDetails.revisionNo, docDiscipline: this.wfInputDetails.documentDisciplineId, docDisciplineDEId: this.wfInputDetails.documentDisciplineDEId, nextStep: stepDetail, assignedToRoles: nextStepAssignedToRoles, assignedToMembers: nextStepAssignedToMembers && nextStepAssignedToMembers.length > 0 ? nextStepAssignedToMembers : null, isReassign: false }, autoFocus: false, disableClose: true\r\n });\r\n dialogrRef.afterClosed().subscribe((x: any) => {\r\n this.afterDailogClose(x, data);\r\n })\r\n }\r\n else if (!!nextStepAssignedToMembers && nextStepAssignedToMembers.length > 0) {\r\n let dialogrRef = this.dialog.open(WFActionAssignedToComponent, {\r\n panelClass: 'mat-dialog-secondary', width: '800px',\r\n data: { docId: this.wfInputDetails.documentId, docNo: this.wfInputDetails.documentNumber, revisionNo: this.wfInputDetails.revisionNo, docDiscipline: this.wfInputDetails.documentDisciplineId, docDisciplineDEId: this.wfInputDetails.documentDisciplineDEId, nextStep: stepDetail, assignedToRoles: null, assignedToMembers: nextStepAssignedToMembers, isReassign: false }, autoFocus: false, disableClose: true\r\n });\r\n dialogrRef.afterClosed().subscribe((x: any) => {\r\n this.afterDailogClose(x, data);\r\n })\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n this.closeTab.emit();\r\n }\r\n }\r\n else {\r\n this.SendMailOnActionCompletion(-1, stepDetail, data);\r\n }\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Warning\")\r\n }\r\n this.show = true;\r\n });\r\n }\r\n\r\n public SendMailOnActionCompletion(data: any, stepDetails: WorkflowTemplateStatusInputModel, successData: any, Currentobj?: any) {\r\n if (stepDetails) {\r\n let reqData: any = {\r\n projectId: this._commonService.getProjectId(),\r\n groupId: this.groupId,\r\n documentId: (Currentobj && Currentobj.wfInputDetails ? Currentobj.wfInputDetails.documentId : this.wfInputDetails.documentId),\r\n documentRevision: (Currentobj && Currentobj.wfInputDetails ? Currentobj.wfInputDetails.revisionNo : this.wfInputDetails.revisionNo),\r\n workflowId: stepDetails.workflow_Id,\r\n createdBy: this._commonService.getLoggedInUserId()\r\n };\r\n this.workflowTemplateService.SendMailOnActionCompletion(reqData).subscribe((res: StandardOutputModel) => {\r\n this.afterDailogClose(data, successData);\r\n })\r\n }\r\n else { /*For WF last step*/\r\n this.afterDailogClose(data, successData);\r\n }\r\n }\r\n\r\n public afterDailogClose(x: any, data: any) {\r\n if (!!x && x == \"-1\") {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n if (this.Postobj && this.Postobj.length > 0)\r\n this.Postobj.shift();\r\n\r\n if (!this.Postobj || this.Postobj.length == 0)\r\n this.closeTab.emit();\r\n }\r\n else {\r\n if (!!x && x.successCode == 200) {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n if (this.Postobj && this.Postobj.length > 0)\r\n this.Postobj.shift();\r\n\r\n if (!this.Postobj || this.Postobj.length == 0)\r\n this.closeTab.emit();\r\n }\r\n else {\r\n this._notificationService.showToast(\"Failed to update next step user\", \"Warning\");\r\n }\r\n }\r\n }\r\n\r\n public viewFile(dataItem: any) {\r\n let dialogRef = this.dialog.open(ForgeViewerComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n width: '900px',\r\n data: { fileUrn: dataItem.urn }\r\n });\r\n }\r\n\r\n public openTenderQuantity() {\r\n let dialogRef = this.dialog.open(WorkflowTenderQuantityComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '50',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n disableClose: true,\r\n data: { documentId: this.wfInputDetails.documentId, docNo: this.wfInputDetails.documentNumber, revisionNo: this.wfInputDetails.revisionNo, isReadMode: false }\r\n });\r\n dialogRef.afterClosed().subscribe((data) => {\r\n if (data == true) {\r\n this.getTQpopupvalue = true;\r\n }\r\n else {\r\n this.getTQpopupvalue = false;\r\n }\r\n });\r\n }\r\n\r\n onQuantityChange(value: any) {\r\n this.isQuantityApplicable = value;\r\n if (value == \"A\") {\r\n }\r\n }\r\n\r\n checkListChange(value: any) {\r\n this.Checklist = value;\r\n this.addCheckList = value == \"A\" ? false : true;;\r\n }\r\n public getElementDetails(elementName: string, ModuleId?: number) {\r\n if (!ModuleId)\r\n ModuleId = Module.ScheduleDocument\r\n this._projService.getProjectElementDetails({ projectId: this.projectId, groupId: this.groupId, moduleId: ModuleId, deDescription: elementName })\r\n .subscribe((res: IProjectElementDetailsOutput[]) => {\r\n switch (elementName) {\r\n case \"Print Size\":\r\n this.printSizeList = res;\r\n if (!!this.wfInputDetails.printSize) {\r\n let printSize = this.printSizeList.filter(data => data.dedId == this.wfInputDetails.printSize)[0];\r\n this.revForm.get('formPrintSize')?.setValue(printSize.dedDescription);\r\n this.revForm.get('printSize')?.setValue(printSize);\r\n }\r\n break;\r\n case \"Status\":\r\n this.dciStatusList = res;\r\n if (!!this.wfInputDetails.status) {\r\n let status = this.dciStatusList.filter(data => data.dedId == this.wfInputDetails.status)[0];\r\n this.revForm.get('formDciStatus')?.setValue(status.dedDescription);\r\n this.revForm.get('dciStatus')?.setValue(status);\r\n }\r\n break;\r\n case \"Progress Level\":\r\n this.ProgressLevelsList = res;\r\n break;\r\n case \"Document Category\":\r\n this.docCategoryList = res;\r\n break;\r\n }\r\n }, err => { });\r\n }\r\n\r\n public GetProgressLevel(selectedText: any) {\r\n if (selectedText.value != '-2') {\r\n this.SelectedProgressLevel = selectedText.value;\r\n }\r\n else {\r\n this.SelectedProgressLevel = 0;\r\n }\r\n }\r\n\r\n public getDocCategoryValue(selectedText: any) {\r\n if (selectedText.value != '-2') {\r\n let obj = {\r\n \"workflow_Id\": this.wfInputDetails.workflowId,\r\n \"task_Id\": this.wfInputDetails.currentTaskId,\r\n \"action_Id\": 0,\r\n \"category_Id\": selectedText.value,\r\n \"category_Description\": selectedText.text,\r\n \"is_Active\": true\r\n }\r\n this.workflowTemplateService.getWorkflowCategory(obj).subscribe(data => {\r\n this.currentWorkflowDetails.workflowAction.forEach((val: any) => val[\"set_disable\"] = true);\r\n if (!!data) {\r\n data.forEach((element: any) => {\r\n this.currentWorkflowDetails.workflowAction.forEach((val: any) => {\r\n if (element.task_Id == this.wfInputDetails.currentTaskId) {\r\n if (element.action_Id == val.action_Id) {\r\n val[\"set_disable\"] = false;\r\n }\r\n }\r\n })\r\n });\r\n } else {\r\n this.currentWorkflowDetails.workflowAction.forEach((val: any) => val[\"set_disable\"] = false);\r\n }\r\n this.ListofActiondetails = this.currentWorkflowDetails.workflowAction.filter((val: any) => val.task_Id == this.wfInputDetails.currentTaskId && val[\"set_disable\"] == false);\r\n })\r\n } else {\r\n this.currentWorkflowDetails.workflowAction.forEach((val: any) => val[\"set_disable\"] = false);\r\n this.ListofActiondetails = this.currentWorkflowDetails.workflowAction.filter((val: any) => val.task_Id == this.wfInputDetails.currentTaskId && val[\"set_disable\"] == false);\r\n }\r\n this.selectedDocCategoryValue = selectedText.value;\r\n }\r\n\r\n getFormValue(controlName: string, formGroup: FormGroup): any {\r\n return formGroup.get(controlName)?.value;\r\n }\r\n\r\n public onClick_WorkflowHistory(dataItem: any) {\r\n let dialogRef = this.dialog.open(ScheduleWorkflowhistoryComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: dataItem\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n });\r\n }\r\n\r\n ShowICSpecific_Checklist() {\r\n if (this.isShowICSpecific) {\r\n this.getCheckList(this.wfInputDetails.groupId, this.wfInputDetails.documentDisciplineId, null, null, this.projectId);\r\n }\r\n else {\r\n this.getCheckList(this.wfInputDetails.groupId, this.wfInputDetails.documentDisciplineId, null, null, this.projectId);\r\n }\r\n }\r\n\r\n async getProjectStaticElements() {\r\n await this._projService.getProjectElements({ projectId: this.projectId, groupId: this.groupId, moduleId: Module.ScheduleDocument, IsQueryForStaticElement: true }).toPromise().then(\r\n (res: IProjectElementsOutput[]) => {\r\n if (res.length > 0) {\r\n this.projectStaticElements = res;\r\n let isDocSetRequiredElement = this.projectStaticElements.filter(x => x.elementDescription == \"IsDocSetRequired\")[0];\r\n if (!!isDocSetRequiredElement) {\r\n this.isDocSetRequired = isDocSetRequiredElement.isMandatory;\r\n }\r\n }\r\n }, err => {\r\n this._notificationService.showToast(\"failed to get static element details\", \"Warning\");\r\n });\r\n }\r\n\r\n setStageDate(selectedStageDate: any, stage: ILatestStageDetails) {\r\n stage.updatedScheduled_On = selectedStageDate.value;\r\n }\r\n\r\n\r\n\r\n public bulk_action(action: WorkflowActionModel, getValue: any, Currentobj: any): object | undefined | any {\r\n let _docno = Currentobj._wfDetails.documentNumber;\r\n //desc\r\n if (action.action_Description.toUpperCase().includes('APPROVE') == true) {\r\n Currentobj.delayReasonValid = this.getFormValue('delayReasonDD', Currentobj.drForm);\r\n let drcomments: string = this.getFormValue('txtDRC', Currentobj.drForm);\r\n let ircomments: string = this.getFormValue('txtIRC', Currentobj.drForm);\r\n let ercomments: string = this.getFormValue('txtERC', Currentobj.drForm);\r\n\r\n if (Currentobj.isDueOnRequired && Currentobj.isDelayed && (Currentobj.delayReasonDD == undefined || Currentobj.delayReasonDD == 0 || Currentobj.delayReasonDD == -2)) {\r\n Currentobj.drForm.get('delayReasonDD').markAsTouched();\r\n this._notificationService.showToast(_docno + \" - Delay Reason is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.isDueOnRequired && Currentobj.isDelayed && Currentobj.delayReasonDD > 0) {\r\n if (Currentobj.delayReasonDD == 1 && ((!!drcomments && drcomments.length < 1) || (drcomments == null || drcomments == undefined))) {\r\n Currentobj.drForm.get('txtDRC').markAsTouched();\r\n this._notificationService.showToast(_docno + \" - Delay Reason Comments is mandatory.\", 'Warning');\r\n return;\r\n }\r\n if (Currentobj.delayReasonDD == 2 && ((!!ircomments && ircomments.length < 1) || (ircomments == null || ircomments == undefined))) {\r\n Currentobj.drForm.get('txtIRC').markAsTouched();\r\n this._notificationService.showToast(_docno + \" - Internal Reason Comments is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.delayReasonDD == 3 && ((!!ercomments && ercomments.length < 1) || (ercomments == null || ercomments == undefined))) {\r\n Currentobj.drForm.get('txtERC').markAsTouched();\r\n this._notificationService.showToast(_docno + \" - External Reason Comments is mandatory.\", 'Warning');\r\n return;\r\n }\r\n }\r\n\r\n if (Currentobj.isCompletedOnManulRequired && Currentobj.selectedCompletedOnDate == null) {\r\n this._notificationService.showToast(_docno + \" - Completed on date selection is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n let availableFileListForCurrentUser = Currentobj.fileCollection.filter((x: any) => x.isDeleteEnable == true);\r\n if (Currentobj.isAttachmentRequired && availableFileListForCurrentUser.length <= 0) {\r\n this._notificationService.showToast(_docno + \" - Attachment is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.Checklist == \"A\") {\r\n if (Currentobj.isChecklistRequired && Currentobj.checklistCollection.length <= 0 && Currentobj.selectedChecklistCollection.length <= 0) {\r\n this._notificationService.showToast(_docno + \" - Checklist inclusion is mandatory.\", 'Warning');\r\n return;\r\n }\r\n if (Currentobj.isChecklistRequired && Currentobj.checklistCollection.length > 0) {\r\n if (Currentobj.selectedChecklistCollection.length <= 0) {\r\n this._notificationService.showToast(_docno + \" - Checklist inclusion is mandatory\", 'Warning');\r\n return;\r\n }\r\n if (Currentobj.selectedChecklistCollection.length != 0) {\r\n\r\n if (!this.is_checklistCopied) {\r\n if (!Currentobj.getpopupValue[0]) {\r\n this._notificationService.showToast(_docno + \" - Some of the checklist included but not considered its items, please check\", 'Warning');\r\n return;\r\n }\r\n\r\n for (let i = 0; i < Currentobj.selectedChecklistCollection.length; i++) {\r\n let isChecklistConsidered = Currentobj.getpopupValue.filter((x: any) => x.currentpopupcl_Description == Currentobj.selectedChecklistCollection[i][\"clName\"].toString() && x.checked_Allvalue == false).length;\r\n if (isChecklistConsidered == 0) {\r\n this._notificationService.showToast(_docno + \" - Some of the checklist included but not considered its items, please check\", 'Warning');\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n if (Currentobj.isCommentSheetRequired && (Currentobj.isCommentSheetno == null || Currentobj.isCommentSheetno.replace(/\\s/g, \"\") == \"\")) {\r\n this._notificationService.showToast(_docno + \" - Transmittal Number is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.isTenderQuantityRequired && Currentobj.isQuantityApplicable.toUpperCase().trim() == 'A') {\r\n\r\n if (Currentobj.getTQpopupvalue == false) {\r\n\r\n this._notificationService.showToast(_docno + \" - Tender Quantity inclusion is mandatory.\", 'Warning');\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (Currentobj.Can_Update_DCI_Progress_Level && (Currentobj.SelectedProgressLevel == 0 || Currentobj.SelectedProgressLevel == -2)) {\r\n this._notificationService.showToast(_docno + \" - Progress Level is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.isApprovalStatusRequired && (Currentobj.selectedDocCategoryValue == 0 || Currentobj.selectedDocCategoryValue == -2)) {\r\n this._notificationService.showToast(_docno + \" - Approval Status is mandatory.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (action.enable_Tag && !Currentobj.revForm.valid) {\r\n this._notificationService.showToast(_docno + \" - Revise revision details are mandatory to fill.\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.isDTNPreparation) {\r\n this._notificationService.showToast(_docno + \" - Please complete step through DTN Preparation page\", 'Warning');\r\n return;\r\n }\r\n\r\n if (Currentobj.isDTNRelease) {\r\n this._notificationService.showToast(_docno + \" - Please complete step through DTN Release page\", 'Warning');\r\n return;\r\n }\r\n\r\n // Currentobj._notificationService.showPopup('Are you sure to perform the clicked action', 'Confirm').then(data => {\r\n // if (data == 'yes') {\r\n\r\n this.current_subWf = getValue.subWorkflow;\r\n this.next_subWf = action.next_Step_Sub_Workflow;\r\n this.supersede_enabled = action.enable_Tag==1 ? true : false;\r\n this.current_RevNo = getValue.revisionNo;\r\n \r\n\r\n if((this.current_subWf != null || undefined) && (this.next_subWf != null || undefined) && (this.current_subWf != this.next_subWf) )\r\n {\r\n this.stageChange = true;\r\n let next_subWf = action.next_Step_Sub_Workflow;\r\n let dciRevisionList = this.dciRevisionList.filter(x => x.stageId == next_subWf);\r\n this.next_RevNo = dciRevisionList[0].revisionNo ? dciRevisionList[0].revisionNo : null;\r\n }\r\n\r\n let currentActionDetails = Currentobj.currentWorkflowDetails.workflowAction.filter((item: any) => item.task_Id == getValue.currentTaskId && item.action_Id == action.action_Id);\r\n let _respondWorkflowDetails: any = { \"projectId\": 0, \"groupId\": 0, respondWorkflowDetails: [], createdBy: 0, stageDetails: [] };\r\n let obj: any = {};\r\n obj[\"documentId\"] = getValue.documentId;\r\n obj[\"revisionNumber\"] = getValue.revisionNo;\r\n // obj[\"nextRevisionNumber\"] = !Currentobj.isDocSetRequired ? Currentobj.revForm.get('formRevision').value : null;\r\n obj[\"nextRevisionNumber\"] = ( !Currentobj.isDocSetRequired || this.next_RevNo ) ? (this.supersede_enabled && !this.stageChange ? Currentobj.revForm.get('formRevision')?.value : this.next_RevNo) : null;\r\n obj[\"workflowId\"] = getValue.workflowId;\r\n obj[\"TaskId\"] = getValue.currentTaskId;\r\n obj[\"assignType\"] = getValue.assignedType;\r\n obj[\"memberId\"] = Currentobj.memberId; getValue.assignedToId;\r\n obj[\"actionPerformed\"] = action.action_Id;\r\n obj[\"completedBy\"] = Currentobj.memberId;\r\n obj[\"statusId\"] = currentActionDetails[0].status_Id;\r\n obj[\"completedOn\"] = this.isCompletedOnManulRequired ? Currentobj.selectedCompletedOnDate : null;\r\n obj[\"commentSheetNo\"] = Currentobj.isCommentSheetno ? Currentobj.isCommentSheetno : null;\r\n obj[\"comments\"] = getValue.comments;\r\n obj[\"delayReason\"] = getValue.delayReason;\r\n obj[\"internalReason\"] = getValue.internalReason;\r\n obj[\"externalReason\"] = getValue.externalReason;\r\n obj[\"isFileAvailable\"] = Currentobj.fileCollection.filter((x: any) => x.isDeleteEnable == true).length > 0 ? true : false\r\n obj[\"taskSlNo\"] = getValue.taskSerialNumber;\r\n obj[\"ProgressLevel\"] = Currentobj.SelectedProgressLevel ? Currentobj.SelectedProgressLevel : null;\r\n\r\n _respondWorkflowDetails.projectId = getValue.projectId;\r\n _respondWorkflowDetails.groupId = getValue.groupId;\r\n _respondWorkflowDetails.createdBy = Currentobj.memberId;\r\n _respondWorkflowDetails.stageDetails = Currentobj.LatestStageDetails;\r\n\r\n if (action.action_Description == 'Approve' && Currentobj.isTransmittalRequired) {\r\n let dialogRef = this.dialog.open(CreateTransmittalComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputType: 'createTransmittal', doc_Id: getValue.documentId, revision_No: getValue.revisionNo, doc_No: getValue.documentNumber, doc_Title: getValue.documentTitle, selectedDispline: getValue.documentDisciplineId, is_Workflow: true, selectedList: [] },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n if (data != null && data != undefined) {\r\n obj[\"commentSheetNo\"] = data;\r\n _respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n //this.assignNextStep(_respondWorkflowDetails, action);\r\n }\r\n else {\r\n this._notificationService.showToast(_docno + \" - Failed to create Transmittal\", \"Warning\");\r\n }\r\n });\r\n }\r\n else {\r\n _respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n //this.assignNextStep(_respondWorkflowDetails, action);\r\n }\r\n let postdata = {\r\n \"_respondWorkflowDetails\": _respondWorkflowDetails,\r\n \"action\": action,\r\n \"Currentobj\": Currentobj\r\n }\r\n return postdata;\r\n //}\r\n // });\r\n }\r\n public Bulk_assignNextStep(_respondWorkflowDetails: any, action: WorkflowActionModel, Currentobj: any) {\r\n this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails).subscribe(data => {\r\n if (data[\"successCode\"] == 200) {\r\n let isChangeUserPopupToShow = Boolean(JSON.parse(data[\"result\"].toString().split(',')[0]));\r\n let _nextStepId = parseInt(JSON.parse(data[\"result\"].toString().split(',')[1]));\r\n\r\n if (Currentobj.isApprovalStatusRequired) {\r\n let docCategoryModel: IWFDocCategoryModel = {\r\n docId: Currentobj.wfInputDetails.documentId,\r\n revisionNo: Currentobj.wfInputDetails.revisionNo,\r\n docCategory: Currentobj.selectedDocCategoryValue,\r\n userId: Currentobj.memberId\r\n }\r\n this.workflowTemplateService.UpdateWorkflowDocumentCategory(docCategoryModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 500) {\r\n this._notificationService.showToast(res.result, \"Error\");\r\n return;\r\n }\r\n });\r\n }\r\n //Update No of Sheets\r\n if (Currentobj.isNoOfSheetsRequired) {\r\n let noOfSheetsModel: IDCINoOfSheetsModel = {\r\n docId: Currentobj.wfInputDetails.documentId,\r\n revisionNo: Currentobj.wfInputDetails.revisionNo,\r\n noOfSheets: Currentobj.wfInputDetails.noOfSheets,\r\n userId: Currentobj.memberId\r\n }\r\n this.workflowTemplateService.UpdateDCINoOfSheets(noOfSheetsModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 500) {\r\n this._notificationService.showToast(res.result, \"Error\");\r\n return;\r\n }\r\n });\r\n }\r\n\r\n //update superseded revision details\r\n if (action.enable_Tag && Currentobj.revForm.valid) {\r\n let supersedeRevDetails: IDCISupersedeRevDetailsModel = {\r\n docId: Currentobj.wfInputDetails.documentId,\r\n docStatus: Currentobj.revForm.get('dciStatus').value.dedId,\r\n userId: Currentobj.memberId,\r\n printSize: Currentobj.revForm.get('printSize').value.dedId,\r\n revCategory: Currentobj.revForm.get('revCategory').value.revCategoryId,\r\n comments: Currentobj.revForm.get('comments').value,\r\n noOfSheets: Currentobj.revForm.get('noOfSheets').value == null ? 0 : Currentobj.revForm.get('noOfSheets').value\r\n }\r\n this._dciService.UpdateSupersedeRevisionDetails(supersedeRevDetails).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 500) {\r\n this._notificationService.showToast(\"Failed to update supersede revision details\", \"Error\");\r\n }\r\n })\r\n }\r\n\r\n let stepDetail: WorkflowTemplateStatusInputModel = Currentobj.currentWorkflowDetails.workflowStatus.filter((x: any) => x.step_Id == _nextStepId)[0];\r\n\r\n\r\n this.SendMailOnActionCompletion(-1, stepDetail, data, Currentobj);\r\n\r\n }\r\n else {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Warning\")\r\n }\r\n });\r\n }\r\n public OnselectionChange(selectedText: any) {\r\n if (selectedText && selectedText.additionalValues)\r\n this.Actiondetails = selectedText.additionalValues.additionalValues\r\n }\r\n\r\n public EmitCopyDetails() {\r\n let _data = { selectedChecklistCollection: this.selectedChecklistCollection, wfInputDetails: this.wfInputDetails }\r\n this.CopyDetails.emit(_data);\r\n }\r\n\r\n}","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{wfInputDetails.taskName}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Document No.

\r\n

{{wfInputDetails.documentNumber}}

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

Title

\r\n

{{wfInputDetails.documentTitle}}

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

Revision No

\r\n

{{wfInputDetails.revisionNo}}

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

Assigned On

\r\n

{{getFormattedDate(wfInputDetails.assignedOn)}}

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

Due On

\r\n

\r\n {{getFormattedDate(wfInputDetails.dueOn)}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n No of Sheets\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n General Comments (if any)\r\n \r\n \r\n
\r\n
\r\n \r\n Holding Reason (if hold*)\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Delay Reason is required\r\n \r\n
\r\n
\r\n \r\n Delay Reason Comments\r\n \r\n \r\n Delay Reason Comments is required\r\n \r\n \r\n \r\n Internal Reason Comments\r\n \r\n \r\n Internal Reason Comments is required\r\n \r\n \r\n \r\n External Reason Comments\r\n \r\n \r\n External Reason Comments is required\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Attached File Details

\r\n
\r\n
Upload Attachments \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileFullName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.fileTypeName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedByName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedOn}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Show\r\n IC Specific Checklist\r\n
\r\n
\r\n
\r\n Checklist : \r\n \r\n Applicable\r\n Not Applicable\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.clFullName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedByName}}\r\n \r\n \r\n\r\n \r\n \r\n {{getFormattedDate(dataItem.uploadedOn)}}\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n 0\" class=\"fa fa-clone icon-size mr-2\" matTooltip=\"Copy Checklist\" style=\"font-size: 15px; cursor: pointer;margin-left: 3%;\" id=\"\" aria-hidden=\"true\" (click)=\"EmitCopyDetails()\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Tender Quantity : \r\n \r\n Applicable\r\n Not Applicable\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Enter Transmittal Number\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
0\">\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Revision Category is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Released For is required\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Print Size is required\r\n \r\n \r\n \r\n \r\n No of Sheets\r\n \r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n Revision\r\n \r\n Revision is required\r\n \r\n \r\n \r\n \r\n
\r\n \r\n

\r\n {{item.stage_Short_Desc}}-{{item.stage_Desc}}\r\n

\r\n

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

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

Previous Step Action Detail

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.documentNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.documentTitle}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNumber}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assignedOn}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assignedToName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.completedByName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.taskName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.comments}}\r\n \r\n \r\n \r\n \r\n {{dataItem.docCategoryName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.delayReason}}\r\n \r\n \r\n \r\n \r\n {{dataItem.internalReason}}\r\n \r\n \r\n \r\n \r\n {{dataItem.externalReason}}\r\n \r\n \r\n
\r\n
","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ChecklistService } from 'src/app/Service/checklist/checklist.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { forkJoin, Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-respond-worflow-checklist-items',\r\n templateUrl: './respond-worflow-checklist-items.component.html',\r\n styleUrls: ['./respond-worflow-checklist-items.component.css']\r\n})\r\nexport class RespondWorflowChecklistItemsComponent implements OnInit {\r\n\r\n selectedCheckList: any;\r\n checklistItemList: any[] = [];\r\n currentCheckID: any[] = [];\r\n showToast_Value: boolean = false;\r\n isApproveDisable: boolean = true;\r\n isAllButtonDisable: boolean = false;\r\n userUnselect: boolean = false;\r\n isvalid: boolean = false;\r\n isReadMode: boolean;\r\n assignlist: any;\r\n isSuccess:boolean = false;\r\n isForApproval:boolean;\r\n\r\n constructor(public _commonService: CommonService, public workflowTemplateService: WorkflowTemplateService, public notificationService: NotificationService,\r\n public checklistService: ChecklistService, public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.selectedCheckList = this.data.inputdata;\r\n this.isReadMode = this.data.isReadMode;\r\n this.assignlist = this.data.assignedvalue;\r\n }\r\n\r\n ngOnInit() {\r\n this.getChecklistItem();\r\n }\r\n\r\n getChecklistItem() {\r\n let memberId = this._commonService.getLoggedInUserId();\r\n\r\n let allCheckList: Observable = this.checklistService.getChecklistItem(this.selectedCheckList.clId);\r\n let allCheckListData: Observable = this.workflowTemplateService.getWorkflowChecklistItem(this.selectedCheckList);\r\n forkJoin(allCheckList, allCheckListData).subscribe((res: any[]) => {\r\n let _allCheckList: any = res[0];\r\n let _allCheckListData: any = res[1];\r\n\r\n this.checklistItemList = _allCheckList.filter((x:any) => x.isActive && !!x.cliDescription);\r\n\r\n if (this.checklistItemList.length <= 0) {\r\n this.notificationService.showToast(\"Selected checklist contains no items, please check\", 'Warning');\r\n this.dialogRef.close(null);\r\n }\r\n\r\n for (let i = 0; i < this.checklistItemList.length; i++) {\r\n let checklistItem = this.checklistItemList[i];\r\n\r\n if (checklistItem.isCheck == true) {\r\n checklistItem.displayAction = true;\r\n checklistItem.childHeader = false;\r\n }\r\n else {\r\n checklistItem.displayAction = false;\r\n checklistItem.isMandatory = false;\r\n checklistItem.childHeader = true;\r\n }\r\n checklistItem.isChecked = null,\r\n checklistItem.remarks = null,\r\n checklistItem.isApproved = false,\r\n checklistItem.memberId = memberId;\r\n }\r\n\r\n for (let j = 0; j < _allCheckListData.length; j++) {\r\n let checklistItem = _allCheckListData[j];\r\n let _data = this.checklistItemList.filter(x => x.clId == checklistItem.clId && x.cliId == checklistItem.cliId);\r\n\r\n if (_data.length > 0) {\r\n _data[0].isChecked = checklistItem.isChecked;\r\n _data[0].remarks = checklistItem.remarks;\r\n _data[0].isApproved = checklistItem.isApproved;\r\n _data[0].memberId = checklistItem.memberId;\r\n if(this.data.isPerviousChecklist)\r\n {\r\n _data[0].isApproved=false;\r\n }\r\n }\r\n }\r\n\r\n if (this.checklistItemList.filter(x => x.memberId == this._commonService.getLoggedInUserId()).length > 0) {\r\n this.isApproveDisable = true;\r\n }\r\n else {\r\n this.isApproveDisable = false;\r\n }\r\n\r\n if (this.checklistItemList.filter(x => x.isApproved == true).length > 0) {\r\n this.isAllButtonDisable = true;\r\n }\r\n else {\r\n this.isAllButtonDisable = false;\r\n }\r\n\r\n if (this.isAllButtonDisable) {\r\n this.isApproveDisable = true;\r\n }\r\n });\r\n }\r\n\r\n closeDialog() {\r\n this.checkfiledemt();\r\n let getclDescription = {\r\n \"currentpopupcl_Description\": this.checklistItemList[0].clDescription,\r\n \"checked_Allvalue\": this.showToast_Value,\r\n \"result\": this.isSuccess,\r\n \"copy_checklistItem\" : this.checklistItemList,\r\n \"isForApproval\":this.isForApproval\r\n }\r\n this.dialogRef.close(getclDescription);\r\n }\r\n\r\n checkfiledemt() {\r\n let mandatoryCheckList: any[];\r\n let nomandatoryCheckList: any[];\r\n mandatoryCheckList = this.checklistItemList.filter(data => data.isMandatory == true);\r\n nomandatoryCheckList = this.checklistItemList.filter(data => data.isMandatory == false);\r\n if (mandatoryCheckList.length > 0) {\r\n this.showToast_Value = mandatoryCheckList.some(element => {\r\n // if ((!element.isChecked || element.isChecked != 1 && !element.remarks)) {\r\n // return true;\r\n // }\r\n return ((!element.isChecked || element.isChecked != 1) && !element.remarks)\r\n });\r\n }\r\n if (nomandatoryCheckList.length > 0) {\r\n if (this.showToast_Value == false) {\r\n this.showToast_Value = nomandatoryCheckList.some(element => {\r\n let _isbool :boolean = false;\r\n if (element.displayAction == true) {\r\n if (!element.isChecked) {\r\n _isbool= true;\r\n }\r\n } else {\r\n element.isChecked = 0;\r\n }\r\n return _isbool;\r\n });\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n onclick_Submit(isForApproval: boolean) {\r\n this.checkfiledemt();\r\n if (this.showToast_Value == true) {\r\n this.notificationService.showToast(\"Remarks or Action not taken for some of the checklist items\", 'Warning');\r\n }\r\n else {\r\n let approvedBy = isForApproval ? this._commonService.getLoggedInUserId() : null;\r\n this.checklistItemList.forEach(value => {\r\n value.documentId = this.assignlist.documentId,\r\n value.documentRevision = this.assignlist.documentRevisionNo,\r\n value.memberId = this.assignlist.memberId,\r\n value.clRevision = this.assignlist.clRevisionNo,\r\n value.workflowId = this.assignlist.workflowId,\r\n value.taskSlNo = this.assignlist.currentTaskSerialNumber,\r\n value[\"approvedBy\"] = approvedBy;\r\n });\r\n this.isForApproval =isForApproval;\r\n if (isForApproval == true) {\r\n this.notificationService.showPopup('The checklist cannot be modified once it has been approved. Are you sure you wish to proceed?', 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.workflowTemplateService.postWorkflowChecklistItem(this.checklistItemList, isForApproval).subscribe(data => {\r\n // this.closeDialog();\r\n if (data[\"successCode\"] == 200) {\r\n this.notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n this.isSuccess = true;\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(data[\"successMessage\"], \"Warning\");\r\n this.closeDialog();\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n this.workflowTemplateService.postWorkflowChecklistItem(this.checklistItemList, isForApproval).subscribe(data => {\r\n // this.closeDialog();\r\n if (data[\"successCode\"] == 200) {\r\n this.notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n this.isSuccess = true;\r\n this.closeDialog();\r\n }\r\n else {\r\n this.notificationService.showToast(data[\"successMessage\"], \"Warning\");\r\n this.closeDialog();\r\n }\r\n })\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n {{selectedCheckList.clFullName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.cliDescription}}\r\n \r\n \r\n {{dataItem.cliDescription}}\r\n \r\n * \r\n \r\n \r\n \r\n \r\n \r\n \r\n   \r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Remark Field is Required\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { groupBy } from \"lodash\";\r\n\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { Module } from \"src/app/Service/element-details.data.service\";\r\nimport { MemberElementDetailLinkService } from \"src/app/Service/member-element-detail-link/member-element-detail-link.service\";\r\nimport { ExternalMemberService } from \"src/app/Service/member/external-member.service\";\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\nimport { ProjectInfoService } from \"src/app/Service/project-info/project-info.service\";\r\nimport { ScheduleDocumentService } from \"src/app/Service/scheduledocument/scheduleDocument.service\";\r\nimport { WorkflowTemplateService } from \"src/app/Service/workflow-template/workflow-template.service\";\r\nimport { IProjectMemberViewModel } from \"src/app/ViewModel/MembersModel\";\r\nimport { IProjectElementDetailsOutput } from \"src/app/ViewModel/ProjectElementsModel\";\r\nimport { StandardOutputModel } from \"src/app/ViewModel/StandardOutputModel\";\r\nimport { WorkflowAssignedToModel } from \"src/app/ViewModel/WorkflowAssignedToModel\";\r\n\r\n\r\ninterface IWorkflowStepRoleMembers {\r\n roleId: number;\r\n roleDescription: string;\r\n roleMembers: IWorkflowMember[];\r\n selectedMemberIds: number[];\r\n}\r\n\r\ninterface IWorkflowStepAssignedToMembers{\r\n Description:string;\r\n Members:IProjectMemberViewModel[],\r\n selectedMembersIds: number[];\r\n}\r\n\r\ninterface IWorkflowMember {\r\n memberId: number;\r\n memberName: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-wft-action-assignedto',\r\n templateUrl: './wft-action-assignto.component.html',\r\n styleUrls: ['./wft-action-assignto.component.css']\r\n})\r\nexport class WFActionAssignedToComponent implements OnInit {\r\n title:string;\r\n projectId: number;\r\n groupId: number;\r\n nextStepDescription: string = '';\r\n documentNo: string = '';\r\n workflowRoleMember: any[] = [];\r\n projectSelectedMembers: any[] = [];\r\n discipline: IProjectElementDetailsOutput[] = [];\r\n roleMembers: IWorkflowStepRoleMembers[] = [];\r\n members: IWorkflowStepAssignedToMembers[] = [];\r\n selectedRoleMembers: Map = new Map();\r\n updatedRoleMembers: any[] = [];\r\n loggedInMemberId: number;\r\n disable: boolean = true;\r\n isInitialNoMemberSelected!: boolean;\r\n isInitialNoMemberSelectedAndSubmit!: boolean;\r\n completedMembers!:number[];\r\n selectedStepMembers!:number[];\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private _data: any, public _workflowTemplateService: WorkflowTemplateService,\r\n private _projInfoService: ProjectInfoService, public _notificationService: NotificationService,\r\n public memberElementDetailLinkService: MemberElementDetailLinkService, private _commonService: CommonService,private _scheduleDocumentService: ScheduleDocumentService,private _memberService:ExternalMemberService) {\r\n this.getDispline();\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.loggedInMemberId = this._commonService.getLoggedInUserId();\r\n this.getpopup()\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isInitialNoMemberSelected = true;\r\n this.isInitialNoMemberSelectedAndSubmit = true;\r\n }\r\n\r\n async getpopup() {\r\n if (!!this._data) {\r\n this.title = this._data.title != null ? this._data.title : 'Next Step Member Assignment';\r\n this.documentNo = this._data.docNo;\r\n this.nextStepDescription = this._data.nextStep.workflow_Status_Description;\r\n let assignedToRoles: WorkflowAssignedToModel[] = this._data.assignedToRoles;\r\n let assignedToMembers:WorkflowAssignedToModel[] = this._data.assignedToMembers;\r\n if (!!assignedToRoles && assignedToRoles.length > 0) {\r\n for (let i = 0; i < assignedToRoles['length']; i++) {\r\n let _nextStepRoleUsers: any[] = [];\r\n let _workflowRoleMember: any[] = [];\r\n this._workflowTemplateService.getWorkflowMemberByRole([{ docId: this._data.docId, roleId: assignedToRoles[i].role_Id }]).subscribe((output: any) => {\r\n if (output.length == 0) {\r\n _nextStepRoleUsers.push({ 'docId': this._data.docId, 'memberId': 0, 'roleId': assignedToRoles[i].role_Id });\r\n this.isInitialNoMemberSelected = false;\r\n this.isInitialNoMemberSelectedAndSubmit = false;\r\n }\r\n else\r\n _nextStepRoleUsers.push({ 'docId': this._data.docId, 'memberId': Object.keys(output).map(function (k) { return output[k].memberId }).join(\",\"), 'roleId': assignedToRoles[i].role_Id });\r\n\r\n let grpRoleMembersList = groupBy(_nextStepRoleUsers, 'roleId');\r\n for (let roleId in grpRoleMembersList) {\r\n let memberIds: number[] = grpRoleMembersList[roleId].map(x => x.memberId).toString().split(',').map(Number);\r\n _workflowRoleMember.push({ roleId: Number(roleId), memberIds: memberIds });\r\n }\r\n\r\n for (let j = 0; j < _workflowRoleMember['length']; j++) {\r\n if (assignedToRoles[i].assign_Type == 1)\r\n this.getDispline_base_Member(_workflowRoleMember[j], assignedToRoles);\r\n }\r\n });\r\n }\r\n if(!!this._data.docTaskId)\r\n {\r\n this._scheduleDocumentService.getWorkflowHistory(this._data.docId,this._data.docTaskId).subscribe((res:any)=>{\r\n if(!!res)\r\n {\r\n \r\n let completedMembers=res && res.length > 0 ? res[0].actionTakenMembers.split(','):'';\r\n this.completedMembers=completedMembers.map(x => parseInt(x));\r\n }\r\n })\r\n }\r\n /*\r\n assignedToRoles.forEach(x => {\r\n nextStepRoleUsers.push(this._workflowTemplateService.getWorkflowMemberByRole({ docId: this._data.docId, roleId: x.role_Id }));\r\n });\r\n forkJoin(nextStepRoleUsers).subscribe((res: any[]) => {\r\n res.forEach((result: any[]) => {\r\n let grpRoleMembersList = groupBy(result, 'roleId')\r\n for (let roleId in grpRoleMembersList) {\r\n let memberIds: number[] = grpRoleMembersList[roleId].map(x => x.memberId);\r\n this.workflowRoleMember.push({ roleId: Number(roleId), memberIds: memberIds });\r\n }\r\n })\r\n this.workflowRoleMember.forEach(x => {\r\n this.getDispline_base_Member(x, assignedToRoles);\r\n })\r\n })\r\n */\r\n }\r\n if(!!assignedToMembers && assignedToMembers.length>0)\r\n {\r\n let selectedMembers=assignedToMembers.map(x => x.member_Id);\r\n this.selectedStepMembers = selectedMembers;\r\n this._memberService.GetMembersListAgainstProject({ group_Id: this.groupId, project_Id: this.projectId }).toPromise().then(res => {\r\n this.members.push({Members:res,selectedMembersIds:selectedMembers,Description: \"AssignToMember\"});\r\n });\r\n this.isInitialNoMemberSelectedAndSubmit = false;\r\n }\r\n }\r\n }\r\n\r\n async getDispline_base_Member(x: any, AssignedToRoles: any) {\r\n //Assigned To only\r\n let roleDescription = AssignedToRoles.filter((y: any) => y.assign_Type == 1 && y.role_Id == x.roleId)[0].role_Description;\r\n let assignType = AssignedToRoles.filter((y: any) => y.assign_Type == 1 && y.role_Id == x.roleId)[0].assign_Type;\r\n let assignTypeName = parseInt(assignType) == 1 ? \" (Assigned To)\" : \" (Assigned CC)\";\r\n roleDescription = roleDescription + assignTypeName;\r\n\r\n this.projectSelectedMembers = await this.memberElementDetailLinkService.getSelectedMembers(this.projectId, this._commonService.getLoggedInUserGroupId(), this._data.docDisciplineDEId, this._data.docDiscipline, Module.ScheduleDocument).toPromise();\r\n\r\n const res: any = await this._projInfoService.getProjectMembersByRole({ projectId: this.projectId, groupId: this.groupId, roleId: x.roleId }).toPromise();\r\n if (this.projectSelectedMembers.length != 0) {\r\n let Discipline_base_Member = res.filter((data: any) => {\r\n return this.projectSelectedMembers.some(member => data.memberId == member.memberId);\r\n })\r\n if (Discipline_base_Member != 0) {\r\n this.roleMembers.push({ roleId: x.roleId, selectedMemberIds: x.memberIds, roleMembers: Discipline_base_Member, roleDescription: roleDescription });\r\n } else {\r\n this.roleMembers.push({ roleId: x.roleId, selectedMemberIds: x.memberIds, roleMembers: res, roleDescription: roleDescription });\r\n }\r\n if(this.completedMembers && this.completedMembers.length>0)\r\n {\r\n this.roleMembers.filter(role => role.roleId==x.roleId)[0].selectedMemberIds=this.roleMembers.filter(role => role.roleId==x.roleId)[0].selectedMemberIds.filter(ele => this.completedMembers.indexOf(ele) < 0);\r\n this.roleMembers.filter(role => role.roleId==x.roleId)[0].roleMembers=this.roleMembers.filter(role => role.roleId==x.roleId)[0].roleMembers.filter(ele => this.completedMembers.indexOf(ele.memberId) < 0)\r\n }\r\n }\r\n else {\r\n this.roleMembers.push({ roleId: x.roleId, selectedMemberIds: x.memberIds, roleMembers: res, roleDescription: roleDescription });\r\n }\r\n }\r\n\r\n getDispline() {\r\n this._projInfoService.getProjectElementDetails({ projectId: this._commonService.getProjectId(), groupId: this.groupId, moduleId: Module.ScheduleDocument, deDescription: 'Discipline' })\r\n .subscribe({\r\n next: (res: IProjectElementDetailsOutput[]) => {\r\n this.discipline = res;\r\n }, error: () => { }\r\n });\r\n }\r\n\r\n onChange_Member(event: any, roleId: number) {\r\n if (!!event) {\r\n if (this.selectedRoleMembers.has(roleId))\r\n this.selectedRoleMembers.delete(roleId);\r\n let selectedMemberIds: number[] = event.emittingList.map((x: { value: any; }) => x.value);\r\n if (selectedMemberIds.length > 0)\r\n this.selectedRoleMembers.set(roleId, selectedMemberIds);\r\n }\r\n if (this.selectedRoleMembers.size > 0 && !this.isInitialNoMemberSelected)\r\n this.disable = false;\r\n else\r\n this.disable = true;\r\n\r\n this.isInitialNoMemberSelected = false;\r\n }\r\n\r\n closeDialog(input: any) {\r\n if (input == \"-1\") {\r\n //other Discipline SH removal for B&f\r\n if(this._data.is_multi_disciplie_sh)\r\n {\r\n this.dialogRef.close({\"successCode\":200,\"successMessage\":\"\"});\r\n return;\r\n }\r\n //end\r\n if ( this.selectedRoleMembers.size <= 0 &&(!this.selectedStepMembers|| this.selectedStepMembers.length <= 0)) {\r\n this._notificationService.showToast(\"Please select next step member and do 'Submit'\", \"Warning\");\r\n return;\r\n }\r\n\r\n if (!this.isInitialNoMemberSelectedAndSubmit) {\r\n this._notificationService.showToast(\"Please do 'Submit' to set next step member\", \"Warning\");\r\n return;\r\n }\r\n }\r\n\r\n if(!this._data.isReassign)\r\n {\r\n let reqData: any = {\r\n projectId: this._commonService.getProjectId(),\r\n groupId: this.groupId,\r\n documentId: this._data.docId,\r\n documentRevision: this._data.revisionNo,\r\n workflowId: this._data.nextStep.workflow_Id,\r\n createdBy: this.loggedInMemberId\r\n };\r\n this._workflowTemplateService.SendMailOnActionCompletion(reqData).subscribe((res: StandardOutputModel) => {\r\n this.dialogRef.close(input);\r\n })\r\n }\r\n else\r\n this.dialogRef.close(input);\r\n }\r\n\r\n changeUser() {\r\n if ((this.selectedRoleMembers && this.selectedRoleMembers.size > 0) || (this.selectedStepMembers && this.selectedStepMembers.length>0)) {\r\n this.updatedRoleMembers = [];\r\n if(this.selectedRoleMembers && this.selectedRoleMembers.size>0)\r\n {\r\n this.selectedRoleMembers.forEach((memberIds, roleId) => {\r\n memberIds.forEach(memberId => {\r\n this.updatedRoleMembers.push({ roleId: roleId, memberId: memberId });\r\n })\r\n });\r\n }\r\n \r\n if(this.selectedStepMembers && this.selectedStepMembers.length>0)\r\n {\r\n this.selectedStepMembers.forEach(x => {\r\n this.updatedRoleMembers.push({ roleId: null, memberId: x })\r\n })\r\n }\r\n let reqData: any = {\r\n projectId: this._commonService.getProjectId(),\r\n groupId: this.groupId,\r\n docId: this._data.docId,\r\n revisionNo: this._data.revisionNo,\r\n userId: this._commonService.getLoggedInUserId(),\r\n roleMembers: this.updatedRoleMembers\r\n };\r\n this._workflowTemplateService.updateWFAssignedToRoleUser(reqData).subscribe((res: StandardOutputModel) => {\r\n this.isInitialNoMemberSelectedAndSubmit = true;\r\n this.closeDialog(res);\r\n })\r\n }\r\n else {\r\n this.closeDialog(\"-1\");\r\n }\r\n }\r\n\r\n onChange_Members(event:any)\r\n {\r\n if (!!event) {\r\n let selectedMemberIds: number[] = event.emittingList.map((x: { value: any; }) => x.value);\r\n this.selectedStepMembers=selectedMemberIds;\r\n }\r\n\r\n if (this.selectedStepMembers.length > 0 && !this.isInitialNoMemberSelected)\r\n this.disable = false;\r\n else\r\n this.disable = true;\r\n\r\n this.isInitialNoMemberSelected = false;\r\n }\r\n}","
\r\n
\r\n {{title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Document No : {{documentNo}}

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

Next Step : {{nextStepDescription}}

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

Note \r\n
\r\n * Reassignment is applicable only for members whose action is yet pending.\r\n
\r\n * Click \"Re-Assign & Proceed\" button only if any member assigned is modified; otherwise, close the tab.\r\n
\r\n

\r\n
\r\n
\r\n
\r\n \r\n   Close\r\n
\r\n
","import { Component, Inject, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WorkflowActionModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { groupBy } from 'lodash';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\nconst createFormGroup = (dataItem: any) => new FormGroup({\r\n\t\"workflow_Id\": new FormControl(dataItem.workflow_Id), // ui maintain\r\n\t\"task_Id\": new FormControl(dataItem.task_Id), // ui maintain\r\n\t\"action_Id\": new FormControl(dataItem.action_Id), // cart\r\n\t\"action_Description\": new FormControl(dataItem.action_Description), // cart\r\n\t\"next_Step_Id\": new FormControl(dataItem.next_Step_Id), // text\r\n\t\"status_Id\": new FormControl(dataItem.status_Id), // text\r\n\t\"enable_Tag\": new FormControl(dataItem.enable_Tag), // switch\r\n\t\"is_Default\": new FormControl(dataItem.is_Default), // switch\r\n\t\"is_Active\": new FormControl(dataItem.is_Active), // switch\r\n});\r\n\r\n\r\n@Component({\r\n\tselector: 'app-wft-action-dialog',\r\n\ttemplateUrl: './wft-action-dialog.component.html',\r\n\tstyleUrls: ['./wft-action-dialog.component.css']\r\n})\r\n\r\n\r\nexport class WftActionDialogComponent implements OnInit {\r\n\t@ViewChild(GridComponent)\r\n\tprivate grid!: GridComponent;\r\n\t@Input() ProjectId: number | null = null;\r\n\t@Input() GroupId: number | null = null;\r\n\tcartRequest = {};\r\n\tcartEventList: any[] = [];\r\n\tactionList: RoleFeatureModel[] = [];\r\n\t/** Selected cart list. Right side data */\r\n\tselectedActionList: any[] = [];\r\n\tkendoData: WorkflowActionModel[] = [];\r\n\tprevActionSelectedList: any[] = [];\r\n\teditedRowIndex: number | null = null;\r\n\tformGroup!: FormGroup;\r\n\tparentData!: { 'selectedEventList': any[], 'SelectedPrevActions': any[] };\r\n\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA)\r\n\t\tpublic data: { 'selectedEventList': any[], 'SelectedPrevActions': any[], 'is_Approval_Status'?: any },\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.parentData = this.data;\r\n\t\tthis.getActionList();\r\n\t}\r\n\r\n\tgetActionList() {\r\n\t\tthis.workflowTemplateService.getWorkflowTaskList(this.GroupId, Module.Workflow, \"Workflow\", null, \"Workflow Action\", null, null, this.ProjectId).subscribe(data => {\r\n\t\t\tthis.actionList = data;\r\n\t\t\tthis.setRightSideData();\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tgetApprovalStatusValue(getValue: boolean) {\r\n\t\tlet value = getValue;\r\n\t}\r\n\t/**\r\n\t * Set selected data from parent\r\n\t */\r\n\tsetRightSideData() {\r\n\t\tthis.cartEventList = this.parentData.selectedEventList;\r\n\t\tthis.prevActionSelectedList = this.parentData.SelectedPrevActions;\r\n\r\n\t\tthis.selectedActionList = [];\r\n\t\tif (this.parentData.selectedEventList.length) {\r\n\r\n\t\t\tthis.parentData.selectedEventList.forEach(each => {\r\n\r\n\t\t\t\tif (each.additionalValues) {\r\n\t\t\t\t\tthis.selectedActionList.push(this.getAsCartSelectedValue(each.value, each.additionalValues.dedDescription));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet text = each.text.split('-'),\r\n\t\t\t\t\t\tvalue = text[0].trim(),\r\n\t\t\t\t\t\tname = text[1].trim();\r\n\t\t\t\t\tthis.selectedActionList.push(this.getAsCartSelectedValue(value, name));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tlet grpdData = groupBy(this.parentData.selectedEventList, 'value');\r\n\r\n\t\t\tlet tempDataSource: any = [];\r\n\r\n\t\t\tthis.actionList.forEach(each => {\r\n\t\t\t\tif (!(grpdData[each.dedId] && grpdData[each.dedId].length)) {\r\n\t\t\t\t\ttempDataSource.push(each);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.actionList = tempDataSource;\r\n\t\t}\r\n\r\n\t\tthis.setCartParams();\r\n\t}\r\n\r\n\tcloseDialog() {\r\n\t\tthis.dialogRef.close(null);\r\n\t}\r\n\r\n\t/**\r\n\t * Setting cart data\r\n\t */\r\n\tsetCartParams() {\r\n\t\tthis.cartRequest = {\r\n\t\t\t'params': {\r\n\t\t\t\t'LockingType': 'P',\r\n\t\t\t\t'selectedCartItems': this.selectedActionList,\r\n\t\t\t},\r\n\t\t\t'settings': {\r\n\t\t\t\t'mode': 'popup',\r\n\t\t\t\t'textField': 'dedDescription',\r\n\t\t\t\t'valueField': 'dedId',\r\n\t\t\t\t'cartLabel': 'Actions',\r\n\t\t\t\t'minimumSelectedItemCount': 0\r\n\t\t\t},\r\n\t\t\t'dataSource': this.actionList,\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedCartItems(event: any) {\r\n\t\tthis.cartEventList = event;\r\n\t\tthis.setKendoData();\r\n\t}\r\n\r\n\tsetKendoData() {\r\n\t\tlet tempKendoData: WorkflowActionModel[] = [];\r\n\t\tlet prevSelectedData: any[] = this.prevActionSelectedList;\r\n\t\tthis.cartEventList.forEach((each, index) => {\r\n\t\t\tlet newAction: WorkflowActionModel = {\r\n\t\t\t\t\"workflow_Id\": null, // null by default for creation\r\n\t\t\t\t\"task_Id\": null, // ui maintain\r\n\t\t\t\t\"action_Id\": each.value, // cart\r\n\t\t\t\t\"action_Description\": '', // cart\r\n\t\t\t\t\"next_Step_Id\": 0, // text\r\n\t\t\t\t\"status_Id\": null, // text\r\n\t\t\t\t\"statusDescription\": '',\r\n\t\t\t\t\"enable_Tag\": 0, // switch\r\n\t\t\t\t\"is_Default\": false, // switch\r\n\t\t\t\t\"is_Active\": true, // switch\r\n\t\t\t};\r\n\r\n\t\t\tif (each.additionalValues) {\r\n\t\t\t\tnewAction.action_Description = each.additionalValues.dedDescription;\r\n\t\t\t} else {\r\n\t\t\t\tlet text = each.text.split('-'),\r\n\t\t\t\t\tname = text[1].trim();\r\n\t\t\t\tnewAction.action_Description = name;\r\n\t\t\t\tif (prevSelectedData.length > 0) {\r\n\t\t\t\t\tlet actionId: number = +text[0].trim();\r\n\t\t\t\t\tlet selectedAction = prevSelectedData.filter(x => x.action_Id == actionId)[0];\r\n\t\t\t\t\tnewAction = Object.assign(selectedAction);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttempKendoData.push(newAction);\r\n\t\t});\r\n\t\tthis.kendoData = tempKendoData;\r\n\t\tthis.save();\r\n\t}\r\n\r\n\tsave() {\r\n\t\tlet output: any = {\r\n\t\t\t'selectedIds': [],\r\n\t\t\t'selectedTextWithValue': [],\r\n\t\t\t'data': this.kendoData, // kendo data\r\n\t\t\t'selectedNames': [],\r\n\t\t\t'is_Approval_Status': this.data.is_Approval_Status,\r\n\t\t\t'selectedEventList': this.cartEventList // cart event list\r\n\t\t};\r\n\t\tthis.dialogRef.close(output);\r\n\t}\r\n\r\n\t/**\r\n\t * Change data to respective cart selected data format\r\n\t * @param value \r\n\t * @param text \r\n\t */\r\n\tgetAsCartSelectedValue(value: string | number, text: string) {\r\n\t\tvalue = value.toString().trim();\r\n\t\ttext = text.trim();\r\n\t\tlet output = {\r\n\t\t\tvalue,\r\n\t\t\ttext: value + ' - ' + text\r\n\t\t};\r\n\t\treturn output;\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\tWorkflow Action \r\n\t\t\r\n\t
\r\n
\r\n\r\n
\r\n\t
\r\n\t\t\t\r\n\t\t\t\r\n\t
\r\n
","import { Component, OnInit, ViewChild, EventEmitter, Output, Input } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { GridComponent } from '@progress/kendo-angular-grid';\r\nimport { groupBy } from 'lodash';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WorkflowActionModel, WorkflowActionCartOutputModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { WftActionDialogComponent } from '../wft-action-dialog/wft-action-dialog.component';\r\n\r\n\r\nconst createFormGroup = (dataItem: { workflow_Id: number; task_Id: number; action_Id: number; action_Description: string; next_Step_Id: number; status_Id: number; statusDescription: string; enable_Tag: boolean; is_Default: boolean; is_Active: boolean; Document_CategoryList: any; }) => new FormGroup({\r\n\t\"workflow_Id\": new FormControl(dataItem.workflow_Id), // ui maintain\r\n\t\"task_Id\": new FormControl(dataItem.task_Id), // ui maintain\r\n\t\"action_Id\": new FormControl(dataItem.action_Id), // cart\r\n\t\"action_Description\": new FormControl(dataItem.action_Description), // cart\r\n\t\"next_Step_Id\": new FormControl(dataItem.next_Step_Id), // text\r\n\t\"status_Id\": new FormControl(dataItem.status_Id), // eip dd id\r\n\t\"statusDescription\": new FormControl(dataItem.statusDescription), // eip dd description\r\n\t\"enable_Tag\": new FormControl(dataItem.enable_Tag), // switch\r\n\t\"is_Default\": new FormControl(dataItem.is_Default), // switch\r\n\t\"is_Active\": new FormControl(dataItem.is_Active), // switch\r\n\t\"Document_CategoryList\": new FormControl(dataItem.Document_CategoryList), // text\r\n});\r\n\r\n@Component({\r\n\tselector: 'app-wft-action-kendo-dialog',\r\n\ttemplateUrl: './wft-action-kendo-dialog.component.html',\r\n\tstyleUrls: ['./wft-action-kendo-dialog.component.css']\r\n})\r\nexport class WftActionKendoDialogComponent implements OnInit {\r\n\r\n\t/** Send cart value to parent component, on cart dialog close */\r\n\t@Output() getActionCartValue = new EventEmitter();\r\n\t@Input() TemplateDetails: any;\r\n\t@ViewChild(GridComponent)\r\n\r\n\tprivate grid!: GridComponent;\r\n\r\n\tkendoData: WorkflowActionModel[] = [];\r\n\tactionCartOutputData!: WorkflowActionCartOutputModel | null;\r\n\r\n\tenableFilter = false;\r\n\tenableFullscreen = false;\r\n\tisNewRow = false;\r\n\tisNew = false;\r\n\tis_ApprovalValue!: boolean;\r\n\tselected_TypeCategory!: any[];\r\n\teditedRowIndex: number | undefined;\r\n\tformGroup!: FormGroup;\r\n\tis_Approval_Status: any;\r\n\tactionKendoList!: WorkflowActionModel[];\r\n\tpublic documentCategoryList: any;\r\n\tpublic isShow: boolean = false;\r\n\tpublic document_categorylist!: string | null;\r\n\tactionStatusList: RoleFeatureModel[] = [];\r\n\tbottomKendoList: any = [];\r\n\r\n\tconstructor(\r\n\t\tprivate dialog: MatDialog,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tprivate _projService: ProjectInfoService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.getWorkflowStatusList();\r\n\t\tthis.workflowTemplateService.supportForClearInputData.subscribe(data => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.actionKendoList = [];\r\n\t\t\t\tthis.sendDataBack([]);\r\n\t\t\t\tthis.actionCartOutputData = null;\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.workflowTemplateService.supportForBottomKendo.subscribe(data => {\r\n\t\t\tif (data && data.length) {\r\n\t\t\t\tthis.bottomKendoList = data;\r\n\t\t\t\tthis.workflowTemplateService.selectedTaskId = data.length + 1;\r\n\t\t\t} else {\r\n\t\t\t\tthis.bottomKendoList = [];\r\n\t\t\t\tthis.workflowTemplateService.selectedTaskId = 1;\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.getcategoryValue()\r\n\t}\r\n\r\n\tsetCartDataFromParent(parentAction: WorkflowActionCartOutputModel) {\r\n\r\n\t}\r\n\r\n\tgetWorkflowStatusList() {\r\n\t\tlet groupId = this.commonService.getLoggedInUserGroupId();\r\n\t\t/* Date :- 05-08-2023 chnaged by pradeep k null has been changed to group id*/\r\n\t\tthis.workflowTemplateService.getWorkflowTaskList((!!this.TemplateDetails && !!this.TemplateDetails['SrcBG'] ? this.TemplateDetails['SrcBG'] : null), Module.Workflow, \"Workflow\", null, \"Workflow Action Status\", null, null, (!!this.TemplateDetails && !!this.TemplateDetails['SrcProject'] ? this.TemplateDetails['SrcProject'] : null)).subscribe(data => {\r\n\t\t\tthis.actionStatusList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tchangeWorkflowStatus(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('status_Id')?.setValue(event.value);\r\n\t\t\tthis.formGroup.get('statusDescription')?.setValue(event.text);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('status_Id')?.setValue(null);\r\n\t\t\tthis.formGroup.get('statusDescription')?.setValue('');\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n\r\n\tcancelRowData(event: any) {\r\n\t\tthis.closeEditor();\r\n\t}\r\n\r\n\teditRowData(event: any) {\r\n\t\tthis.selected_TypeCategory = [];\r\n\t\tif (this.editedRowIndex && this.editedRowIndex >= 0) {\r\n\t\t\tevent.sender.closeRow(this.editedRowIndex);\r\n\t\t}\r\n\t\tthis.formGroup = createFormGroup(event.dataItem);\r\n\t\tthis.editedRowIndex = event.rowIndex;\r\n\t\tthis.isNewRow = false;\r\n\t\tthis.grid.editRow(event.rowIndex, this.formGroup);\r\n\t\tlet selectedCategory = event.dataItem.Document_CategoryListId.split(',');\r\n\t\tif (!!selectedCategory) {\r\n\t\t\tselectedCategory.forEach((element: any) => {\r\n\t\t\t\tthis.selected_TypeCategory.push(parseInt(element))\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\tgetApprovalValue(val: boolean) {\r\n\t\tthis.is_ApprovalValue = val;\r\n\t\tthis.isShow = val;\r\n\t}\r\n\r\n\tUpdateRowData(input: any) {\r\n\t\tif (this.formGroup.get('action_Id')?.value) {\r\n\t\t\tif (this.formGroup.get('next_Step_Id')?.value == this.workflowTemplateService.selectedTaskId) {\r\n\t\t\t\tthis.notificationService.showToast(\"Next Step Id should not be equal to current Step Id\", 'Warning');\r\n\t\t\t\tthis.formGroup.get('next_Step_Id')?.setValue(0);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet temp = [];\r\n\r\n\t\tfor (let i = 0; i < this.actionKendoList.length; i++) {\r\n\t\t\tif (this.actionKendoList[i].action_Id == this.formGroup.get('action_Id')?.value) {\r\n\t\t\t\ttemp.push(this.formGroup.value);\r\n\t\t\t\tif (temp.length > 0) {\r\n\t\t\t\t\tfor (let j = 0; j < temp.length; j++) {\r\n\t\t\t\t\t\tif (i == j) {\r\n\t\t\t\t\t\t\ttemp[j][\"Document_CategoryList\"] = this.actionKendoList[i].Document_CategoryList;\r\n\t\t\t\t\t\t\ttemp[j][\"Document_CategoryListId\"] = this.actionKendoList[i].Document_CategoryListId;\r\n\t\t\t\t\t\t\ttemp[j][\"is_ApprovalValue\"] = this.is_ApprovalValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttemp.push(this.actionKendoList[i]);\r\n\t\t\t\tfor (let i = 0; i < this.actionKendoList.length; i++) {\r\n\t\t\t\t\tif (temp.length > 0) {\r\n\t\t\t\t\t\tfor (let j = 0; j < temp.length; j++) {\r\n\t\t\t\t\t\t\tif (i == j) {\r\n\t\t\t\t\t\t\t\ttemp[j][\"Document_CategoryList\"] = this.actionKendoList[i].Document_CategoryList;\r\n\t\t\t\t\t\t\t\ttemp[j][\"Document_CategoryListId\"] = this.actionKendoList[i].Document_CategoryListId;\r\n\t\t\t\t\t\t\t\ttemp[j][\"is_ApprovalValue\"] = this.is_ApprovalValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.actionKendoList = temp;\r\n\t\tthis.setCartData();\r\n\t\tthis.sendDataBack(this.actionKendoList);\r\n\t\tthis.isNewRow = false;\r\n\t\tthis.closeEditor();\r\n\t}\r\n\r\n\tpublic cancelHandler(): void {\r\n\t\tthis.closeEditor();\r\n\t}\r\n\r\n\tprivate closeEditor(): void {\r\n\t\tthis.grid.closeRow(this.editedRowIndex);\r\n\t\tthis.isNew = false;\r\n\t\tthis.editedRowIndex = undefined;\r\n\t\tthis.formGroup = new FormGroup({});\r\n\t}\r\n\r\n\tpublic openActionDialog() {\r\n\t\tlet dialogRef = this.dialog.open(WftActionDialogComponent, {\r\n\t\t\tdisableClose: true,\r\n\t\t\tpanelClass: 'mat-dialog-secondary',\r\n\t\t\tdata: {\r\n\t\t\t\t'is_Approval_Status': this.is_ApprovalValue,\r\n\t\t\t\t'selectedEventList': (this.actionCartOutputData && this.actionCartOutputData.selectedEventList && this.actionCartOutputData.selectedEventList.length) ? this.actionCartOutputData.selectedEventList : [],\r\n\t\t\t\t'SelectedPrevActions': (this.actionCartOutputData && this.actionCartOutputData.data && this.actionCartOutputData.data.length > 0) ? this.actionCartOutputData.data : [],\r\n\t\t\t},\r\n\t\t});\r\n\t\tdialogRef.afterClosed().subscribe((data: WorkflowActionCartOutputModel) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tif (data.is_Approval_Status == true) {\r\n\t\t\t\t\tthis.isShow = true;\r\n\t\t\t\t\tthis.getcategoryValue();\r\n\t\t\t\t}\r\n\t\t\t\tthis.actionKendoList = data.data;\r\n\t\t\t\tthis.sendDataBack(this.actionKendoList);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetDocument_CategoryList(): void | string {\r\n\t\tif (!!this.document_categorylist)\r\n\t\t\treturn this.document_categorylist;\r\n\t}\r\n\r\n\tonTypeChange(event?: any, dataItem?: any) {\r\n\t\tthis.document_categorylist = null;\r\n\t\tif (!!event) {\r\n\t\t\tif (event.emittingList.length > 0) {\r\n\t\t\t\tlet selected_Category = event.emittingList.map((x: any) => x.additionalValues);\r\n\t\t\t\tlet Select_sortValue: any[] = [];\r\n\t\t\t\tlet SelectValueId: any[] = [];\r\n\t\t\t\tselected_Category.forEach((element: any) => {\r\n\t\t\t\t\tSelect_sortValue.push(element.dedDescription);\r\n\t\t\t\t\tSelectValueId.push(element.dedId);\r\n\t\t\t\t});\r\n\t\t\t\tdataItem[\"Document_CategoryList\"] = Select_sortValue.toString();\r\n\t\t\t\tdataItem[\"Document_CategoryListId\"] = SelectValueId.toString()\r\n\t\t\t\tthis.document_categorylist = Select_sortValue.toString();\r\n\t\t\t} else {\r\n\t\t\t\tdataItem[\"Document_CategoryList\"] = null;\r\n\t\t\t\tdataItem[\"Document_CategoryListId\"] = null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tgetcategoryValue() {\r\n\t\tthis._projService.getProjectElementDetails({ projectId: (!!this.TemplateDetails && !!this.TemplateDetails['SrcProject'] ? this.TemplateDetails['SrcProject'] : this.commonService.getProjectId()), groupId: (!!this.TemplateDetails && !!this.TemplateDetails['SrcBG'] ? this.TemplateDetails['SrcBG'] : this.commonService.getLoggedInUserGroupId()), moduleId: Module.ScheduleDocument, deDescription: \"Document Category\" })\r\n\t\t\t.subscribe((res: IProjectElementDetailsOutput[]) => {\r\n\t\t\t\tthis.documentCategoryList = res;\r\n\t\t\t})\r\n\t}\r\n\r\n\tchangeActiveStatus(event: MatCheckboxChange) {\r\n\t\tthis.formGroup.get('is_Active')?.setValue(event.checked);\r\n\t}\r\n\r\n\tchangeSupersedeStatus(event: MatCheckboxChange) {\r\n\t\tthis.formGroup.get('enable_Tag')?.setValue(event.checked ? 1 : 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Set data from parent component\r\n\t * @param parentKendoArr \r\n\t */\r\n\r\n\tsetKendoDataFromParent(parentKendoArr: WorkflowActionModel[], is_Approval_Status?: any, WorkflowActionCategory?: any) {\r\n\t\tthis.getApprovalValue(is_Approval_Status);\r\n\r\n\t\tif (!parentKendoArr) {\r\n\t\t\tthis.actionStatusList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet grpdStatusList = groupBy(this.actionStatusList, 'dedId');\r\n\t\tparentKendoArr.forEach((each: any) => {\r\n\t\t\tif (grpdStatusList && grpdStatusList[each.status_Id] && grpdStatusList[each.status_Id].length) {\r\n\t\t\t\teach.statusDescription = grpdStatusList[each.status_Id][0].dedDescription;\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.actionKendoList = parentKendoArr;\r\n\t\tthis.actionKendoList.forEach(val => {\r\n\t\t\tif (WorkflowActionCategory.length > 0) {\r\n\r\n\t\t\t\tWorkflowActionCategory.forEach((element: any) => {\r\n\t\t\t\t\tif (val.task_Id == element.task_Id) {\r\n\r\n\t\t\t\t\t\tif (val.action_Id == element.action_Id) {\r\n\r\n\t\t\t\t\t\t\tval.Document_CategoryList = element.category_Description;\r\n\r\n\t\t\t\t\t\t\tval.Document_CategoryListId = element.category_Id;\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.sendDataBack(parentKendoArr);\r\n\t\tthis.setCartData();\r\n\t}\r\n\r\n\t/**\r\n\t * Call only value came from parent component. \r\n\t */\r\n\r\n\tsetCartData() {\r\n\t\tlet temp: WorkflowActionCartOutputModel = {\r\n\t\t\t'selectedIds': [],//number\r\n\t\t\t'selectedTextWithValue': [], // { value: string | number, text: string }\r\n\t\t\t'data': [], // kendo data WorkflowActionModel\r\n\t\t\t'selectedNames': [], //string\r\n\t\t\t'selectedEventList': [], //any\r\n\t\t}\r\n\t\tthis.actionKendoList.forEach(each => {\r\n\t\t\ttemp.selectedIds.push(each.action_Id);\r\n\t\t\ttemp.selectedTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(each.action_Id, each.action_Description));\r\n\t\t\ttemp.data.push(each);\r\n\t\t\ttemp.selectedNames.push(each.action_Description);\r\n\t\t\ttemp.selectedEventList.push(this.workflowTemplateService.getAsCartSelectedValue(each.action_Id, each.action_Description));\r\n\t\t});\r\n\t\tthis.actionCartOutputData = temp;\r\n\t}\r\n\r\n\t/**\r\n\t * Emit data back to parent component\r\n\t * @param actionKendoList \r\n\t */\r\n\r\n\tsendDataBack(actionKendoList: WorkflowActionModel[], WorkflowActionCategory?: any) {\r\n\t\tactionKendoList[\"WorkflowActionCategory\"] = WorkflowActionCategory;\r\n\t\tthis.getActionCartValue.emit(actionKendoList);\r\n\t}\r\n\r\n\tisAllActionsSaved(): boolean {\r\n\t\treturn this.editedRowIndex == null;\r\n\t}\r\n\r\n}","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Workflow Actions

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{dataItem.action_Description}}\r\n \r\n \r\n {{dataItem.action_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.next_Step_Id}}\r\n \r\n \r\n \r\n Next Step ID\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.statusDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.Document_CategoryList}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { OrganizationService } from 'src/app/Service/organization/organization.service';\r\nimport { ProjectMemberLinkService } from 'src/app/Service/projectMemberLink/project-member-link.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ProjectMemberModel } from 'src/app/ViewModel/ProjectMemberModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WFTCartDialogOutputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { groupBy } from 'lodash';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\n\r\n\r\n\r\n\r\n@Component({\r\n\tselector: 'app-wft-cart-dialog',\r\n\ttemplateUrl: './wft-cart-dialog.component.html',\r\n\tstyleUrls: ['./wft-cart-dialog.component.css']\r\n})\r\nexport class WftCartDialogComponent implements OnInit {\r\n\tbusinessGroupList: BusinessGroupModel[] = [];\r\n\tbusinessGroupClearFlag = 'N';\r\n\tbusinessGroupId: number | null = null;\r\n\r\n\t/** Member cart data source */\r\n\tmemberLeftList: ProjectMemberModel[] = [];\r\n\t/** for looping purpose */\r\n\tmemberLeftListCopy: ProjectMemberModel[] = [];\r\n\tmemberRightList: any = [];\r\n\r\n\t/** Selected Member events array */\r\n\tmemberSelectedList: any = [];\r\n\r\n\t/** Role cart data source.Left side data */\r\n\troleLeftList: RoleFeatureModel[] = [];\r\n\r\n\troleRightList: any = [];\r\n\r\n\t/** Selected Role events array */\r\n\troleSelectedList: any = [];\r\n\tcartMemberRequest = {};\r\n\tcartRoleRequest = {};\r\n\r\n\t/** Previous selected business group id. Values comes from parent */\r\n\tpreviousBusinessGroupId: number | null = null;\r\n\tparentDataCopy: any;\r\n\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA)\r\n\t\tpublic data: {\r\n\t\t\troleTextWithValue: { value: string | number, text: string }[],\r\n\t\t\tmemberTextWithValue: { value: string | number, text: string }[],\r\n\t\t\troleEventsList: any[],\r\n\t\t\tmemberEventList: any[],\r\n\t\t\tpreviousBusinessGroupId?: number,\r\n\t\t\tisCc?: boolean,\r\n\t\t},\r\n\t\tpublic dialogRef: MatDialogRef,\r\n\t\tpublic projectMemberLinkService: ProjectMemberLinkService,\r\n\t\tpublic organizationService: OrganizationService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.parentDataCopy = JSON.parse(JSON.stringify(this.data));\r\n\r\n\t\tif (this.data.previousBusinessGroupId != null) {\r\n\t\t\tthis.previousBusinessGroupId = (!!this.parentDataCopy && !!this.parentDataCopy.TemplateDetails['SrcBG']) ? this.parentDataCopy.TemplateDetails['SrcBG'] : this.data.previousBusinessGroupId;\r\n\t\t}\r\n\t\tthis.callApis();\r\n\t\tif (this.data.memberEventList.length) {\r\n\t\t\tthis.getSelectedMemberCartItems(this.data.memberEventList);\r\n\t\t}\r\n\r\n\t\tif (this.data.roleEventsList.length) {\r\n\t\t\tthis.getSelectedRoleCartItems(this.data.roleEventsList);\r\n\t\t}\r\n\r\n\t\tthis.setRoleCartParams();\r\n\t\tthis.setMemberCartParams();\r\n\t}\r\n\r\n\r\n\tasync callApis() {\r\n\t\tlet response: any = await this.projectMemberLinkService.getProjectBusinessGroup(((!!this.parentDataCopy && !!this.parentDataCopy.TemplateDetails['SrcProject']) ? this.parentDataCopy.TemplateDetails['SrcProject'] : this.commonService.getProjectId())).toPromise();\r\n\t\tif (response && response.length > 0)\r\n\t\t\tthis.businessGroupList = response.filter((each: any) => each.is_Active);\r\n\r\n\t}\r\n\r\n\t// EIPAutoCompleteEventModel\r\n\tchangeBusinessGroup(event: any,) {\r\n\t\tthis.businessGroupClearFlag = 'N';\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.businessGroupId = Number(event.value);\r\n\t\t\tif (this.data.previousBusinessGroupId == this.businessGroupId) {\r\n\t\t\t\tthis.getMemberList();\r\n\t\t\t\tthis.getRoleList();\r\n\t\t\t} else {\r\n\t\t\t\tthis.getSelectedRoleCartItems([]);\r\n\t\t\t\tthis.getSelectedMemberCartItems([]);\r\n\r\n\t\t\t\tthis.data.roleEventsList = [];\r\n\t\t\t\tthis.data.roleTextWithValue = [];\r\n\r\n\t\t\t\tthis.data.memberEventList = [];\r\n\t\t\t\tthis.data.memberTextWithValue = [];\r\n\r\n\t\t\t\tthis.getMemberList();\r\n\t\t\t\tthis.getRoleList();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.clearData();\r\n\t\t}\r\n\t}\r\n\r\n\tasync getMemberList() {\r\n\t\tif (this.businessGroupId)\r\n\t\t\tthis.memberLeftList = await this.projectMemberLinkService.getSelectedMemberList(((!!this.parentDataCopy && !!this.parentDataCopy.TemplateDetails['SrcProject']) ? this.parentDataCopy.TemplateDetails['SrcProject'] : this.commonService.getProjectId()), this.businessGroupId).toPromise();\r\n\t\tthis.setMemberRightSideData();\r\n\t}\r\n\r\n\r\n\tsetMemberRightSideData() {\r\n\t\tthis.memberRightList = this.data.memberTextWithValue;\r\n\r\n\t\tif (this.memberRightList.length) {\r\n\t\t\tlet tempLeftData: any = [];\r\n\t\t\tlet grpdData = groupBy(this.memberRightList, 'value');\r\n\r\n\t\t\tthis.memberLeftList.forEach(each => {\r\n\t\t\t\tif (!(grpdData[each.memberId] && grpdData[each.memberId].length)) {\r\n\t\t\t\t\ttempLeftData.push(each);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.memberLeftList = tempLeftData;\r\n\t\t}\r\n\r\n\t\tthis.setMemberCartParams();\r\n\t}\r\n\r\n\tsetRoleRightSideData() {\r\n\t\tthis.roleRightList = this.data.roleTextWithValue;\r\n\r\n\t\tif (this.roleRightList.length) {\r\n\t\t\tlet tempLeftData: any = [];\r\n\t\t\tlet grpdData = groupBy(this.roleRightList, 'value');\r\n\r\n\t\t\tthis.roleLeftList.forEach(each => {\r\n\t\t\t\tif (!(grpdData[each.dedId] && grpdData[each.dedId].length)) {\r\n\t\t\t\t\ttempLeftData.push(each);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.roleLeftList = tempLeftData;\r\n\t\t}\r\n\t\tthis.setRoleCartParams();\r\n\t}\r\n\r\n\r\n\tasync getRoleList() {\r\n\t\tthis.roleLeftList = await this.mapRoleFeatureService.getDedAgainstDe('Role', this.businessGroupId, null, null, null, ((!!this.parentDataCopy && !!this.parentDataCopy.TemplateDetails['SrcProject']) ? this.parentDataCopy.TemplateDetails['SrcProject'] : null)).toPromise();\r\n\t\tthis.setRoleRightSideData();\r\n\t}\r\n\r\n\tsetMemberCartParams() {\r\n\t\tthis.cartMemberRequest = {\r\n\t\t\t'params': {\r\n\t\t\t\t'LockingType': 'P',\r\n\t\t\t\t'selectedCartItems': this.memberRightList,\r\n\t\t\t},\r\n\t\t\t'settings': {\r\n\t\t\t\t'mode': 'popup',\r\n\t\t\t\t'textField': 'memberName',\r\n\t\t\t\t'valueField': 'memberId',\r\n\t\t\t\t'cartLabel': 'Members',\r\n\t\t\t\t'minimumSelectedItemCount': 0\r\n\t\t\t},\r\n\t\t\t'dataSource': this.memberLeftList,\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedMemberCartItems(event: any) {\r\n\t\tthis.memberSelectedList = event;\r\n\t}\r\n\r\n\tsetRoleCartParams() {\r\n\t\tthis.cartRoleRequest = {\r\n\t\t\t'params': {\r\n\t\t\t\t'LockingType': 'P',\r\n\t\t\t\t'selectedCartItems': this.roleRightList,\r\n\t\t\t},\r\n\t\t\t'settings': {\r\n\t\t\t\t'mode': 'popup',\r\n\t\t\t\t'textField': 'dedDescription',\r\n\t\t\t\t'valueField': 'dedId',\r\n\t\t\t\t'cartLabel': 'Roles',\r\n\t\t\t\t'minimumSelectedItemCount': 0\r\n\t\t\t},\r\n\t\t\t'dataSource': this.roleLeftList,\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tgetSelectedRoleCartItems(event: any) {\r\n\t\tthis.roleSelectedList = event;\r\n\t}\r\n\r\n\tcloseDialog() {\r\n\t\tthis.dialogRef.close(null);\r\n\t}\r\n\r\n\tsave() {\r\n\r\n\t\tlet output: WFTCartDialogOutputModel = {\r\n\t\t\t'roleSelectedIds': [],\r\n\t\t\t'roleTextWithValue': [],\r\n\t\t\t'roleSelectedNames': [],\r\n\t\t\t'roleEventsList': [],\r\n\r\n\t\t\t'memberSelectedIds': [],\r\n\t\t\t'memberTextWithValue': [],\r\n\t\t\t'memberSelectedNames': [],\r\n\t\t\t'memberEventList': [],\r\n\r\n\t\t\t'totalSelectedNames': [],//roleSelectedNames + memberSelectedNames\r\n\t\t};\r\n\r\n\t\tthis.roleSelectedList.forEach((eachRole: any) => {\r\n\t\t\toutput.roleEventsList.push(eachRole);\r\n\t\t\toutput.roleSelectedIds.push(eachRole.value);\r\n\r\n\t\t\tif (eachRole.additionalValues) {\r\n\t\t\t\toutput.roleTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(eachRole.value, eachRole.additionalValues.dedDescription));\r\n\t\t\t\toutput.roleSelectedNames.push(eachRole.additionalValues.dedDescription);\r\n\t\t\t} else {\r\n\t\t\t\tlet text = eachRole.text.split('-'),\r\n\t\t\t\t\tvalue = text[0].trim(),\r\n\t\t\t\t\tname = text[1].trim();\r\n\r\n\t\t\t\toutput.roleTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(value, name));\r\n\t\t\t\toutput.roleSelectedNames.push(name);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.memberSelectedList.forEach((eachMember: any) => {\r\n\t\t\toutput.memberEventList.push(eachMember);\r\n\t\t\toutput.memberSelectedIds.push(eachMember.value);\r\n\r\n\t\t\tif (eachMember.additionalValues) {\r\n\t\t\t\toutput.memberTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(eachMember.value, eachMember.additionalValues.memberName));\r\n\t\t\t\toutput.memberSelectedNames.push(eachMember.additionalValues.memberName);\r\n\t\t\t} else {\r\n\t\t\t\tlet text = eachMember.text.split('-'),\r\n\t\t\t\t\tvalue = text[0].trim(),\r\n\t\t\t\t\tname = text[1].trim();\r\n\r\n\t\t\t\toutput.memberTextWithValue.push(this.workflowTemplateService.getAsCartSelectedValue(value, name));\r\n\t\t\t\toutput.memberSelectedNames.push(name)\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\toutput.totalSelectedNames = [...output.roleSelectedNames, ...output.memberSelectedNames];\r\n\r\n\t\toutput.previousBusinessGroupId = this.businessGroupId;\r\n\t\t// return;\r\n\t\tthis.dialogRef.close(output);\r\n\r\n\t}\r\n\r\n\tclearData() {\r\n\t\tthis.businessGroupClearFlag = \"Y\";\r\n\t\tthis.businessGroupId = null;\r\n\r\n\t\tthis.roleRightList = [];\r\n\t\tthis.roleLeftList = [];\r\n\t\tthis.roleSelectedList = [];\r\n\r\n\t\tthis.memberRightList = this.memberLeftList = this.memberSelectedList = [];\r\n\t\tthis.data = {\r\n\t\t\troleTextWithValue: [],\r\n\t\t\tmemberTextWithValue: [],\r\n\t\t\troleEventsList: [],\r\n\t\t\tmemberEventList: [],\r\n\t\t};\r\n\r\n\t\tthis.setRoleCartParams();\r\n\t\tthis.setMemberCartParams();\r\n\t}\r\n}\r\n","
\r\n
\r\n Mail ({{ parentDataCopy.isCc ? 'Cc:' :'To:' }}) - Workflow Template\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, EventEmitter, Output, ViewChild, Input, OnChanges } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { each, groupBy } from 'lodash';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WorkflowActionCartOutputModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { WorkflowAssignedToModel } from 'src/app/ViewModel/WorkflowAssignedToModel';\r\nimport { WFTCartDialogOutputModel, WorkflowTemplateStatusInputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { WftActionKendoDialogComponent } from '../wft-action-kendo-dialog/wft-action-kendo-dialog.component';\r\nimport { WftCartDialogComponent } from '../wft-cart-dialog/wft-cart-dialog.component';\r\nimport { TransmittalService } from 'src/app/Service/transmittal-template/transmittal-template.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\n\r\n@Component({\r\n\tselector: 'app-wftd-body-input',\r\n\ttemplateUrl: './wftd-body-input.component.html',\r\n\tstyleUrls: ['./wftd-body-input.component.css']\r\n})\r\nexport class WftdBodyInputComponent implements OnInit {\r\n\t@ViewChild(WftActionKendoDialogComponent) actionComponent!: WftActionKendoDialogComponent;\r\n\t@Input() TemplateDetails: any;\r\n\t@Output() getInputValues = new EventEmitter();\r\n\tformGroup: FormGroup = new FormGroup({});\r\n\tisTransmittalSelectionRequired = false;\r\n\tisDisabled_dueDays = false;\r\n\tworkFlowTaskList: RoleFeatureModel[] = [];\r\n\tworkFlowTaskListCopy: RoleFeatureModel[] = [];\r\n\tstatusList: RoleFeatureModel[] = [];\r\n\tintegrateToList: RoleFeatureModel[] = [];\r\n\ttransmittalCollection: any = [];\r\n\tselectedWorkflowTaskClear = 'N';\r\n\tselectedStatusClear = 'N';\r\n\tselectedIntegrateToClear = 'N';\r\n\tselectedWorkFlowTaskDescription = '';\r\n\r\n\t/** To: cart output data */\r\n\ttoCartOutputData!: WFTCartDialogOutputModel | null;\r\n\t/** Cc: cart output data */\r\n\tccCartOutputData!: WFTCartDialogOutputModel | null;\r\n\t/** Workflow action cart output data */\r\n\tactionCartOutputData: WorkflowActionCartOutputModel[] | null = [];\r\n\r\n\tparentWorkflowId: number | null = null;\r\n\tparentTaskId: number | null = null;\r\n\r\n\t/** Bottom kendo list */\r\n\tbottomKendoList: any = [];\r\n\r\n\tconstructor(private _transmittalService: TransmittalService,\r\n\t\tpublic commonService: CommonService,\r\n\t\tprivate dialog: MatDialog,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t) {\r\n\t\tif (this.workflowTemplateService.isViewMode)\r\n\t\t\tthis.isDisabled_dueDays = true;\r\n\t\telse\r\n\t\t\tthis.isDisabled_dueDays = false;\r\n\r\n\t\tthis.setFormDefaultValues();\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.getWorkFlowTaskList();\r\n\t\tthis.getStatusList();\r\n\t\tthis.getIntegrateToList();\r\n\t\tthis.getTransmittalDetails();\r\n\r\n\t\tthis.workflowTemplateService.supportForClearInputData.subscribe(data => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.clearInputValues();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.workflowTemplateService.supportForBottomKendo.subscribe(data => {\r\n\t\t\tif (data && data.length) {\r\n\t\t\t\tthis.bottomKendoList = data;\r\n\t\t\t\t//this.parentTaskId = this.bottomKendoList.length + 1;\r\n\t\t\t\tthis.workflowTemplateService.customTaskId = this.bottomKendoList.length + 1;\r\n\t\t\t} else {\r\n\t\t\t\t//this.parentTaskId = 1;\r\n\t\t\t\tthis.workflowTemplateService.customTaskId = 1;\r\n\t\t\t\tthis.bottomKendoList = [];\r\n\t\t\t}\r\n\t\t\tthis.syncBottomKendoListWithWfTaskList();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Set form new values\r\n\t */\r\n\tsetFormDefaultValues() {\r\n\t\tthis.formGroup = new FormGroup({\r\n\t\t\t\"workflow_Id\": new FormControl(null),\r\n\t\t\t\"task_Id\": new FormControl(null), // data maintain. I ve to create, no data ==1, kendo data length +1\r\n\t\t\t\"task_Order\": new FormControl(1), // data maintain, hide in ui\r\n\t\t\t\"step_Id\": new FormControl(null), // == task id, both same value\r\n\t\t\t\"workflow_Status\": new FormControl(null), // set - workflow eip dd id\r\n\t\t\t\"workflow_Status_Description\": new FormControl(''), // set - workflow eip dd desc\r\n\t\t\t\"due_Days\": new FormControl({\r\n\t\t\t\tvalue: 1,\r\n\t\t\t\tdisabled: this.isDisabled_dueDays\r\n\t\t\t}), //set\r\n\t\t\t\"task_Group\": new FormControl(0), // 0, by default, ui hide\r\n\t\t\t\"status_Id\": new FormControl(null), // set - status eip dd id\r\n\t\t\t\"workflow_Status_Id_Description\": new FormControl(''), // set - status eip dd desc\r\n\t\t\t\"sub_Workflow\": new FormControl(null), // null, by default, ui hide\r\n\t\t\t\"transmittal_Page\": new FormControl(null), // hide in ui, default value null\r\n\t\t\t\"integration_Type\": new FormControl(null), // set, eip dd\r\n\t\t\t\"is_Comment_Sheet\": new FormControl(false), // false by default,set\r\n\t\t\t\"is_Completed_On_Manual\": new FormControl(false), // set \r\n\t\t\t\"is_Approval_Status\": new FormControl(false), // set \r\n\t\t\t\"complete_All_Task\": new FormControl(false), // set\r\n\t\t\t\"is_Delegate\": new FormControl(false), // set\r\n\t\t\t\"is_Action_Required\": new FormControl(false), // set\r\n\t\t\t\"is_Communication_Required\": new FormControl(false), // set\r\n\t\t\t\"is_Report_Required\": new FormControl(false), // set\r\n\t\t\t\"is_Show_Attachment_In_DTN\": new FormControl(false), // set\r\n\t\t\t\"Is_SignedCopy_Required\": new FormControl(false), // set\r\n\t\t\t\"is_Active\": new FormControl(true), // set \r\n\t\t\t\"is_Due_On\": new FormControl(false), // set\r\n\t\t\t\"toSelectedNames\": new FormControl({\r\n\t\t\t\tvalue: '',\r\n\t\t\t\tdisabled: true\r\n\t\t\t}),\r\n\t\t\t\"ccSelectedNames\": new FormControl({\r\n\t\t\t\tvalue: '',\r\n\t\t\t\tdisabled: true\r\n\t\t\t}),\r\n\t\t\t\"is_CCN_Required\": new FormControl(false), // set\r\n\t\t\t\"is_No_Of_Sheets_Required\": new FormControl(false), // set\r\n\t\t\t\"can_Update_DCI_Progress_Level\": new FormControl(false), // set\r\n\t\t\t\"is_Step_For_Reassignment\": new FormControl(true),\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tpublic getTransmittalDetails() {\r\n\t\tthis._transmittalService.GetTransmittalDetails({\r\n\t\t\tproject_Id: this.commonService.getProjectId(),\r\n\t\t\tgroup_Id: this.commonService.getLoggedInUserGroupId()\r\n\t\t})\r\n\t\t\t.subscribe(res => {\r\n\t\t\t\tthis.transmittalCollection = res;\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic onChange_Transmittal(event: any) {\r\n\t\tif (event.value != -2) {\r\n\t\t\tthis.formGroup.get('transmittal_Page')?.setValue(null)\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('transmittal_Page')?.setValue(null);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove workflow task name, if exist in bottom kendo data\r\n\t */\r\n\tsyncBottomKendoListWithWfTaskList() {\r\n\t\treturn;\r\n\t\tif (this.bottomKendoList.length) {\r\n\t\t\tlet grpdBottomKendoDataById = groupBy(this.bottomKendoList, 'workflow_Status');\r\n\t\t\tlet temp = [];\r\n\t\t\tif (this.bottomKendoList.length) {\r\n\t\t\t\ttemp = [];\r\n\t\t\t\tthis.workFlowTaskListCopy.forEach(each => {\r\n\t\t\t\t\tif (!(grpdBottomKendoDataById[each.dedId] && grpdBottomKendoDataById[each.dedId].length)) {\r\n\t\t\t\t\t\ttemp.push(each);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.workFlowTaskList = temp;\r\n\t\t\t} else {\r\n\t\t\t\tthis.workFlowTaskList = this.workFlowTaskListCopy;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.workFlowTaskList = this.workFlowTaskListCopy;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Clear input values\r\n\t * @param input \r\n\t */\r\n\tclearInputValues(input?: string) {\r\n\t\tthis.parentTaskId = this.bottomKendoList.length ? this.bottomKendoList.length + 1 : null;\r\n\t\tthis.selectedWorkflowTaskClear = 'Y';\r\n\t\tthis.selectedStatusClear = 'Y';\r\n\t\tthis.selectedIntegrateToClear = 'Y';\r\n\r\n\t\tthis.setFormDefaultValues();\r\n\t\tthis.toCartOutputData = null;\r\n\t\tthis.ccCartOutputData = null\r\n\t\tthis.actionCartOutputData = null;\r\n\t\tthis.workflowTemplateService.supportForClearSelectedWfStatus.next(true);\r\n\r\n\t\tif (input && input == 'Reset') {\r\n\t\t\tthis.workflowTemplateService.supportForClearMainData.next(true);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\t/**\r\n\t * Set exisiting form values\r\n\t */\r\n\tsetFormValues(parentData: {\r\n\t\tinputData: WorkflowTemplateStatusInputModel,\r\n\t\ttoCartValues: WFTCartDialogOutputModel,\r\n\t\tccCartValues: WFTCartDialogOutputModel,\r\n\t\tactionKendoArr: any[],\r\n\t\tisFromWfTemplateList: boolean | undefined,\r\n\t\tWorkflowActionCategory: any\r\n\t}) {\r\n\t\t// this.parentWorkflowId = 0;\r\n\t\tthis.setFormDefaultValues();\r\n\t\tif (!parentData.isFromWfTemplateList) {\r\n\t\t\tthis.setFullWorkflowTaskList();\r\n\t\t\tthis.formGroup.get('workflow_Id')?.setValue(parentData.inputData.workflow_Id);\r\n\t\t\tthis.formGroup.get('task_Id')?.setValue(parentData.inputData.task_Id);\r\n\t\t\tthis.formGroup.get('task_Order')?.setValue(parentData.inputData.task_Order);\r\n\t\t\tthis.formGroup.get('step_Id')?.setValue(parentData.inputData.step_Id);\r\n\t\t\tthis.formGroup.get('workflow_Status')?.setValue(parentData.inputData.workflow_Status);\r\n\t\t\tthis.formGroup.get('workflow_Status_Description')?.setValue(parentData.inputData.workflow_Status_Description);\r\n\t\t\tthis.formGroup.get('due_Days')?.setValue(parentData.inputData.due_Days);\r\n\t\t\tthis.formGroup.get('status_Id')?.setValue(parentData.inputData.status_Id);\r\n\t\t\tthis.formGroup.get('workflow_Status_Id_Description')?.setValue(parentData.inputData.workflow_Status_Id_Description);\r\n\t\t\tthis.formGroup.get('sub_Workflow')?.setValue(parentData.inputData.sub_Workflow);\r\n\t\t\tthis.formGroup.get('transmittal_Page')?.setValue(parentData.inputData.transmittal_Page);\r\n\t\t\tthis.formGroup.get('integration_Type')?.setValue(parentData.inputData.integration_Type);\r\n\t\t\tthis.formGroup.get('is_Comment_Sheet')?.setValue(parentData.inputData.is_Comment_Sheet);\r\n\t\t\tthis.formGroup.get('is_Completed_On_Manual')?.setValue(parentData.inputData.is_Completed_On_Manual);\r\n\t\t\tthis.formGroup.get('is_Approval_Status')?.setValue(parentData.inputData.is_Approval_Status);\r\n\t\t\tthis.formGroup.get('complete_All_Task')?.setValue(parentData.inputData.complete_All_Task);\r\n\t\t\tthis.formGroup.get('is_Delegate')?.setValue(parentData.inputData.is_Delegate);\r\n\t\t\tthis.formGroup.get('is_Action_Required')?.setValue(parentData.inputData.is_Action_Required);\r\n\t\t\tthis.formGroup.get('is_Communication_Required')?.setValue(parentData.inputData.is_Communication_Required);\r\n\t\t\tthis.formGroup.get('Is_SignedCopy_Required')?.setValue(parentData.inputData.is_SignedCopy_Required);\r\n\t\t\tthis.formGroup.get('is_Report_Required')?.setValue(parentData.inputData.is_Report_Required);\r\n\t\t\tthis.formGroup.get('is_Show_Attachment_In_DTN')?.setValue(parentData.inputData.is_Show_Attachment_In_DTN);\r\n\t\t\tthis.formGroup.get('can_Update_DCI_Progress_Level').setValue(parentData.inputData.can_Update_DCI_Progress_Level);\r\n\t\t\tthis.formGroup.get('is_Active')?.setValue(parentData.inputData.is_Active);\r\n\t\t\tthis.formGroup.get('is_Due_On')?.setValue(parentData.inputData.is_Due_On);\r\n\t\t\tthis.formGroup.get('is_CCN_Required')?.setValue(parentData.inputData.is_CCN_Required);\r\n\t\t\tthis.formGroup.get('is_No_Of_Sheets_Required')?.setValue(parentData.inputData.is_No_Of_Sheets_Required);\r\n\t\t\tthis.formGroup.get('toSelectedNames')?.setValue(parentData.toCartValues.totalSelectedNames.toString());\r\n\t\t\tthis.formGroup.get('ccSelectedNames')?.setValue(parentData.ccCartValues.totalSelectedNames.toString());\r\n\t\t\tthis.formGroup.get('is_Step_For_Reassignment')?.setValue(parentData.inputData.is_Step_For_Reassignment);\r\n\t\t\tthis.selectedWorkFlowTaskDescription = this.formGroup.get('workflow_Status_Description')?.value;\r\n\t\t\tthis.toCartOutputData = parentData.toCartValues;\r\n\t\t\tthis.ccCartOutputData = parentData.ccCartValues;\r\n\t\t\tthis.actionComponent.setKendoDataFromParent(parentData.actionKendoArr, parentData.inputData.is_Approval_Status, parentData.WorkflowActionCategory);\r\n\r\n\t\t\tlet isintegrationTypeTransmittal = false;\r\n\t\t\tlet data = this.integrateToList.filter(x => x.dedId == parentData.inputData.integration_Type);\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\tif (data[0].dedDescription.toUpperCase() == 'TRANSMITTAL') {\r\n\t\t\t\t\tisintegrationTypeTransmittal = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (isintegrationTypeTransmittal == true && parentData.inputData.integration_Type && parentData.inputData.transmittal_Page) {\r\n\t\t\t\tthis.isTransmittalSelectionRequired = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.isTransmittalSelectionRequired = false;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.setFormDefaultValues();\r\n\t\t\tthis.toCartOutputData = null;\r\n\t\t\tthis.ccCartOutputData = null;\r\n\t\t\tthis.actionComponent.setKendoDataFromParent([]);\r\n\t\t\tthis.syncBottomKendoListWithWfTaskList();\r\n\t\t}\r\n\t}\r\n\r\n\tsetFullWorkflowTaskList() {\r\n\t\tthis.workFlowTaskList = this.workFlowTaskListCopy;\r\n\t}\r\n\r\n\tgetWorkFlowTaskList() {\r\n\t\tthis.workflowTemplateService.getWorkflowTaskList(this.TemplateDetails['SrcBG'], Module.Workflow, \"Workflow\", null, \"Workflow Task\", null, null, this.TemplateDetails['SrcProject']).subscribe(data => {\r\n\t\t\tthis.workFlowTaskList = data;\r\n\t\t\tdata.forEach(each => {\r\n\t\t\t\tthis.workFlowTaskListCopy.push(each);\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\tgetStatusList() {\r\n\t\tthis.workflowTemplateService.getWorkflowTaskList(this.TemplateDetails['SrcBG'], Module.Workflow, \"Workflow\", null, \"Workflow Status\", null, null, this.TemplateDetails['SrcProject']).subscribe(data => {\r\n\t\t\tthis.statusList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tgetIntegrateToList() {\r\n\t\tthis.workflowTemplateService.getWorkflowTaskList(this.TemplateDetails['SrcBG'], Module.Workflow, \"Workflow\", null, \"Workflow IntegrateTo\", null, null, this.TemplateDetails['SrcProject']).subscribe(data => {\r\n\t\t\tthis.integrateToList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tchangeWorkflowTask(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.selectedWorkflowTaskClear = 'N';\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.selectedWorkFlowTaskDescription = event.text;\r\n\t\t\tthis.formGroup.get('workflow_Status')?.setValue(event.value);\r\n\t\t\tthis.formGroup.get('workflow_Status_Description')?.setValue(event.text);\r\n\t\t} else {\r\n\t\t\tthis.selectedWorkFlowTaskDescription = '';\r\n\t\t\tthis.formGroup.get('workflow_Status')?.setValue(null);\r\n\t\t\tthis.formGroup.get('workflow_Status_Description')?.setValue('');\r\n\t\t}\r\n\t}\r\n\r\n\tchangeIntegrateTo(event: EIPAutoCompleteEventModel) {\r\n\t\tthis.selectedIntegrateToClear = 'N';\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('integration_Type')?.setValue(event.value);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('integration_Type')?.setValue(null);\r\n\t\t}\r\n\r\n\t\tif (event.text.toUpperCase() == 'TRANSMITTAL') {\r\n\t\t\tthis.isTransmittalSelectionRequired = true;\r\n\t\t} else {\r\n\t\t\tthis.isTransmittalSelectionRequired = false;\r\n\t\t}\r\n\t}\r\n\r\n\t// set type\r\n\tchangeStatus(event: any) {\r\n\t\tthis.selectedStatusClear = 'N';\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.formGroup.get('sub_Workflow')?.setValue(event.value);\r\n\t\t\tthis.formGroup.get('workflow_Status_Id_Description')?.setValue(event.text);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('sub_Workflow')?.setValue(null);\r\n\t\t\tthis.formGroup.get('workflow_Status_Id_Description')?.setValue('');\r\n\t\t}\r\n\t}\r\n\r\n\ttoggle_IsDueOn(event: any) {\r\n\t\tthis.formGroup.get('is_Due_On')?.setValue(event.checked);\r\n\t}\r\n\r\n\t/**\r\n\t * Get Form group value by key\r\n\t * @param keyName\r\n\t */\r\n\tgetFormGroupValue = (keyName: string): any => this.formGroup.get(keyName)?.value;\r\n\r\n\topenCartDialog(input: string) {\r\n\t\tif (input == 'TO') {\r\n\t\t\tlet dialogRef = this.dialog.open(WftCartDialogComponent, {\r\n\t\t\t\tdisableClose: true,\r\n\t\t\t\tpanelClass: 'mat-dialog-secondary',\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t'previousBusinessGroupId': (this.toCartOutputData && this.toCartOutputData.previousBusinessGroupId && this.toCartOutputData.previousBusinessGroupId > 0) ? this.toCartOutputData.previousBusinessGroupId : null,\r\n\t\t\t\t\t'roleEventsList': (this.toCartOutputData && this.toCartOutputData.roleEventsList && this.toCartOutputData.roleEventsList.length) ? this.toCartOutputData.roleEventsList : [],\r\n\t\t\t\t\t'memberEventList': (this.toCartOutputData && this.toCartOutputData.memberEventList && this.toCartOutputData.memberEventList.length) ? this.toCartOutputData.memberEventList : [],\r\n\t\t\t\t\t'roleTextWithValue': (this.toCartOutputData && this.toCartOutputData.roleTextWithValue && this.toCartOutputData.roleTextWithValue.length) ? this.toCartOutputData.roleTextWithValue : [],\r\n\t\t\t\t\t'memberTextWithValue': (this.toCartOutputData && this.toCartOutputData.memberTextWithValue && this.toCartOutputData.memberTextWithValue.length) ? this.toCartOutputData.memberTextWithValue : [],\r\n\t\t\t\t\t'isCc': false,\r\n\t\t\t\t\t'TemplateDetails': this.TemplateDetails\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.afterClosed().subscribe((output: WFTCartDialogOutputModel) => {\r\n\t\t\t\tif (output) {\r\n\t\t\t\t\tthis.toCartOutputData = output;\r\n\t\t\t\t\tlet tooltipData = (this.toCartOutputData && this.toCartOutputData.totalSelectedNames) ? this.toCartOutputData.totalSelectedNames : '';\r\n\t\t\t\t\tthis.formGroup.get('toSelectedNames')?.setValue(tooltipData);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlet dialogRef = this.dialog.open(WftCartDialogComponent, {\r\n\t\t\t\tdisableClose: true,\r\n\t\t\t\tpanelClass: 'mat-dialog-secondary',\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t'previousBusinessGroupId': (this.ccCartOutputData && this.ccCartOutputData.previousBusinessGroupId && this.ccCartOutputData.previousBusinessGroupId > 0) ? this.ccCartOutputData.previousBusinessGroupId : null,\r\n\t\t\t\t\t'roleEventsList': (this.ccCartOutputData && this.ccCartOutputData.roleEventsList && this.ccCartOutputData.roleEventsList.length) ? this.ccCartOutputData.roleEventsList : [],\r\n\t\t\t\t\t'memberEventList': (this.ccCartOutputData && this.ccCartOutputData.memberEventList && this.ccCartOutputData.memberEventList.length) ? this.ccCartOutputData.memberEventList : [],\r\n\t\t\t\t\t'roleTextWithValue': (this.ccCartOutputData && this.ccCartOutputData.roleTextWithValue && this.ccCartOutputData.roleTextWithValue.length) ? this.ccCartOutputData.roleTextWithValue : [],\r\n\t\t\t\t\t'memberTextWithValue': (this.ccCartOutputData && this.ccCartOutputData.memberTextWithValue && this.ccCartOutputData.memberTextWithValue.length) ? this.ccCartOutputData.memberTextWithValue : [],\r\n\t\t\t\t\t'isCc': true,\r\n\t\t\t\t\t'TemplateDetails': this.TemplateDetails\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tdialogRef.afterClosed().subscribe((output: WFTCartDialogOutputModel) => {\r\n\t\t\t\tif (output) {\r\n\t\t\t\t\tthis.ccCartOutputData = output;\r\n\t\t\t\t\tlet tooltipData = (this.ccCartOutputData && this.ccCartOutputData.totalSelectedNames) ? this.ccCartOutputData.totalSelectedNames : ''\r\n\t\t\t\t\tthis.formGroup.get('ccSelectedNames')?.setValue(tooltipData);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Action cart component output data\r\n\t * @param event\r\n\t */\r\n\tgetActionCartValue(event: any) {\r\n\t\tthis.actionCartOutputData = event\r\n\t}\r\n\r\n\tsaveBodyInputData() {\r\n\t\tif (this.actionCartOutputData && this.actionCartOutputData.length > 0)\r\n\t\t\tthis.actionCartOutputData.forEach(val => {\r\n\t\t\t\tval[\"is_Approval_Status\"] = this.formGroup.get('is_Approval_Status')?.value;\r\n\t\t\t})\r\n\t\tif (!this.actionComponent.isAllActionsSaved()) {\r\n\t\t\tthis.notificationService.showToast(\"Some of the workflow action(s) are not considered\", 'Warning');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet output: any = {\r\n\t\t\t'inputFormGroupValue': {},\r\n\t\t\t'toCart': [],\r\n\t\t\t'ccCart': [],\r\n\t\t\t'actionCart': []\r\n\t\t};\r\n\r\n\t\tif (this.workflowTemplateService.isCopyMode) {\r\n\t\t\tif (!this.formGroup.get('workflow_Status')?.value) {\r\n\t\t\t\tthis.getInputValues.emit(output);\r\n\t\t\t} else {\r\n\t\t\t\tlet output: any = {\r\n\t\t\t\t\t'inputFormGroupValue': this.validateInputFormGroupValues(this.formGroup.value),\r\n\t\t\t\t\t'toCart': this.formatCartData(this.toCartOutputData, 1),\r\n\t\t\t\t\t'ccCart': this.formatCartData(this.ccCartOutputData, 2),\r\n\t\t\t\t\t'actionCart': this.validateActionCartValues(this.actionCartOutputData), // validation done in child component\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (!output.toCart.length) {\r\n\t\t\t\t\tthis.notificationService.showToast(\"Select atleast either one Role or Member in To:\", 'Warning');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!output.actionCart.length) {\r\n\t\t\t\t\tthis.notificationService.showToast(\"Select atleast one Workflow Action\", 'Warning');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.getInputValues.emit(output);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (!this.formGroup.get('workflow_Status')?.value) {\r\n\t\t\t\tthis.notificationService.showToast(\"Select Workflow task\", \"Warning\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.formGroup.get('sub_Workflow')?.value) {\r\n\t\t\t\tthis.notificationService.showToast(\"Select Workflow stage\", \"Warning\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isTransmittalSelectionRequired && !this.formGroup.get('transmittal_Page')?.value) {\r\n\t\t\t\tthis.notificationService.showToast(\"Select Transmittal\", \"Warning\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.formGroup.get('due_Days')?.value < 1) {\r\n\t\t\t\tthis.notificationService.showToast(\"'Complete task within days' should be more than 0\", \"Warning\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.formGroup.get('is_Due_On')?.value) {\r\n\t\t\t\tthis.formGroup.get('status_Id')?.setValue(this.formGroup.get('sub_Workflow')?.value);\r\n\t\t\t} else {\r\n\t\t\t\tthis.formGroup.get('status_Id')?.setValue(null);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.formGroup.get('integration_Type')?.value && this.getWorkflowIntegrateToName(this.formGroup.get('integration_Type')?.value).toLowerCase().trim() != 'dtn preparation') {\r\n\t\t\t\tif (this.formGroup.get('Is_SignedCopy_Required')?.value && this.formGroup.get('Is_SignedCopy_Required')?.value == true) {\r\n\t\t\t\t\tthis.notificationService.showToast(\"'Signed copy' is applicable for the Integration Type of 'DTN Preparation' only\", \"Warning\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.formGroup.get('is_Approval_Status')?.value && this.formGroup.get('is_Due_On')?.value &&\r\n\t\t\t\tthis.formGroup.get('is_Approval_Status')?.value == true && this.formGroup.get('is_Due_On')?.value == true) {\r\n\t\t\t\tthis.notificationService.showToast(\"'Is Approval Status' and 'Is Due On' should not be enabled in same step\", \"Warning\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet output: any = {\r\n\t\t\t\t'inputFormGroupValue': this.validateInputFormGroupValues(this.formGroup.value),\r\n\t\t\t\t'toCart': this.formatCartData(this.toCartOutputData, 1),\r\n\t\t\t\t'ccCart': this.formatCartData(this.ccCartOutputData, 2),\r\n\t\t\t\t'actionCart': this.validateActionCartValues(this.actionCartOutputData), // validation done in child component\r\n\t\t\t};\r\n\r\n\t\t\tif (!output.toCart.length) {\r\n\t\t\t\tthis.notificationService.showToast(\"Select atleast either one Role or Member in To:\", 'Warning');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!output.actionCart.length) {\r\n\t\t\t\tthis.notificationService.showToast(\"Select atleast one Workflow Action\", 'Warning');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.getInputValues.emit(output);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getWorkflowIntegrateToName(id: number) {\r\n\t\tif (this.integrateToList.filter(item => item.dedId == id).length > 0)\r\n\t\t\treturn this.integrateToList.filter(item => item.dedId == id)[0][\"dedDescription\"];\r\n\t\telse\r\n\t\t\treturn '';\r\n\t}\r\n\r\n\t/**\r\n\t * Change To and Cc cart data to appropirate request API data format\r\n\t * @param data Cart output data\r\n\t * @param assignType 1= to, 2 = cc\r\n\t */\r\n\tformatCartData(data: WFTCartDialogOutputModel | null, assignType: 1 | 2): WorkflowAssignedToModel[] {\r\n\t\tlet outputArr: any = [];\r\n\r\n\t\tif (!data) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tdata.memberEventList.forEach(eachMember => {\r\n\t\t\tlet splitedCartValue = this.spiltCartTextValue(eachMember.text),\r\n\t\t\t\tnewObj: any = {\r\n\t\t\t\t\t\"workflow_Id\": null,\r\n\t\t\t\t\t\"task_Id\": null, // common task id\r\n\t\t\t\t\t\"member_Id\": splitedCartValue.value,\r\n\t\t\t\t\t\"member_Name\": splitedCartValue.name,\r\n\t\t\t\t\t\"role_Id\": 0,\r\n\t\t\t\t\t\"role_Description\": '',\r\n\t\t\t\t\t\"group_Id\": data.previousBusinessGroupId, // selected bg id\r\n\t\t\t\t\t\"assign_Type\": assignType, // 2 = cc, 1= to\r\n\t\t\t\t\t\"assign_Order\": 1,\r\n\t\t\t\t\t\"is_Active\": true,\r\n\t\t\t\t};\r\n\t\t\toutputArr.push(newObj);\r\n\t\t});\r\n\r\n\t\tdata.roleEventsList.forEach(eachRole => {\r\n\t\t\tlet splitedCartValue = this.spiltCartTextValue(eachRole.text),\r\n\t\t\t\tnewObj: any = {\r\n\t\t\t\t\t\"workflow_Id\": null,\r\n\t\t\t\t\t\"task_Id\": null, // common task id\r\n\t\t\t\t\t\"member_Id\": 0,\r\n\t\t\t\t\t\"member_Name\": '',\r\n\t\t\t\t\t\"role_Id\": splitedCartValue.value,\r\n\t\t\t\t\t\"role_Description\": splitedCartValue.name,\r\n\t\t\t\t\t\"group_Id\": data.previousBusinessGroupId, // selected bg id\r\n\t\t\t\t\t\"assign_Type\": assignType, // 2 = cc, 1= to\r\n\t\t\t\t\t\"assign_Order\": 1,\r\n\t\t\t\t\t\"is_Active\": true,\r\n\t\t\t\t};\r\n\t\t\toutputArr.push(newObj);\r\n\t\t});\r\n\t\toutputArr.forEach((each: any) => {\r\n\t\t\teach.task_Id = this.workflowTemplateService.selectedTaskId;\r\n\t\t});\r\n\t\treturn outputArr;\r\n\t}\r\n\r\n\tvalidateInputFormGroupValues(input: WorkflowTemplateStatusInputModel): any {\r\n\t\tif (!input) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tif (!input.due_Days) {\r\n\t\t\tinput.due_Days = null;\r\n\t\t}\r\n\r\n\t\treturn input;\r\n\t}\r\n\r\n\tvalidateActionCartValues(actionKendoList: any) {\r\n\t\tif (!actionKendoList) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tactionKendoList.forEach((each: any) => {\r\n\t\t\teach.task_Id = this.workflowTemplateService.selectedTaskId;\r\n\t\t});\r\n\r\n\t\t// if any validation needed, do here\r\n\t\treturn actionKendoList;\r\n\t}\r\n\r\n\tspiltCartTextValue(input: string): {\r\n\t\tvalue: string,\r\n\t\tname: string\r\n\t} {\r\n\t\tlet textWithValueArr = input.split('-'),\r\n\t\t\tvalue = textWithValueArr[0].trim(),\r\n\t\t\tname = textWithValueArr[1].trim();\r\n\t\treturn {\r\n\t\t\tvalue,\r\n\t\t\tname\r\n\t\t};\r\n\t}\r\n\r\n\tgetApprovalStatusValue() {\r\n\t\tthis.actionComponent.getApprovalValue(this.formGroup.get('is_Approval_Status')?.value)\r\n\t}\r\n\r\n\tcreateNewStep() {\r\n\t\t//this.parentWorkflowId = 0;\r\n\t\tthis.workflowTemplateService.supportForClearInputData.next(true);\r\n\t\tthis.workflowTemplateService.isViewMode = false;\r\n\t\tthis.workflowTemplateService.isEditMode = false;\r\n\t\tthis.workflowTemplateService.isCopyMode = false;\r\n\t\tthis.syncBottomKendoListWithWfTaskList();\r\n\t\tthis.parentTaskId = this.bottomKendoList.length + 1;\r\n\t\tthis.workflowTemplateService.selectedTaskId = this.bottomKendoList.length + 1;\r\n\r\n\t}\r\n}","\r\n \r\n \r\n
\r\n
\r\n {{selectedWorkFlowTaskDescription ?\r\n (parentTaskId ? parentTaskId: 1) + ' ' : ''}}\r\n \r\n {{selectedWorkFlowTaskDescription ? selectedWorkFlowTaskDescription : ''}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Complete task within days\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Is Active\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Due On\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Completed On Manual\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Action Required By All\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Approval Status\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Complete All Task\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is CCN Required\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is No of Sheets Change Required\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Signed Copy Required\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Update Document Released For\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Can Integrate to StageWise Dashboard\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Is Show Attachment in DTN\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Can Update DCI Progress Level\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Launch Reassign Member Pop-Up\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n To\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Cc\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\n\r\n@Component({\r\n\tselector: 'app-wftd-bottom-kendo',\r\n\ttemplateUrl: './wftd-bottom-kendo.component.html',\r\n\tstyleUrls: ['./wftd-bottom-kendo.component.css']\r\n})\r\nexport class WftdBottomKendoComponent implements OnInit {\r\n\t@Output() changeWorkflowStatus = new EventEmitter();\r\n\tenableFilter = false;\r\n\tenableFullscreen = false;\r\n\tbottomKendoList: any = [];\r\n\r\n\tconstructor(\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.workflowTemplateService.supportForBottomKendo.subscribe(data => {\r\n\t\t\tthis.bottomKendoList = data;\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\tWorkflowStepDetails_onEdit(data: any) {\r\n\t\tthis.changeWorkflowStatus.next(data);\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Workflow Step Details

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.workflow_Stage}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflow_Status_Description}}\r\n \r\n \r\n \r\n \r\n {{dataItem.integrationType}}\r\n \r\n \r\n \r\n \r\n {{dataItem.due_Days}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflowAssignedTo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflowAssignedCc}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflowAction}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { IWorkflowStatusCCNViewModel } from 'src/app/ViewModel/WorkflowStatusModel';\r\n\r\n@Component({\r\n selector: 'app-workflow-status-ccn-dialog',\r\n templateUrl: './workflow-status-ccn-dialog.component.html',\r\n styleUrls: ['./workflow-status-ccn-dialog.component.css']\r\n})\r\nexport class WorkflowStatusCCNDialogComponent implements OnInit {\r\n selectedCCNDetails!: IWorkflowStatusCCNViewModel[];\r\n doc_No!: string;\r\n pageSize :number= 20;\r\n\r\n constructor(public dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data: any, public workflowTemplateService: WorkflowTemplateService, public _dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit() {\r\n this.doc_No = this.data.doc_No\r\n this.getChangControlDetails();\r\n }\r\n\r\n getChangControlDetails() {\r\n this.workflowTemplateService.GetWorkflowStatusCCNDetails(this.data.doc_Id).subscribe((data:IWorkflowStatusCCNViewModel[]) => { this.selectedCCNDetails = data;});\r\n\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n \r\n\r\n}\r\n","
\r\n
\r\n

Document Number : {{doc_No}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.ccnNo}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ccnDescription}}\r\n \r\n \r\n \r\n \r\n {{dataItem.ccnRevNo}}\r\n \r\n \r\n \r\n \r\n {{ dataItem.ccN_Date | date: 'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.man_Hour}}\r\n \r\n \r\n \r\n \r\n {{dataItem.orginator}}\r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}} \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { ChecklistItemModel } from 'src/app/ViewModel/ChecklistItemModel';\r\nimport { IWorkflowStatusCLOutputModel, IWorkflowStatusViewModel } from 'src/app/ViewModel/WorkflowStatusModel';\r\nimport { RespondWorflowChecklistItemsComponent } from '../respond-worflow-checklist-items/respond-worflow-checklist-items.component';\r\nimport { NotificationService } from \"src/app/Service/notification.service\";\r\n\r\n\r\n@Component({\r\n selector: 'app-workflow-status-checklist-dialog',\r\n templateUrl: './workflow-status-checklist-dialog.component.html',\r\n styleUrls: ['./workflow-status-checklist-dialog.component.css']\r\n})\r\nexport class WorkflowStatusChecklistDialogComponent implements OnInit {\r\n selectedChecklistCollection!: any[];\r\n workflowCheckList: IWorkflowStatusCLOutputModel[] = [];\r\n getpopupValue: any;\r\n doc_No!: string;\r\n revision_No!:string;\r\n pageSize :number= 20;\r\n \r\n\r\n constructor(public dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data: any, public workflowTemplateService: WorkflowTemplateService,private _notificationService: NotificationService, public _dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit() {\r\n this.doc_No = this.data.doc_No;\r\n this.revision_No = this.data.documentRevisionNo;\r\n this.openCL();\r\n }\r\n\r\n closeDialog() {\r\n this._dialogRef.close();\r\n }\r\n\r\n openCL() {\r\n this.workflowTemplateService.getWorkflowDocumentCheckist(this.data.doc_Id,this.data.documentRevisionNo,this.data.workflow_Id).subscribe((data) => {\r\n data.forEach((each:any) => {\r\n each['clFullName'] = each['clShortName'] + ' - ' + each['clName'];\r\n });\r\n this.selectedChecklistCollection = data;\r\n });\r\n }\r\n\r\n public openChecklistItems(dataItem: ChecklistItemModel) {\r\n \r\n let inputdata = dataItem;\r\n let dialogRef = this.dialog.open(RespondWorflowChecklistItemsComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: { inputdata, isReadMode: true }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n });\r\n }\r\n\r\n \r\n}\r\n\r\n","
\r\n
\r\n

Document Number : {{doc_No}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{dataItem.clFullName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedByName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.uploadedOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedByName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.approvedOn | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { RowArgs } from '@progress/kendo-angular-grid';\r\nimport { truncate } from 'lodash';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { TenderQuantityService } from 'src/app/Service/tender-quantity/tender-quantity.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { IElementInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { ITenderTranDetailsInputModel, ITenderTranInputModel, ITenderTranListInputModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\n\r\n@Component({\r\n selector: 'app-workflow-tender-quantity',\r\n templateUrl: './workflow-tender-quantity.component.html',\r\n styleUrls: ['./workflow-tender-quantity.component.css']\r\n})\r\nexport class WorkflowTenderQuantityComponent implements OnInit {\r\n\r\n public documentElements: IElementInputModel[] = [];\r\n public elementsList!: any[];\r\n public existsTenderList: any[] = [];\r\n public tenderlist: any[] = [];\r\n public tenderTranList: any[] = [];\r\n public tenderTranDetailsModel: ITenderTranDetailsInputModel[] = [];\r\n public projectId!: number;\r\n public groupId!: number;\r\n public documentId!: number;\r\n public docNo!: string;\r\n public revisionNo!: string;\r\n public struct_DED_Id: any;\r\n public disc_DED_Id: any;\r\n public quantity!: string;\r\n public isFilled: any;\r\n public transtype: string = 'INSERT';\r\n public isReadMode: boolean = true;\r\n private editedRowIndex!: number;\r\n public TenderTranDetailInput: ITenderTranDetailsInputModel[] = [];\r\n\r\n @ViewChild('tqGrid') tqGrid: any;\r\n\r\n\r\n\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n private dialog: MatDialog,\r\n private _docService: DocumentService,\r\n private notificationService: NotificationService,\r\n private commonService: CommonService,\r\n public workflowTemplateService: WorkflowTemplateService,\r\n private tenderQuantityService: TenderQuantityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.projectId = this.commonService.getProjectId();\r\n if (this.data != 0) {\r\n this.documentId = this.data.documentId;\r\n this.revisionNo = this.data.revisionNo;\r\n this.docNo = this.data.docNo;\r\n this.quantity = this.data.isQuantityApplicable;\r\n this.isReadMode = this.data.isReadMode;\r\n\r\n this.getDocumentElements();\r\n }\r\n }\r\n closeDialog() {\r\n\r\n\r\n if (this.transtype == 'APPROVE' || this.transtype == 'SUBMIT') {\r\n this.dialogRef.close(true);\r\n }\r\n else {\r\n this.dialogRef.close(false);\r\n }\r\n }\r\n\r\n getDocumentElements() {\r\n this._docService.getDocumentElementsById({ docId: this.documentId }).subscribe(\r\n (pde: IElementInputModel[]) => {\r\n this.documentElements = pde;\r\n this.disc_DED_Id = this.documentElements.filter(x => x.deDescription == 'Discipline')[0].dedId;\r\n this.struct_DED_Id = this.documentElements.filter(x => x.deDescription == 'Structure / Package')[0].dedId;\r\n this.getTenderList();\r\n });\r\n }\r\n getTenderList() {\r\n this.tqGrid.defaultSelection.selectedKeys = [];\r\n //Reset the isselected flag as false\r\n this.tenderlist.forEach(x => x.isSelected = false);\r\n this.tenderQuantityService.getElementProjectConfigure(this.disc_DED_Id).subscribe(data => {\r\n this.elementsList = data;\r\n if (!!this.elementsList) {\r\n this.elementsList.forEach(element => {\r\n this.tenderQuantityService.getItemProjectConfigure(element).subscribe((data: any[]) => {\r\n if (!!data && data.length > 0) {\r\n let teId = data[0].tE_Id;\r\n let element: any = this.elementsList.filter(x => x.tE_Id == teId)[0];\r\n if (!!element) {\r\n element.items = data;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n let obj1: ITenderTranListInputModel;\r\n obj1 = {\r\n projectId: this.projectId,\r\n documentId: this.documentId,\r\n revisionNo: this.revisionNo,\r\n discDEDId: this.disc_DED_Id,\r\n structDEDId: this.struct_DED_Id\r\n }\r\n this.workflowTemplateService.getTenderTranWorkflowDetails(obj1).subscribe(data => {\r\n this.tenderlist = data;\r\n this.tenderlist.forEach(x => x.isSelected = x.actualQty > 0 ? true : false);\r\n this.existsTenderList = this.tenderlist;\r\n\r\n });\r\n }\r\n\r\n getItemData(data: any, stage: any) {\r\n let setItem = data.tenderElementDetails.filter((value: { tE_Description: any; }) => value.tE_Description == stage.tE_Description)[0];\r\n if (!!setItem && !!setItem.tI_Description)\r\n return setItem.tI_Description;\r\n }\r\n\r\n /**\r\n * Multiple select of listed documents for approval or reject\r\n * @param event\r\n *\r\n */\r\n onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: { dataItem: { isSelected: boolean; }; }) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n }\r\n filterSelected() {\r\n this.tenderlist = this.tenderlist.filter(x => x.isSelected == true);\r\n }\r\n viewAll() {\r\n this.tenderlist = this.existsTenderList;\r\n }\r\n\r\n saveTenderWF(val: string) {\r\n this.transtype = val;\r\n let tenderlist1: any;\r\n let submittedtag: boolean = false;\r\n let approvedtag: boolean = false;\r\n if (val == 'SUBMIT') {\r\n submittedtag = true;\r\n }\r\n else {\r\n submittedtag = false\r\n }\r\n if (val == 'APPROVE') {\r\n approvedtag = true;\r\n }\r\n else {\r\n approvedtag = false\r\n }\r\n\r\n\r\n if (this.tenderlist.length == 0) {\r\n // if (val == 'SUBMIT' || val == 'APPROVE') {\r\n // this.notificationService.showToast(\"Please select all items\", \"Warning\");\r\n // }\r\n // if (val == 'INSERT') {\r\n this.notificationService.showToast(\"Please Add or Configure Tender Quantity\", \"Warning\");\r\n // }\r\n }\r\n else {\r\n\r\n\r\n this.isFilled = this.tenderlist.filter(x => x.actualQty == 0);\r\n let alertmessage1 = \"Are you sure to perform the clicked action?\";\r\n let alertmessage2 = \"Some of the fields are not entered. Do You want to proceed?\";\r\n let alertmessage = \"\";\r\n if (this.isFilled.length > 0) {\r\n alertmessage = alertmessage2;\r\n }\r\n else {\r\n alertmessage = alertmessage1;\r\n }\r\n this.notificationService.showPopup(alertmessage, 'Confirm').then(data => {\r\n if (data == 'yes') {\r\n this.tenderlist.forEach(element => {\r\n\r\n this.tenderTranDetailsModel = this.tenderlist.map(x => {\r\n let result: ITenderTranDetailsInputModel = {\r\n docId: this.documentId,\r\n revisionNo: this.revisionNo,\r\n tenderId: x.t_Id,\r\n plannedQty: x.plannedQty,\r\n actualQty: x.actualQty,\r\n remarks: x.remarks,\r\n isActive: true\r\n }\r\n return result;\r\n\r\n });\r\n\r\n });\r\n\r\n let inputModel: ITenderTranInputModel = {\r\n transType: val,\r\n tenderList: this.tenderTranDetailsModel,\r\n submittedTag: submittedtag,\r\n approvedTag: approvedtag,\r\n memberId: this.commonService.getLoggedInUserId()\r\n };\r\n this.workflowTemplateService.insertUpdateTenderTransaction(inputModel).subscribe((res: StandardOutputModel) => {\r\n if (res.successCode == 200) {\r\n this.notificationService.showToast(res.successMessage, \"Success\");\r\n }\r\n else if (res.successCode == 500) {\r\n this.notificationService.showToast(res.successMessage, \"Error\");\r\n }\r\n });\r\n\r\n this.closeDialog();\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Document Number : {{docNo}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { groupBy } from 'lodash';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { ExternalMemberService } from 'src/app/Service/member/external-member.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { IProjectMemberViewModel } from 'src/app/ViewModel/MembersModel';\r\nimport { IProjectMemberByRolesOuput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { WtfActionReassignToInputModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { WorkflowAssignedToModel } from 'src/app/ViewModel/WorkflowAssignedToModel';\r\n\r\n\r\n@Component({\r\n selector: 'app-wtf-action-reassignto-dtn',\r\n templateUrl: './wtf-action-reassignto-dtn.component.html',\r\n styleUrls: ['./wtf-action-reassignto-dtn.component.css']\r\n})\r\n\r\n\r\nexport class WtfActionReassigntoDtnComponent implements OnInit {\r\n\r\n projectId: number;\r\n groupId: number;\r\n successList!:WtfActionReassignToInputModel[];\r\n enableFullscreen = false;\r\n enableFilter = false;\r\n roleMember!:any[];\r\n documentSelectedMembers!:any[];\r\n selectedDocumentMembers: Map> = new Map>();\r\n roleMembersList:Map=new Map();\r\n isInitialMembers!:Boolean\r\n isMembersChanged:Boolean = false\r\n roleWiseMembersList!:IProjectMemberByRolesOuput[];\r\n selectedDocumentDirectMembers: Map = new Map();\r\n projectMemberList!:IProjectMemberViewModel[];\r\n isDisable:Boolean=false;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n public _workflowTemplateService: WorkflowTemplateService,\r\n private _projInfoService: ProjectInfoService,\r\n private _commonService: CommonService,public _notificationService: NotificationService,public _memberService:ExternalMemberService) { }\r\n\r\n async ngOnInit(): Promise {\r\n this.projectId = this._commonService.getProjectId();\r\n this.groupId = this._commonService.getLoggedInUserGroupId();\r\n this.successList=[...this.data['successList']];\r\n await this.loadPopUp();\r\n }\r\n\r\n async loadPopUp()\r\n {\r\n let assignedToMember:any[]=[];\r\n let selectedMessageId = new Set();\r\n await this._memberService.GetMembersListAgainstProject({ group_Id: this.groupId, project_Id: this.projectId }).toPromise().then(memebers => {\r\n this.projectMemberList=memebers;\r\n })\r\n this.successList.forEach(x => {\r\n let assignedToRoles: WorkflowAssignedToModel[] = x.nextStepAssignedToRoles;\r\n if (!!assignedToRoles && assignedToRoles.length > 0)\r\n {\r\n assignedToRoles.forEach(ele => {\r\n assignedToMember.push({ docId: x.documentId, roleId: ele.role_Id });\r\n if(!selectedMessageId.has(ele.role_Id))\r\n {\r\n selectedMessageId.add(ele.role_Id);\r\n }\r\n })\r\n }\r\n let assignedToMembers:WorkflowAssignedToModel[]= x.nextStepAssignedToMember;\r\n if(!!assignedToMembers && assignedToMembers.length>0)\r\n {\r\n x.assignedToMemberDetails=[];\r\n let selectedMembers=assignedToMembers.map(member => member.member_Id);\r\n let obj={\r\n Description:'AssignedToMembers'\r\n ,selectedMembersIds:selectedMembers\r\n ,Members:this.projectMemberList\r\n }\r\n x.assignedToMemberDetails.push(obj);\r\n this.selectedDocumentDirectMembers.set(x.documentId,selectedMembers);\r\n }\r\n })\r\n let rolesIds=[...selectedMessageId].map(Number).join(\",\");\r\n \r\n if(selectedMessageId.size>0)\r\n {\r\n\r\n await this._projInfoService.getProjectMembersByRoles({projectId:this.projectId,groupId:this.groupId,roleIds:rolesIds}).toPromise().then(res => {\r\n this.roleWiseMembersList=res;\r\n })\r\n let roleWiseMembers=groupBy(this.roleWiseMembersList,'roleId');\r\n this._workflowTemplateService.getWorkflowMemberByRole(assignedToMember).toPromise().then((res)=>{\r\n let roleGroup=groupBy(res,'roleId');\r\n this.successList.forEach(x => {\r\n let assignedToRoles: WorkflowAssignedToModel[] = x.nextStepAssignedToRoles;\r\n if(!!assignedToRoles && assignedToRoles.length > 0)\r\n {\r\n assignedToRoles.forEach(async ele =>{\r\n ele.roleSelectedMembers=roleGroup[ele.role_Id].filter(val => val.docId==x.documentId).map(val1 => val1.memberId).map(Number);\r\n ele.roleMembers= roleWiseMembers[ele.role_Id];\r\n if(this.selectedDocumentMembers.has(x.documentId))\r\n {\r\n this.selectedDocumentMembers.get(x.documentId).set(ele.role_Id,ele.roleSelectedMembers);\r\n }\r\n else\r\n {\r\n let values:Map=new Map();\r\n values.set(ele.role_Id,ele.roleSelectedMembers);\r\n this.selectedDocumentMembers.set(x.documentId,values)\r\n }\r\n this.isInitialMembers=true;\r\n })\r\n }\r\n })\r\n })\r\n \r\n }\r\n }\r\n\r\n onChange_Member(event:any,documentDetails:WtfActionReassignToInputModel,roleId:any,index:number)\r\n {\r\n \r\n if(!!event)\r\n {\r\n if(this.selectedDocumentMembers.get(documentDetails.documentId).has(roleId))\r\n {\r\n this.selectedDocumentMembers.get(documentDetails.documentId).delete(roleId);\r\n let selectedMemberIds: number[] = event.emittingList.map((x: { value: any; }) => x.value);\r\n if (selectedMemberIds.length > 0)\r\n {\r\n this.selectedDocumentMembers.get(documentDetails.documentId).set(roleId, selectedMemberIds);\r\n }\r\n else{\r\n this.selectedDocumentMembers.get(documentDetails.documentId).set(roleId,[]);\r\n }\r\n this.isDisable=this.isValid();\r\n }\r\n }\r\n\r\n }\r\n\r\n onChange_DirectMember(event:any,documentDetails:WtfActionReassignToInputModel)\r\n {\r\n\r\n if(!!event)\r\n {\r\n if(this.selectedDocumentDirectMembers.has(documentDetails.documentId))\r\n {\r\n this.selectedDocumentDirectMembers.delete(documentDetails.documentId)\r\n let selectedMemberIds: number[] = event.emittingList.map((x: { value: any; }) => x.value);\r\n if(selectedMemberIds.length>0){\r\n this.selectedDocumentDirectMembers.set(documentDetails.documentId,selectedMemberIds);\r\n }\r\n else\r\n {\r\n this.selectedDocumentDirectMembers.set(documentDetails.documentId,[]);\r\n }\r\n let memberValues=documentDetails.assignedToMemberDetails\r\n if(memberValues && memberValues.length>0)\r\n memberValues[0].selectedMembersIds=selectedMemberIds && selectedMemberIds.length>0 ? selectedMemberIds:[];\r\n this.isDisable=this.isValid();\r\n }\r\n }\r\n }\r\n\r\n\r\n changeUser()\r\n {\r\n let newMembersToUpdate:{DocId:number,DocRevisionNo:string,RoleId:number,Members:number}[]=[];\r\n this.successList.forEach(x => {\r\n let roleMembers:WorkflowAssignedToModel[]=x.nextStepAssignedToRoles?.filter(r => r.role_Id>0);\r\n if(roleMembers && roleMembers.length>0)\r\n {\r\n roleMembers.forEach(y => {\r\n this.selectedDocumentMembers.get(x.documentId).get(y.role_Id).forEach(member =>{\r\n newMembersToUpdate.push({DocId:x.documentId,DocRevisionNo:x.revisionNo,RoleId:y.role_Id,Members:Number(member)});\r\n })\r\n \r\n })\r\n }\r\n if(x.nextStepAssignedToMember && x.nextStepAssignedToMember.length>0)\r\n {\r\n this.selectedDocumentDirectMembers.get(x.documentId).forEach(member => {\r\n newMembersToUpdate.push({DocId:x.documentId,DocRevisionNo:x.revisionNo,RoleId:null,Members:Number(member)});\r\n })\r\n }\r\n })\r\n\r\n let reqData: any = {\r\n projectId: this._commonService.getProjectId(),\r\n groupId: this.groupId,\r\n userId: this._commonService.getLoggedInUserId(),\r\n roleMembers: newMembersToUpdate\r\n }\r\n\r\n this._workflowTemplateService.updateWFAssignedToRoleUserBulk(reqData).subscribe((x:StandardOutputModel) => {\r\n if (!!x && x.successCode == 200) {\r\n this._notificationService.showToast(x.successMessage, \"Success\"); \r\n }\r\n else {\r\n this._notificationService.showToast(\"Failed to update next step user\", \"Warning\");\r\n }\r\n this.closeDialog();\r\n })\r\n }\r\n\r\n\r\n closeDialog()\r\n {\r\n \r\n this.dialogRef.close(); \r\n }\r\n\r\n isValid()\r\n {\r\n let isDisable!:Boolean;\r\n this.selectedDocumentDirectMembers.forEach(async x => {\r\n if(x.length==0)\r\n {\r\n isDisable= true;\r\n }\r\n })\r\n this.selectedDocumentMembers.forEach(x => {\r\n x.forEach(y => {\r\n if(y.length==0)\r\n {\r\n isDisable= true;\r\n }\r\n })\r\n })\r\n\r\n if(isDisable)\r\n return true;\r\n return false;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Next Step Member Assignment

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{dataItem.documentNumber}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.nextStepDetail.workflow_Status_Description}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Value Required\r\n \r\n \r\n \r\n \r\n Value Required\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Note \r\n
\r\n * Reassignment is applicable only for members whose action is yet pending.\r\n
\r\n * Click \"Re-Assign & Proceed\" button only if any member assigned is modified; otherwise, close the tab.\r\n
\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n   Close\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, ViewChildren, QueryList, OnDestroy } from '@angular/core';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { IScheduleDocInfo, ILatestStageDetails } from 'src/app/ViewModel/ScheduleDocumentModel';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { RespondWorkflowListModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { ScheduleWorkflowhistoryComponent } from '../../engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\nimport { IDocumentRevHistoryModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { Align } from '@progress/kendo-angular-popup';\r\nimport { BulkDTNComponent } from '../../transmittal/bulkdtn/bulkdtn.component';\r\nimport { DTNReleaseComponent } from '../../transmittal/dtnrelease/dtnrelease.component';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { DatePipe } from '@angular/common';\r\nimport { RespondWorflowActionComponent } from '../dialogs/respond-worflow-action/respond-worflow-action.component';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { WorkflowActionModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { WorkflowTemplateStatusInputModel } from 'src/app/ViewModel/WorkflowTemplateStatusInputModel';\r\nimport { StandardOutputModel } from 'src/app/ViewModel/StandardOutputModel';\r\nimport { upperCase } from 'lodash';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { ITransmittalDetailsModel } from 'src/app/ViewModel/TransmittalModel';\r\nimport { TransmittalMsgService } from 'src/app/Service/transmittal/transmittal.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { WFActionAssignedToComponent } from '../dialogs/wft-action-assignto/wft-action-asssignto.component';\r\nimport { WorkflowAssignedToModel } from 'src/app/ViewModel/WorkflowAssignedToModel';\r\n\r\n@Component({\r\n selector: 'app-respond-worflow',\r\n templateUrl: './respond-worflow.component.html',\r\n styleUrls: ['./respond-worflow.component.css']\r\n})\r\nexport class RespondWorflowComponent implements OnInit, OnDestroy {\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n public pageSize = 15;\r\n public pageSizes = [15, 30, 50, 100, {\r\n text: 'All',\r\n value: 'all'\r\n }];\r\n public hoverClass = '';\r\n public enableFilter = false;\r\n public IsShowSection = false;\r\n public totalCount: number = 0;\r\n public LastViewingRecords = 30;\r\n public enableFullscreen = false;\r\n public buttonType = 'MyDocuments';\r\n public documentStatus?: number = 1;\r\n public isShowDTNButton: boolean = true;\r\n public viewSchDoc: IScheduleDocInfo | undefined | null;\r\n public actionTakenCount: number = 0;\r\n public selectedTabIndex: number = 0;\r\n public selectedRootIndex: number = 0;\r\n public pendingActionCount: number = 0;\r\n public noOfDays = [30, 60, 90, 'All'];\r\n public LastViewingRecord: string = \"30\";\r\n public statusList: RoleFeatureModel[] = [];\r\n public selectedWFActionTabIndex: number = 0;\r\n public gridData: RespondWorkflowListModel[] = [];\r\n public viewWFAction!: null | RespondWorkflowListModel;\r\n public viewDciTabList: IScheduleDocInfo[] = [];\r\n public originalGridData: RespondWorkflowListModel[] = [];\r\n public pendingActionData: RespondWorkflowListModel[] = [];\r\n public actionTakenData: RespondWorkflowListModel[] = [];\r\n public totalData: RespondWorkflowListModel[] = [];\r\n public anchorElementPopup: any;\r\n public anchorAlignCenter: Align = { horizontal: 'center', vertical: 'bottom' };\r\n private popupAlignCenter: Align = { horizontal: 'center', vertical: 'top' };\r\n private anchorAlignRight: Align = { horizontal: 'right', vertical: 'bottom' };\r\n private popupAlignRight: Align = { horizontal: 'right', vertical: 'top' };\r\n private anchorAlignLeft: Align = { horizontal: 'left', vertical: 'bottom' };\r\n private popupAlignLeft: Align = { horizontal: 'left', vertical: 'top' };\r\n public popupMargin = { horizontal: -15, vertical: 10 };\r\n public revHistory: IDocumentRevHistoryModel | null = null;\r\n public showRevHistory: boolean = false;\r\n public obj: any;\r\n public viewWFActionTabList: RespondWorkflowListModel[] = [];\r\n public groupId!: number;\r\n public memberId!: number;\r\n public currentproject!: ProjectViewModel;\r\n public isAllworkflow: boolean = false;\r\n public isBulkApprove_enable: boolean = false;\r\n public canCreate: boolean = false;\r\n public isBulkDTN: boolean = false;\r\n public disciplineId: undefined | number;\r\n public structureId: undefined | number;\r\n public drawingdocID: undefined | number;\r\n public subWorkflow!: number;\r\n public from_Date: any;\r\n public to_Date: any;\r\n public schedule_Type: undefined | any[];\r\n public ismorefilter: boolean = false;\r\n public isfilter: boolean = false;\r\n public isBulkAction?: boolean = false;\r\n public ADSearchComponent: boolean = false;\r\n public ADSearchComponentdata: any;\r\n public bulkActionMessage: string | undefined;\r\n public respondWorkflowDetails: any;\r\n mm: number | never;\r\n @ViewChild('dciGrid') dciGrid: any;\r\n @ViewChild(RespondWorflowActionComponent) RespondWorflowActionComponent !: RespondWorflowActionComponent;\r\n @ViewChildren(RespondWorflowActionComponent) listofWorflowActionComponent: QueryList | undefined;\r\n public Unsubscribes: Subscription[] = [];\r\n\r\n constructor(public projectInfoService: ProjectInfoService, private encryptDecryptService: EncryptDecryptService, public commonService: CommonService, public workflowTemplateService: WorkflowTemplateService, public _notificationService: NotificationService, public dialog: MatDialog, private _docService: DocumentService, public datepipe: DatePipe, private _transmittalMsgService: TransmittalMsgService) {\r\n this.getStatusList();\r\n this.allData = this.allData.bind(this);\r\n this.mm = 10;\r\n }\r\n\r\n ngOnInit() {\r\n this.ADSearchComponentdata = \"respond_workflow\";\r\n this.groupId = this.commonService.getLoggedInUserGroupId();\r\n this.memberId = this.commonService.getLoggedInUserId();\r\n this.currentproject = this.commonService.getCurrentProjectDetails();\r\n this.enableMemberRoleFeatures();\r\n\r\n\r\n if (this.commonService.hasRequestedObject()) {\r\n setTimeout(() => {\r\n this.populateGrid(false);\r\n }, 2000);\r\n } else {\r\n this.populateGrid(false);\r\n }\r\n this.CheckUserAccess();\r\n }\r\n\r\n CheckUserAccess() {\r\n this.Unsubscribes.push(this.commonService.getProjectMemberRoles(this.currentproject.projectId, this.groupId, this.memberId).subscribe((result: any[]) => {\r\n this.canCreate = result.some(data => data.role_Short_Desc == 'ECD');\r\n }));\r\n }\r\n\r\n public toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n public toggleFullscreen() {\r\n this.enableFullscreen = !this.enableFullscreen;\r\n }\r\n\r\n public receviewData(data: any) {\r\n this.disciplineId = data.disc_Id;\r\n this.structureId = data.struct_Id;\r\n this.subWorkflow = data.workflowId;\r\n this.drawingdocID = data.dwgID;\r\n this.from_Date = data.from_Date;\r\n this.to_Date = data.to_Date;\r\n this.schedule_Type = data.Doc_typeid\r\n if (!!this.disciplineId || !!this.structureId || !!this.subWorkflow || !!this.drawingdocID || !!this.from_Date || !!this.to_Date || this.schedule_Type) {\r\n this.isfilter = true;\r\n this.AdvanceFiler();\r\n } else {\r\n this.populateGrid(true);\r\n }\r\n }\r\n\r\n public lastviewingrecordsmethod(event: any) {\r\n this.LastViewingRecords = event;\r\n this.populateGrid(false);\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n viewTabClick(_event: MatTabChangeEvent) {\r\n this.viewSchDoc = null;\r\n if (this.selectedTabIndex != 0) {\r\n this.viewSchDoc = this.viewDciTabList[this.selectedTabIndex - 1];\r\n }\r\n }\r\n\r\n viewWFActionTabClick(_event: MatTabChangeEvent) {\r\n this.viewWFAction = null;\r\n if (this.selectedWFActionTabIndex != 0) {\r\n this.viewWFAction = this.viewWFActionTabList[this.selectedWFActionTabIndex - 1];\r\n }\r\n }\r\n\r\n viewDocumentClick(_data: any) {\r\n let data: IScheduleDocInfo = {\r\n doc_Id: _data.documentId,\r\n revision_No: _data.revisionNo,\r\n doc_No: _data.documentNumber,\r\n doc_Title: _data.documentTitle,\r\n doc_Set_Name: '',\r\n doc_Status: '',\r\n doc_Status_Id: null,\r\n print_Size: '',\r\n print_Size_Id: null,\r\n revision_Category: null,\r\n authorized_By: '',\r\n created_By: '',\r\n created_On: new Date(),\r\n reference: null,\r\n comments: null,\r\n noOfSheets: _data.noOfSheets,\r\n stages: null,\r\n workflow_Id: _data.workflowId,\r\n is_Latest: true,\r\n is_WF_Started: true,\r\n can_Restart_WF: false,\r\n dciScheduleStageDetails: null,\r\n dciScheduleElementDetails: null,\r\n isSelected: true,\r\n approved_Tag: true,\r\n approved_On: new Date(),\r\n isShowSupersedeIcon: false\r\n };\r\n let index = this.viewDciTabList.indexOf(data);\r\n if (index == -1) {\r\n this.viewDciTabList.push(data);\r\n this.selectedTabIndex = this.viewDciTabList.length;\r\n }\r\n }\r\n\r\n closeViewTab(tab: any) {\r\n this.viewDciTabList.forEach((value, index) => {\r\n if (value.doc_Id == tab.doc_Id)\r\n this.viewDciTabList.splice(index, 1);\r\n });\r\n if (this.viewDciTabList.length == 0) {\r\n this.selectedTabIndex = 0;\r\n }\r\n }\r\n\r\n public onClick_WorkflowHistory(dataItem: IScheduleDocInfo) {\r\n let dialogRef = this.dialog.open(ScheduleWorkflowhistoryComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: dataItem\r\n });\r\n dialogRef.afterClosed().subscribe((_data: any) => {\r\n // TODO document why this arrow function is empty\r\n });\r\n }\r\n\r\n closeWFActionViewTab(tab: any) {\r\n if (tab == null) {\r\n tab = this.viewWFActionTabList[this.selectedWFActionTabIndex - 1];\r\n }\r\n this.viewWFActionTabList.forEach((value, index) => {\r\n if (value.documentId == tab.documentId)\r\n this.viewWFActionTabList.splice(index, 1);\r\n });\r\n if (this.viewWFActionTabList.length > 0) {\r\n this.selectedWFActionTabIndex = 1;\r\n this.viewWFAction = this.viewWFActionTabList[this.selectedWFActionTabIndex - 1];\r\n }\r\n if (this.viewWFActionTabList.length == 0 || this.isBulkAction == true) {\r\n this.selectedWFActionTabIndex = 0;\r\n this.isBulkAction = false;\r\n this.viewWFActionTabList = [];\r\n this.populateGrid(false);\r\n }\r\n }\r\n\r\n public tabClick(event: MatTabChangeEvent) {\r\n if (event.tab.textLabel.toUpperCase().trim() == \"PENDING ACTION\")\r\n this.documentStatus = 1;\r\n else if (event.tab.textLabel.toUpperCase().trim() == \"ACTION TAKEN\")\r\n this.documentStatus = 2;\r\n else\r\n this.documentStatus = null;\r\n this.AdvanceFiler();\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n public onSelectionChange(event: any): void {\r\n if (event['selectedRows'].length > 0) {\r\n event['selectedRows'].forEach((element: any) => {\r\n element.dataItem.isSelected = true;\r\n });\r\n }\r\n if (event['deselectedRows'].length > 0) {\r\n event['deselectedRows'].forEach((element: any) => {\r\n element.dataItem.isSelected = false;\r\n });\r\n }\r\n }\r\n\r\n public onValChange(value: string) {\r\n this.buttonType = value;\r\n this.LastViewingRecords = 30;\r\n this.selectedRootIndex = 0;\r\n this.documentStatus = 1;\r\n if (value == \"MyDocuments\")\r\n this.isShowDTNButton = true;\r\n else\r\n this.isShowDTNButton = false;\r\n this.populateGrid(false);\r\n this.enableFilter = false;\r\n this.dataBinding.filter = undefined;\r\n }\r\n\r\n public getStatusList() {\r\n this.Unsubscribes.push(this.workflowTemplateService.getWorkflowTaskList(this.commonService.getLoggedInUserGroupId(), Module.Workflow, \"Workflow\", null, \"Workflow Status\", null, null, this.commonService.getProjectId()).subscribe(data => {\r\n this.statusList = data;\r\n }));\r\n }\r\n\r\n public async populateGrid(isFilterOnLocaldata: boolean) {\r\n if (isFilterOnLocaldata) {\r\n this.isfilter = false;\r\n this.ismorefilter = false;\r\n this.gridData = this.originalGridData;\r\n this.GridSettings();\r\n }\r\n if (!isFilterOnLocaldata) {\r\n this.Unsubscribes.push(await this.workflowTemplateService.getRespondWorkflowDetails(\r\n this.currentproject.projectId, this.groupId, this.memberId,\r\n this.LastViewingRecords.toString() != 'All' ? this.LastViewingRecords : null, this.documentStatus,\r\n this.buttonType == 'MyDocuments' ? false : true,\r\n this.buttonType == 'AllWorkflow' ? true : false\r\n ).subscribe((data: RespondWorkflowListModel[]) => {\r\n this.originalGridData = data;\r\n this.gridData = this.originalGridData;\r\n this.GridSettings();\r\n if (this.gridData.length > 0 && this.commonService.hasRequestedObject()) {\r\n /*Mail Redirection*/\r\n var requestedObject = JSON.parse(this.encryptDecryptService.decrypt(this.commonService.getSessionStorageItem('requestedObject')));\r\n let inputDocId = requestedObject['inputDocId'];\r\n if (inputDocId) {\r\n this.commonService.checkAndDeleteRequestedObject();\r\n this.onClick_WorkflowAction(inputDocId);\r\n }\r\n }\r\n }));\r\n }\r\n }\r\n\r\n public GridSettings() {\r\n this.gridData.forEach(x => x.isSelected = false);\r\n this.OrganizeGridData();\r\n this.dciGrid.defaultSelection.selectedKeys = [];\r\n }\r\n\r\n public viewAttachmentClick(dataItem: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: {\r\n projectId: dataItem.projectId,\r\n docId: dataItem.documentId,\r\n revisionNo: dataItem.revisionNo,\r\n libraryName: [FileUploadLibrary.WorkflowDocument, FileUploadLibrary.SignedDocuments],\r\n createdBy: this.commonService.getLoggedInUserId(),\r\n isDeleteEnable: false,\r\n documentNo: dataItem.documentNumber\r\n },\r\n });\r\n }\r\n\r\n public openRevHistory(event: Event, dataItem: any) {\r\n this.showRevHistory = !this.showRevHistory;\r\n if (this.showRevHistory) {\r\n this.revHistory = {\r\n docId: dataItem.documentId,\r\n groupId: this.groupId,\r\n memberId: this.memberId,\r\n transType: \"Project\"\r\n };\r\n } else {\r\n this.revHistory = null;\r\n }\r\n this.anchorElementPopup = event.target;\r\n }\r\n\r\n public closeRevHistory() {\r\n this.showRevHistory = false;\r\n this.anchorElementPopup = undefined;\r\n }\r\n\r\n public onClick_WorkflowAction(documentId: number, _IsbulkAction?: boolean, _IsbulkApprove?: boolean, _IsbulkRevert?: boolean, assignedToId?: number) {\r\n this.ADSearchComponent = false;\r\n let dciToRespondWorkflow: RespondWorkflowListModel[] = [];\r\n if (documentId) {\r\n if (dciToRespondWorkflow.filter(x => x.documentId == documentId).length == 0)\r\n dciToRespondWorkflow.push(this.gridData.filter(x => (x.documentId == documentId && x.completedOn == null && x.actionPerformed == null && x.assignedToId == assignedToId))[0]);\r\n }\r\n if (!documentId) {\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n if (dciToRespondWorkflow.filter(x => x.documentId == y.documentId).length == 0)\r\n dciToRespondWorkflow.push(y);\r\n });\r\n }\r\n if (dciToRespondWorkflow.length == 0) {\r\n this._notificationService.showToast(\"No document is selected to take action\", \"Warning\");\r\n }\r\n dciToRespondWorkflow.forEach(data => {\r\n let index = this.viewWFActionTabList.indexOf(data);\r\n if (index == -1)\r\n this.viewWFActionTabList.push(data);\r\n });\r\n if (_IsbulkApprove || _IsbulkRevert) {\r\n this.respondWorkflowDetails = {\r\n \"projectId\": 0,\r\n \"groupId\": 0,\r\n respondWorkflowDetails: [],\r\n createdBy: 0,\r\n stageDetails: []\r\n };\r\n let _disObj = this.viewWFActionTabList.filter(\r\n (thing, i, arr) => arr.findIndex(t => t.workflowId === thing.workflowId) === i\r\n );\r\n if (_disObj && _disObj.length > 1) {\r\n this._notificationService.showToast(\"Selected Document's in different workflow\", \"Warning\");\r\n } else {\r\n this.Unsubscribes.push(this.workflowTemplateService.getWorkflowTemplate(_disObj[0].workflowId).subscribe((data: WorkflowTemplateDialogModel) => {\r\n\r\n this.onclick_action(data, _IsbulkApprove, _IsbulkRevert)\r\n }));\r\n }\r\n } else {\r\n if (this.viewWFActionTabList) {\r\n if (this.viewWFActionTabList.length > 10) {\r\n this._notificationService.showToast(\"Maximum ten document's only Allowed\", \"Warning\");\r\n this.isBulkAction = false;\r\n this.viewWFActionTabList = [];\r\n } else if (this.viewWFActionTabList.length > 0) {\r\n\r\n this.isBulkAction = _IsbulkAction;\r\n this.selectedWFActionTabIndex = 1;\r\n this.viewWFAction = this.viewWFActionTabList[this.selectedWFActionTabIndex - 1];\r\n }\r\n }\r\n }\r\n }\r\n\r\n public onClick_DTNPreparation() {\r\n let dtnList: RespondWorkflowListModel[] = [];\r\n let selectedWf;\r\n let isShowdDtnWf: Map = new Map()\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n dtnList.push(y);\r\n });\r\n if (dtnList.length <= 0) {\r\n this._notificationService.showToast(\"No document is selected to take action\", \"Warning\");\r\n return;\r\n }\r\n let wrongSelection = dtnList.filter(x => (x.integrationType != null || x.integrationType != '') && x.integrationType.toUpperCase().trim() != 'DTN PREPARATION');\r\n if (wrongSelection && wrongSelection.length >= 1) {\r\n this._notificationService.showToast(\"All selected Document's should be in DTN Preparation stage\", \"Warning\");\r\n return;\r\n }\r\n let list = dtnList.map(x => {\r\n if (!isShowdDtnWf.has(x.workflowId)) {\r\n isShowdDtnWf.set(x.workflowId, x.is_Show_DTN_Attachment_Task_Id != null ? true : false);\r\n }\r\n })\r\n for (let key of isShowdDtnWf.keys()) {\r\n if (isShowdDtnWf.values().next().value != isShowdDtnWf.get(key)) {\r\n this._notificationService.showToast(\"The Workflows of the selected document is not compatible for dtn preparation\", \"Warning\");\r\n return;\r\n }\r\n }\r\n let dialogRef = this.dialog.open(BulkDTNComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: {\r\n inputType: 'dtnPreparation',\r\n selectedList: dtnList\r\n },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n dialogRef.afterClosed().subscribe((_data: any) => {\r\n this.populateGrid(false);\r\n });\r\n }\r\n\r\n public async onClick_DTNRelease() {\r\n let dtnList: RespondWorkflowListModel[] = [];\r\n let selectedCommentSheetNo: any = null;\r\n let transmittalList: ITransmittalDetailsModel[] = [];\r\n let transmittalDocumentDetails: any;\r\n let documentList: any[] = [];\r\n let selectedMessageId = new Set();\r\n this.gridData.filter(x => x.isSelected).forEach(y => {\r\n dtnList.push(y);\r\n });\r\n if (dtnList.length <= 0) {\r\n this._notificationService.showToast(\"No document is selected to take action\", \"Warning\");\r\n return;\r\n }\r\n let selectedWf = dtnList[0].workflowId;\r\n let wrongSelection = dtnList.filter(x => (x.integrationType != null || x.integrationType != '') && x.integrationType.toUpperCase().trim() != \"DTN RELEASE\");\r\n if (wrongSelection && wrongSelection.length >= 1) {\r\n this._notificationService.showToast(\"All selected Document's should be in DTN Release stage\", \"Warning\");\r\n return;\r\n }\r\n if (!!dtnList && dtnList.length >= 1) {\r\n await this._transmittalMsgService.GetTransmittalList({\r\n project_id: this.commonService.getProjectId()\r\n }).toPromise().then(x => {\r\n transmittalList = x;\r\n dtnList.forEach(x => {\r\n let data = transmittalList.filter(ele => ele.documentNo == x.documentNumber && ele.message_Number == ele.message_Id.toString());\r\n if (data && data.length > 0) {\r\n if (!selectedMessageId.has(data[0].message_Id))\r\n selectedMessageId.add(data[0].message_Id);\r\n }\r\n });\r\n if (selectedMessageId.size > 1) {\r\n this._notificationService.showToast(\"The Selected Documents Have More Than One Transmittal No\", \"Warning\");\r\n return;\r\n } else {\r\n selectedCommentSheetNo = selectedMessageId.values().next().value\r\n }\r\n })\r\n if (selectedCommentSheetNo != null) {\r\n await this._transmittalMsgService.GetTransmittalDocumentDetails(selectedCommentSheetNo).toPromise().then(data => {\r\n transmittalDocumentDetails = data;\r\n data.transmittalDocumentDetails.forEach(y => {\r\n let doc = this.gridData.filter(x => x.documentId == y.doc_Id && ((x.integrationType != null || x.integrationType != '') && x.integrationType.toUpperCase().trim() == \"DTN RELEASE\"));\r\n\r\n if (doc.length > 0)\r\n documentList.push(doc);\r\n else {\r\n this.Unsubscribes.push(this.workflowTemplateService.getRespondWorkflowDetails(\r\n this.currentproject.projectId,\r\n this.groupId,\r\n null,\r\n null,\r\n null,\r\n false,\r\n false,\r\n y.doc_Id,\r\n y.revision_No\r\n ).subscribe((res: RespondWorkflowListModel[]) => {\r\n let op = res.filter(x => x.documentId == y.doc_Id && ((x.integrationType != null || x.integrationType != '') && x.integrationType.toUpperCase().trim() == \"DTN RELEASE\"));\r\n documentList.push(op);\r\n }));\r\n }\r\n })\r\n })\r\n }\r\n }\r\n if (selectedWf && (selectedCommentSheetNo != null) && dtnList.length > 0 && transmittalDocumentDetails.transmittalDocumentDetails.length > 0) {\r\n let dialogRef = this.dialog.open(DTNReleaseComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n data: {\r\n projectId: this.commonService.getProjectId(),\r\n inputType: 'dtnRelease',\r\n workflowId: selectedWf,\r\n selectedList: dtnList,\r\n selectedCommentSheetNo: selectedCommentSheetNo,\r\n transmittalList: transmittalList,\r\n documentList: documentList,\r\n transmittalDocumentDetails: transmittalDocumentDetails\r\n },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n dialogRef.afterClosed().subscribe((_data: any) => {\r\n this.populateGrid(false);\r\n });\r\n }\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.gridData\r\n };\r\n return result;\r\n }\r\n\r\n public BulkSubmit() {\r\n this.RespondWorflowActionComponent.BulkSubmit(this.listofWorflowActionComponent);\r\n }\r\n\r\n enableMemberRoleFeatures() {\r\n this.Unsubscribes.push(this.commonService.getProjectMemberFeatures(this.currentproject.projectId, this.memberId, this.groupId).subscribe((res: any[]) => {\r\n this.isAllworkflow = res.some(data => data.feature_Desc == 'Super Workflow');\r\n this.isBulkApprove_enable = res.some(data => data.feature_Desc == 'Bulk approve in SH and DDH stage');\r\n }));\r\n }\r\n\r\n AdvanceSearch() {\r\n this.ADSearchComponent = !this.ADSearchComponent\r\n if (!this.ADSearchComponent) {\r\n this.gridData = this.originalGridData;\r\n this.GridSettings();\r\n }\r\n }\r\n\r\n public onclick_action(currentWorkflowDetails: any, _IsbulkApprove?: boolean, _IsbulkRevert?: boolean) {\r\n let action: any;\r\n let getValue: any;\r\n let currentTask: any;\r\n let LatestStageDetails: ILatestStageDetails[] = [];\r\n let SendMailOnActionCompletionInputModel: any[] = [];\r\n for (var x of this.viewWFActionTabList) {\r\n getValue = x;\r\n if (getValue.taskName && (upperCase(getValue.taskName.trim()) == \"SH APPROVAL IN PROGRESS\" || upperCase(getValue.taskName.trim()) == \"DDH APPROVAL IN PROGRESS\")) {\r\n currentTask = currentWorkflowDetails.workflowStatus.filter((item: any) => item.sub_Workflow == getValue.subWorkflow && item.workflow_Status_Description.toUpperCase().trim() == getValue.taskName.toUpperCase().trim())[0];\r\n if (_IsbulkApprove)\r\n action = currentWorkflowDetails.workflowAction.filter((x: any) => (x.task_Id == getValue.currentTaskId) && (x.action_Description == \"Approve\"))[0];\r\n else\r\n action = currentWorkflowDetails.workflowAction.filter((x: any) => (x.task_Id == getValue.currentTaskId) && (x.action_Description == \"Revert\"))[0];\r\n let workflowActions: WorkflowActionModel[] = currentWorkflowDetails.workflowAction.filter((x: any) => x.task_Id == currentTask.task_Id);\r\n if (!!workflowActions && workflowActions.length > 0) {\r\n let v = currentWorkflowDetails.workflowAction.filter((x: any) => x.enable_Tag && x.task_Id == currentTask.task_Id);\r\n let SupersedeSubWorkflows = v.map((item: any) => item.next_Step_Sub_Workflow).filter((value: any, index: number, self: any) => self.indexOf(value) === index).join(',');\r\n let currentActionDetails = currentWorkflowDetails.workflowAction.filter((item: any) => item.task_Id == getValue.currentTaskId && item.action_Id == action.action_Id);\r\n let _respondWorkflowDetails: any = {\r\n \"projectId\": 0,\r\n \"groupId\": 0,\r\n respondWorkflowDetails: [],\r\n createdBy: 0,\r\n stageDetails: []\r\n };\r\n let obj: any = {};\r\n obj[\"documentId\"] = getValue.documentId;\r\n obj[\"revisionNumber\"] = getValue.revisionNo;\r\n //track 2 only required if that step is in super seed\r\n obj[\"nextRevisionNumber\"] = null\r\n obj[\"workflowId\"] = getValue.workflowId;\r\n obj[\"TaskId\"] = getValue.currentTaskId;\r\n obj[\"assignType\"] = getValue.assignedType;\r\n obj[\"memberId\"] = this.memberId;\r\n getValue.assignedToId;\r\n obj[\"actionPerformed\"] = action.action_Id;\r\n obj[\"completedBy\"] = this.memberId;\r\n obj[\"statusId\"] = currentActionDetails[0].status_Id;\r\n // is complted on manul field enabled in workflow template\r\n obj[\"completedOn\"] = null;\r\n obj[\"commentSheetNo\"] = null;\r\n obj[\"comments\"] = getValue.comments;\r\n obj[\"delayReason\"] = getValue.delayReason;\r\n obj[\"internalReason\"] = getValue.internalReason;\r\n obj[\"externalReason\"] = getValue.externalReason;\r\n // track 1\r\n obj[\"isFileAvailable\"] = true;\r\n obj[\"taskSlNo\"] = getValue.taskSerialNumber;\r\n //track 3\r\n //is Is Update Document Revision Status is true in workflow template\r\n obj[\"docStatus\"] = null;\r\n\r\n this.respondWorkflowDetails.projectId = getValue.projectId;\r\n this.respondWorkflowDetails.groupId = getValue.groupId;\r\n this.respondWorkflowDetails.createdBy = this.memberId;\r\n this.respondWorkflowDetails.stageDetails = LatestStageDetails;\r\n this.respondWorkflowDetails.respondWorkflowDetails.push(obj);\r\n\r\n SendMailOnActionCompletionInputModel.push({\r\n projectId: this.currentproject.projectId,\r\n groupId: this.groupId,\r\n documentId: getValue.documentId,\r\n documentRevision: getValue.revisionNo,\r\n workflowId: getValue.workflowId,\r\n createdBy: this.memberId,\r\n Doc_Title: getValue.documentTitle,\r\n Doc_No: getValue.documentNumber,\r\n toSendSingleMail: false\r\n });\r\n if (this.viewWFActionTabList.length - 1 == this.viewWFActionTabList.indexOf(x))\r\n this.Unsubscribes.push(this.workflowTemplateService.BulkPostRespondWorkflowDetails(this.respondWorkflowDetails).subscribe(data => {\r\n if (data[\"successCode\"] == 200) {\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n let isChangeUserPopupToShow = Boolean(JSON.parse(data[\"result\"].toString().split(',')[0]));\r\n let _nextStepId = parseInt(JSON.parse(data[\"result\"].toString().split(',')[1]));\r\n this.workflowTemplateService.BulkSendMailOnActionCompletion(SendMailOnActionCompletionInputModel).subscribe((_res: StandardOutputModel) => {\r\n this.afterDailogClose(\"\", data);\r\n this.populateGrid(false);\r\n this.viewWFActionTabList = [];\r\n })\r\n }\r\n }));\r\n }\r\n } else {\r\n this._notificationService.showPopup(\"Document's current workflow task Must be in 'SH Approval In Progress.' or 'DDH Approval In Progress'. Please Check Selected Document's \", \"Warning\");\r\n this.respondWorkflowDetails = [];\r\n this.viewWFActionTabList = [];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public assignNextStep(_respondWorkflowDetails: any, _action: WorkflowActionModel, currentWorkflowDetails: any, wfInputDetails: any) {\r\n this.Unsubscribes.push(this.workflowTemplateService.postRespondWorkflowDetails(_respondWorkflowDetails).subscribe(data => {\r\n data[\"doc_no\"] = wfInputDetails.documentNumber;\r\n if (data[\"successCode\"] == 200) {\r\n let isChangeUserPopupToShow = Boolean(JSON.parse(data[\"result\"].toString().split(',')[0]));\r\n let _nextStepId = parseInt(JSON.parse(data[\"result\"].toString().split(',')[1]));\r\n let stepDetail: WorkflowTemplateStatusInputModel = currentWorkflowDetails.workflowStatus.filter((x: any) => x.step_Id == _nextStepId)[0];\r\n } else {\r\n this.bulkActionMessage += data[\"doc_no\"] + \" \" + data[\"successMessage\"]\r\n }\r\n }));\r\n }\r\n\r\n public SendMailOnActionCompletion(data: any, stepDetails: WorkflowTemplateStatusInputModel, successData: any, wfInputDetails: any) {\r\n let reqData: any = {\r\n projectId: this.currentproject.projectId,\r\n groupId: this.groupId,\r\n documentId: wfInputDetails.documentId,\r\n documentRevision: wfInputDetails.revisionNo,\r\n workflowId: stepDetails.workflow_Id,\r\n createdBy: this.memberId\r\n };\r\n this.Unsubscribes.push(this.workflowTemplateService.SendMailOnActionCompletion(reqData).subscribe((_res: StandardOutputModel) => {\r\n this.afterDailogClose(data, successData);\r\n }));\r\n }\r\n\r\n public afterDailogClose(x: any, data: any) {\r\n if (!!x && x == \"-1\") {\r\n this.bulkActionMessage += data[\"doc_no\"] + \" \" + data[\"successMessage\"]\r\n } else {\r\n if (!!x && x.successCode == 200) {\r\n this.bulkActionMessage += data[\"doc_no\"] + \" \" + data[\"successMessage\"]\r\n } else {\r\n this.bulkActionMessage += data[\"doc_no\"] + \" \" + \"Failed to update next step user\";\r\n }\r\n }\r\n }\r\n\r\n public CopyDetails(Data: any) {\r\n let _copy_check_list_obj = JSON.stringify(Data.selectedChecklistCollection);\r\n let _obj: any = this.listofWorflowActionComponent\r\n let _check_list: any[] = [];\r\n if (_obj._results) {\r\n _obj._results.forEach((x: any) => {\r\n if (x.isChecklistRequired && x.wfInputDetails.documentDisciplineId == Data.wfInputDetails.documentDisciplineId && x.wfInputDetails.documentId != Data.wfInputDetails.documentId) {\r\n x.selectedChecklistCollection = JSON.parse(_copy_check_list_obj);\r\n _check_list.push({\r\n Doc_Id: x._wfDetails.documentId,\r\n Doc_Revision: x._wfDetails.revisionNo,\r\n Parent_Doc_Id: Data.wfInputDetails.documentId,\r\n Parent_Doc_Revision: Data.wfInputDetails.revisionNo,\r\n Task_Sl_No: x._wfDetails.taskSerialNumber\r\n });\r\n\r\n x.selectedChecklistCollection = x.selectedChecklistCollection.map(y => {\r\n y.documentNumber = x._wfDetails.documentNumber\r\n y.documentId = x._wfDetails.documentId\r\n y.documentRevisionNo = x._wfDetails.revisionNo\r\n y.documentTitle = x._wfDetails.documentTitle\r\n y.taskSerialNumber = x._wfDetails.taskSerialNumber\r\n\r\n return y;\r\n });\r\n };\r\n\r\n });\r\n if (_check_list && _check_list.length > 0)\r\n this.workflowTemplateService.PostWorkflowDocumentCopyCheckist(_check_list).subscribe(data => {\r\n if (data[\"successCode\"] == 200) {\r\n _obj._results.forEach((x: any) => {\r\n if (x.isChecklistRequired && x.wfInputDetails.documentDisciplineId == Data.wfInputDetails.documentDisciplineId && x.wfInputDetails.documentId != Data.wfInputDetails.documentId) {\r\n x.is_checklistCopied = true;\r\n }\r\n });\r\n\r\n this._notificationService.showToast(data[\"successMessage\"], \"Success\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n public HelpUrlClick() {\r\n let x = JSON.parse(this.commonService.getSessionStorageItem(\"Menu\"))\r\n let url = x.filter((y: any) => y.menuDesc == \"Respond Workflow\")[0].helpUrl\r\n if (url) {\r\n window.open(url);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.Unsubscribes.forEach(x => x.unsubscribe());\r\n }\r\n\r\n AdvanceFiler() {\r\n this.gridData = this.originalGridData;\r\n\r\n this.gridData = this.gridData.filter(data =>\r\n (!this.disciplineId || data.documentDisciplineId == this.disciplineId) &&\r\n (!this.structureId || data.documentStructureId == this.structureId) &&\r\n (!this.subWorkflow || data.subWorkflow == this.subWorkflow) &&\r\n (!this.drawingdocID || data.drawingdocID == this.drawingdocID) &&\r\n (!this.schedule_Type || this.schedule_Type.indexOf(data.schedule_Type) !== -1)\r\n )\r\n if (!!this.from_Date && !!this.to_Date) {\r\n let fromDate = new Date(this.datepipe.transform(this.from_Date, \"dd-MMM-yyyy\"));\r\n let toDate = new Date(this.datepipe.transform(this.to_Date, \"dd-MMM-yyyy\"));\r\n this.gridData = this.gridData.filter(x => {\r\n let s_date = new Date(this.datepipe.transform(x.assignedOn, \"dd-MMM-yyyy\"));\r\n return s_date >= fromDate && s_date <= toDate;\r\n });\r\n }\r\n let _griddata = JSON.parse(JSON.stringify(this.gridData));\r\n if (this.documentStatus == 1) {\r\n this.gridData = this.gridData.filter(x => x.actionPerformed == null);\r\n } else if (this.documentStatus == 2) {\r\n this.gridData = this.gridData.filter(x => x.actionPerformed != null);\r\n }\r\n this.pendingActionCount = _griddata.filter((x: any) => x.actionPerformed == null).length;\r\n this.actionTakenCount = _griddata.filter((x: any) => x.actionPerformed != null).length;\r\n this.totalCount = _griddata.length;\r\n }\r\n\r\n OrganizeGridData() {\r\n if (this.documentStatus == 1) {\r\n this.gridData = this.originalGridData.filter(x => x.actionPerformed == null);\r\n } else if (this.documentStatus == 2) {\r\n this.gridData = this.originalGridData.filter(x => x.actionPerformed != null);\r\n } else if (this.documentStatus == null) {\r\n this.gridData = this.originalGridData;\r\n }\r\n this.pendingActionCount = this.originalGridData.filter(x => x.actionPerformed == null).length;\r\n this.actionTakenCount = this.originalGridData.filter(x => x.actionPerformed != null).length;\r\n this.totalCount = this.originalGridData.length;\r\n }\r\n\r\n changeAssignedTo(workflowDetails: RespondWorkflowListModel) {\r\n let workflowTemplateDetails!: WorkflowTemplateDialogModel;\r\n this.workflowTemplateService.getWorkflowTemplate(workflowDetails.workflowId).subscribe((res: WorkflowTemplateDialogModel) => {\r\n workflowTemplateDetails = res;\r\n let stepDetail: WorkflowTemplateStatusInputModel = workflowTemplateDetails.workflowStatus.filter(x => x.step_Id == workflowDetails.currentTaskId)[0];\r\n let nextStepAssignedToRoles: WorkflowAssignedToModel[] = workflowTemplateDetails.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type == 1).filter(r => r.role_Id > 0);\r\n let nextStepAssignedToMembers: WorkflowAssignedToModel[] = workflowTemplateDetails.workflowAssignedTo.filter(x => x.task_Id == stepDetail.task_Id && x.assign_Type == 1).filter(r => r.role_Id == 0 && r.member_Id > 0);\r\n if (!!stepDetail && !!nextStepAssignedToRoles && nextStepAssignedToRoles.length > 0) {\r\n\r\n let dialogrRef = this.dialog.open(WFActionAssignedToComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '800px',\r\n data: {\r\n title:'Current Step Member Re Assignment',\r\n docId: workflowDetails.documentId,\r\n docNo: workflowDetails.documentNumber,\r\n revisionNo: workflowDetails.revisionNo,\r\n docDiscipline: workflowDetails.documentDisciplineId,\r\n docDisciplineDEId: workflowDetails.documentDisciplineDEId,\r\n nextStep: stepDetail,\r\n assignedToRoles: nextStepAssignedToRoles,\r\n assignedToMembers: nextStepAssignedToMembers && nextStepAssignedToMembers.length > 0 ? nextStepAssignedToMembers : null,\r\n docTaskId: workflowDetails.taskSerialNumber,\r\n isReassign: true\r\n },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n dialogrRef.afterClosed().subscribe((x: any) => {\r\n if (!!x) {\r\n if (x.successCode == 200) {\r\n this._notificationService.showToast(\"Re-Assigment Successful!!!\", \"Success\");\r\n this.populateGrid(false);\r\n }\r\n } else {\r\n this._notificationService.showToast(\"Failed to update next step user\", \"Warning\");\r\n this.populateGrid(false);\r\n }\r\n })\r\n } else if (!!stepDetail && !!nextStepAssignedToMembers && nextStepAssignedToMembers.length > 0) {\r\n let dialogrRef = this.dialog.open(WFActionAssignedToComponent, {\r\n panelClass: 'mat-dialog-secondary',\r\n width: '800px',\r\n data: {\r\n title:'Current Step Member Re Assignment',\r\n docId: workflowDetails.documentId,\r\n docNo: workflowDetails.documentNumber,\r\n revisionNo: workflowDetails.revisionNo,\r\n docDiscipline: workflowDetails.documentDisciplineId,\r\n docDisciplineDEId: workflowDetails.documentDisciplineDEId,\r\n nextStep: stepDetail,\r\n assignedToRoles: null,\r\n assignedToMembers: nextStepAssignedToMembers,\r\n docTaskId: workflowDetails.taskSerialNumber,\r\n isReassign: true\r\n },\r\n autoFocus: false,\r\n disableClose: true\r\n });\r\n dialogrRef.afterClosed().subscribe((x: any) => {\r\n if (!!x) {\r\n if (x.successCode == 200) {\r\n this._notificationService.showToast(\"Re-Assigment Successful!!!\", \"Success\");\r\n this.populateGrid(false);\r\n }\r\n } else {\r\n this._notificationService.showToast(\"Failed to update next step user\", \"Warning\");\r\n this.populateGrid(false);\r\n }\r\n })\r\n }\r\n })\r\n }\r\n}","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{tab.doc_No}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{tab.documentNumber}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Pending Action{{pendingActionCount}}\r\n \r\n \r\n \r\n \r\n Action Taken{{actionTakenCount}}\r\n \r\n \r\n \r\n \r\n All {{totalCount}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n My Docs\r\n Delegated Docs\r\n All Workflow\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n   |\r\n
\r\n \r\n
\r\n   |\r\n
\r\n \r\n \r\n
\r\n   |\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Details

\r\n
\r\n

- Viewing last

\r\n \r\n

days records

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

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n Grid Settings\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentNumber}}\r\n \r\n {{dataItem.documentNumber}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.documentTitle}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.revisionNo}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.discipline}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.workflowDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.subWorkflowName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.taskName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.integrationType}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.message_Number}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.assignedToName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.assignedOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.completedByName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.completedOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n   \r\n \r\n
","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { WorkflowTemplateComponent } from \"./workflow-template/workflow-template.component\";\r\nimport { RespondWorflowComponent } from './respond-worflow/respond-worflow.component';\r\nimport { WorkflowStatusComponent } from \"./workflow-status/workflow-status.component\";\r\n\r\nexport const workflowRoutes: Routes = [\r\n { path: 'template', component: WorkflowTemplateComponent, data: { title: 'WORKFLOW TEMPLATE', isProjectCodeRequired: false } },\r\n { path: 'respondworflow', component: RespondWorflowComponent, data: { title: 'RESPOND WORKFLOW', isProjectCodeRequired: true } },\r\n { path: 'workflowstatus', component: WorkflowStatusComponent, data: { title: 'DOCUMENT WORKFLOW DETAILS', isProjectCodeRequired: true } }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(workflowRoutes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class WorkflowRoutingModule { }","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Module } from 'src/app/Service/element-details.data.service';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { EncryptDecryptService } from 'src/app/Service/encrypt-decrypt.service';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { IWorkflowStatusInputModel, IWorkflowStatusViewModel } from 'src/app/ViewModel/WorkflowStatusModel';\r\nimport { WorkflowStatusCCNDialogComponent } from '../dialogs/workflow-status-ccn-dialog/workflow-status-ccn-dialog.component';\r\nimport { WorkflowStatusChecklistDialogComponent } from '../dialogs/workflow-status-checklist-dialog/workflow-status-checklist-dialog.component';\r\nimport { WorkflowTenderQuantityComponent } from '../dialogs/workflow-tender-quantity/workflow-tender-quantity.component';\r\nimport { IProjectElementDetailsOutput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\r\nimport { DocumentService } from 'src/app/Service/document/document.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { CommunicationService } from 'src/app/Service/communication/communication.service';\r\nimport * as _ from 'lodash';\r\nimport { ScheduleWorkflowhistoryComponent } from '../../engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component';\r\nimport { FileListComponent } from 'src/app/CommonComponents/file-list/file-list.component';\r\nimport { FileUploadLibrary } from 'src/app/Service/file/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-workflow-status',\r\n templateUrl: './workflow-status.component.html',\r\n styleUrls: ['./workflow-status.component.css']\r\n})\r\nexport class WorkflowStatusComponent implements OnInit {\r\n @ViewChild(DataBindingDirective) dataBinding!: DataBindingDirective;\r\n public selectedRootIndex = 0;\r\n public selectedTabIndex = 0;\r\n public messageId !: null | number;\r\n public canView: boolean = false;\r\n public isRedirected: boolean = false;\r\n public isPending: boolean = true;\r\n public viewTabs: any[] = [];\r\n public viewData: any[] = [];\r\n public searchList: any[] = [];\r\n public approvedList: any[] = [];\r\n public forActionList: any[] = [];\r\n public rejectedList: any[] = [];\r\n public inProgressList: any[] = [];\r\n public projectId: null | number = null;\r\n public groupId: number = 0;\r\n public memberId: number = 0;\r\n public documentList: any[] = [];\r\n public dynamicHeader: any[] = [];\r\n public data: any[] = [];\r\n public buttonType = 'MyDocuments';\r\n public LastViewingRecords = 30;\r\n workflowStatusView: any[] = [];\r\n workflowList: IWorkflowStatusViewModel[] = [];\r\n enableFilter = false;\r\n public structure: any[] = [];\r\n public discipline: any[] = [];\r\n public dwgList: any[] = [];\r\n public discipline_Id?: null | number;\r\n public structure_Id?: null | number;\r\n public drg_Type?: null | string = null;\r\n public isLatest: boolean = true;\r\n public _docService: DocumentService;\r\n\r\n Project_Id!: number;\r\n Group_Id: number = 0;\r\n selectedChecklistCollection: Array = new Array();\r\n\r\n constructor(\r\n private encryptDecryptService: EncryptDecryptService,\r\n public _notificationService: NotificationService,\r\n public workflowTemplateService: WorkflowTemplateService,\r\n public commonService: CommonService,\r\n private dialog: MatDialog,\r\n private communicationService: CommunicationService,\r\n private _projInfoService: ProjectInfoService) { this.allData = this.allData.bind(this); }\r\n\r\n ngOnInit() {\r\n this.Project_Id = this.commonService.getProjectId();\r\n this.Group_Id = this.commonService.getLoggedInUserGroupId();\r\n this.getDropDownValue();\r\n this.getworkflowdetails();\r\n }\r\n\r\n getDropDownValue() {\r\n\r\n this._projInfoService.getProjectElementDetails({ projectId: this.Project_Id, groupId: this.Group_Id, moduleId: Module.ScheduleDocument, deDescription: 'Discipline' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.discipline = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({ projectId: this.Project_Id, groupId: this.Group_Id, moduleId: Module.ScheduleDocument, deDescription: 'Structure / Package' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.map(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.structure = res;\r\n });\r\n\r\n this._projInfoService.getProjectElementDetails({ projectId: this.Project_Id, groupId: this.Group_Id, moduleId: Module.ScheduleDocument, deDescription: 'DWG / DOC' }).subscribe((res: IProjectElementDetailsOutput[]) => {\r\n res.forEach(val => val.displayText = val.dedShortDescription + \" - \" + val.dedDescription);\r\n this.dwgList = res;\r\n });\r\n\r\n }\r\n\r\n viewDocumentClick(data: any) {\r\n let index = this.viewTabs.indexOf(data);\r\n if (index == -1) {\r\n if (!this.canView) {\r\n this._notificationService.showPopup(\"You do not have View access. Kindly contact Admin\", 'Information');\r\n return;\r\n }\r\n\r\n this.viewTabs.push(data);\r\n this.selectedTabIndex = 1;\r\n }\r\n }\r\n selectedDiscipline(value: any) {\r\n if (value.value != \"-2\") {\r\n this.discipline_Id = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.discipline_Id = null;\r\n }\r\n }\r\n\r\n selectedSturcture(value: any) {\r\n if (value.value != \"-2\") {\r\n this.structure_Id = value.additionalValues.additionalValues.dedId;\r\n } else {\r\n this.structure_Id = null;\r\n }\r\n }\r\n\r\n selectedDwg(value: any) {\r\n if (value.value != \"-2\") {\r\n this.drg_Type = value.additionalValues.additionalValues.dedId.toString();\r\n } else {\r\n this.drg_Type = null;\r\n }\r\n }\r\n\r\n getworkflowdetails() {\r\n let obj: IWorkflowStatusInputModel = {\r\n Project_Id: this.Project_Id,\r\n Group_Id: this.Group_Id,\r\n discipline_Id: this.discipline_Id ? this.discipline_Id : undefined,\r\n structure_Id: this.structure_Id,\r\n drg_Type: this.drg_Type,\r\n Search_Text: null,\r\n isLatest: this.isLatest\r\n };\r\n this.workflowTemplateService.GetWorkflowStatusDetails(obj).subscribe((data: IWorkflowStatusViewModel[]) => {\r\n this.workflowStatusView = data;\r\n });\r\n }\r\n\r\n public openTQ(data: IWorkflowStatusViewModel) {\r\n let dialogRef = this.dialog.open(WorkflowTenderQuantityComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '60',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n disableClose: true,\r\n data: { documentId: data.doc_Id, docNo: data.doc_No, revisionNo: data.revision_No, isReadMode: true }\r\n });\r\n }\r\n\r\n public onClick_WorkflowCheckList(data: IWorkflowStatusViewModel) {\r\n let checklist = {\r\n 'workflow_Id': data.workflow_Id,\r\n 'doc_Id': data.doc_Id,\r\n 'doc_No': data.doc_No,\r\n 'documentRevisionNo': data.revision_No\r\n }\r\n let dialogRef = this.dialog.open(WorkflowStatusChecklistDialogComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '50',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n data: checklist\r\n });\r\n dialogRef.afterClosed().subscribe(data => {\r\n });\r\n }\r\n\r\n public onClick_WorkflowHistory(data: IWorkflowStatusViewModel) {\r\n let dialogRef = this.dialog.open(ScheduleWorkflowhistoryComponent, {\r\n panelClass: 'mat-dialog-content',\r\n data: data,\r\n maxHeight: '100%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data) => {\r\n });\r\n }\r\n\r\n public viewAttachmentClick(dataItem: any) {\r\n this.dialog.open(FileListComponent, {\r\n panelClass: ['mat-dialog-secondary', 'w80'],\r\n data: { projectId: this.commonService.getProjectId(), docId: dataItem.doc_Id, revisionNo: null, libraryName: [FileUploadLibrary.WorkflowDocument, FileUploadLibrary.SignedDocuments], createdBy: this.commonService.getLoggedInUserId(), isDeleteEnable: false, documentNo: dataItem.doc_No },\r\n });\r\n }\r\n\r\n public openCCN(data: IWorkflowStatusViewModel) {\r\n let dialogRef = this.dialog.open(WorkflowStatusCCNDialogComponent, {\r\n panelClass: 'mat-dialog-primary',\r\n height: '50',\r\n maxWidth: '60vw',\r\n autoFocus: false,\r\n data: { doc_Id: data.doc_Id, doc_No: data.doc_No }\r\n });\r\n dialogRef.afterClosed().subscribe(data => {\r\n });\r\n }\r\n\r\n toggleFilter() {\r\n this.enableFilter = !this.enableFilter;\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.workflowStatusView\r\n };\r\n return result;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Latest Revision\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Refresh\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.doc_Title}}\r\n \r\n \r\n \r\n \r\n {{dataItem.revision_No}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflow_Task}}\r\n \r\n \r\n \r\n \r\n {{dataItem.member_Name}}\r\n \r\n \r\n \r\n \r\n {{dataItem.assigned_On | date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n {{dataItem.action_Status}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import * as moment from 'moment';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonService } from 'src/app/Service/Common.service';\r\nimport { MapRoleFeatureService } from 'src/app/Service/map-role-feature/map-role-feature.service';\r\nimport { NotificationService } from 'src/app/Service/notification.service';\r\nimport { WorkflowTemplateService } from 'src/app/Service/workflow-template/workflow-template.service';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { EIPAutoCompleteEventModel } from 'src/app/ViewModel/EIPAutoCompleteEventModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { AddWorkflowTemplateDialogComponent } from '../dialogs/add-workflow-template-dialog/add-workflow-template-dialog.component';\r\nimport { ProjectViewModel } from 'src/app/ViewModel/ProjectModel';\r\nimport { ProjectInfoService } from 'src/app/Service/project-info/project-info.service';\r\n\r\n@Component({\r\n\tselector: 'app-workflow-template',\r\n\ttemplateUrl: './workflow-template.component.html',\r\n\tstyleUrls: ['./workflow-template.component.css']\r\n})\r\nexport class WorkflowTemplateComponent implements OnInit {\r\n\r\n\tenableFilter = false;\r\n\tenableFullscreen = false;\r\n\r\n\tworkflowTemplateList: WorkflowTemplateModel[] = [];\r\n\r\n\tprojectList: ProjectViewModel[] = [];\r\n\tbusinessGroupList: BusinessGroupModel[] = [];\r\n\tbuList: RoleFeatureModel[] = [];\r\n\ticList: RoleFeatureModel[] = [];\r\n\r\n\tbuid!: null | number;\r\n\ticid!: null | number;\r\n\tprojectId!: null | number;\r\n\tbusinessGroupId!: null | number;\r\n\tworkflowId!: null | number;\r\n\r\n\ticIsDisabled: boolean = false;\r\n\tprojectIsDisabled: boolean = false;\r\n\r\n\t// clear EIPAutocomplete selected values\r\n\tclearIcSelected = 'N';\r\n\tclearBuSelected = 'N';\r\n\tclearProjectSelected = 'N';\r\n\tclearBusinessGroupSelected = 'N';\r\n\r\n\tconstructor(\r\n\t\tprivate dialog: MatDialog,\r\n\t\tpublic commonService: CommonService,\r\n\t\tpublic notificationService: NotificationService,\r\n\t\tpublic mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tpublic workflowTemplateService: WorkflowTemplateService,\r\n\t\tpublic projectInfoService: ProjectInfoService) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.getIcList();\r\n\t\tthis.getBuList();\r\n\t\tthis.getProject();\r\n\t\tthis.getBusinessGroup(null);\r\n\t\t//this.getWorkflowTemplateList();\r\n\t}\r\n\r\n\ttoggleFilter() {\r\n\t\tthis.enableFilter = !this.enableFilter;\r\n\t}\r\n\r\n\ttoggleFullscreen() {\r\n\t\tthis.enableFullscreen = !this.enableFullscreen;\r\n\t}\r\n\r\n\t/**\r\n\t* Get business group list\r\n\t* @param projectId \r\n\t*/\r\n\tasync getBusinessGroup(projectId: number | null | undefined) {\r\n\t\tif (!projectId) {\r\n\t\t\tthis.businessGroupList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe((data) => {\r\n\t\t\tthis.businessGroupList = data.filter(each => each.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get Project List\r\n\t */\r\n\tasync getProject() {\r\n\t\tthis.projectInfoService.getProjectList(this.commonService.getLoggedInUserId()).subscribe((data: ProjectViewModel[]) => {\r\n\t\t\tif (data) {\r\n\t\t\t\tdata.forEach(x => { x.projectDescription = x.projectCode + ' - ' + x.projectDescription });\r\n\t\t\t}\r\n\t\t\tthis.projectList = data;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Get BU List\r\n\t */\r\n\tasync getBuList() {\r\n\t\tif (!this.icid) {\r\n\t\t\tthis.buList = [];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.buList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"BU\").toPromise();\r\n\t}\r\n\r\n\t/**\r\n\t * Get IC List\r\n\t */\r\n\tasync getIcList() {\r\n\t\tthis.icList = await this.mapRoleFeatureService.getCommonDedAgainstDe(null, \"IC\").toPromise();\r\n\t}\r\n\r\n\t/**\r\n\t * Get workflow template list\r\n\t * Kendo data\r\n\t */\r\n\tgetWorkflowTemplateList() {\r\n\t\tif (!this.icid && !this.buid && !this.projectId && !this.businessGroupId && !this.workflowId) {\r\n\t\t\tthis.workflowTemplateList = [];\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.workflowTemplateService.getWorkflowTemplateList(this.icid, this.buid, this.projectId, this.businessGroupId, this.workflowId).subscribe(data => {\r\n\t\t\tthis.workflowTemplateList = data;\r\n\t\t});\r\n\t}\r\n\r\n\tchangeIc(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t}\r\n\r\n\t\tthis.buid = this.projectId = this.businessGroupId = null;\r\n\t\tthis.icid = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getBuList();\r\n\t\tthis.getWorkflowTemplateList();\r\n\t}\r\n\r\n\tchangeBu(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.projectId = this.businessGroupId = null;\r\n\t\t}\r\n\r\n\t\tthis.buid = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getWorkflowTemplateList();\r\n\t}\r\n\r\n\tchangeProject(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icIsDisabled = true;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.icIsDisabled = false;\r\n\t\t\tthis.projectIsDisabled = false;\r\n\t\t}\r\n\r\n\t\tthis.icid = this.buid = this.businessGroupId = null;\r\n\t\tthis.projectId = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getBusinessGroup(this.projectId);\r\n\t\tthis.getWorkflowTemplateList();\r\n\t}\r\n\r\n\tchangeBusinessGroup(event: EIPAutoCompleteEventModel) {\r\n\t\tif (event.value != '-2') {\r\n\t\t\tthis.icid = this.buid = null;\r\n\t\t}\r\n\r\n\t\tthis.businessGroupId = event.value != '-2' ? Number(event.value) : null;\r\n\r\n\t\tthis.getWorkflowTemplateList();\r\n\t}\r\n\r\n\topenAddTemplateDialog(isCreateMode: boolean, dataItem: any, isViewMode?: boolean, modeName?: string) {\r\n\t\tthis.workflowTemplateService.isViewMode = modeName == 'V' ? true : false;\r\n\t\tthis.workflowTemplateService.isEditMode = modeName == 'E' ? true : false;\r\n\t\tthis.workflowTemplateService.isCopyMode = false;\r\n\t\tlet dialogRef = this.dialog.open(AddWorkflowTemplateDialogComponent, {\r\n\t\t\tdisableClose: true,\r\n\t\t\tpanelClass: 'mat-dialog-primary',\r\n\t\t\tdata: {\r\n\t\t\t\t'workflowTemplateList': this.workflowTemplateList,\r\n\t\t\t\t'icList': this.icList,\r\n\t\t\t\t'buList': this.buList,\r\n\t\t\t\t'projectList': this.projectList,\r\n\t\t\t\t'businessGroupList': this.businessGroupList,\r\n\t\t\t\t'SrcProject': this.projectId,\r\n\t\t\t\t'SrcBG': this.businessGroupId,\r\n\t\t\t\tisCreateMode: modeName == 'C',\r\n\t\t\t\tisEditMode: modeName == 'E',\r\n\t\t\t\tisViewMode: modeName == 'V',\r\n\t\t\t\tdataItem,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdialogRef.afterClosed().subscribe((data: any) => {\r\n\t\t\tthis.getWorkflowTemplateList();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Clear selected values in header EIP Auto complete\r\n\t * Reset icon handler\r\n\t */\r\n\tclearSelectedFilter() {\r\n\t\tthis.clearIcSelected = this.clearBuSelected = this.clearProjectSelected = this.clearBusinessGroupSelected = 'Y';\r\n\t\tthis.icid = this.buid = this.projectId = this.businessGroupId = null;\r\n\t\tthis.icIsDisabled = this.projectIsDisabled = false;\r\n\t\tthis.workflowTemplateList = [];\r\n\t}\r\n\r\n\tdeleteWorkflowRow(dataItem: WorkflowTemplateModel) {\r\n\t\tthis.notificationService.showPopup('Are you sure to delete Workflow template?', 'Confirm').then((data: any) => {\r\n\t\t\tif (data == 'yes') {\r\n\t\t\t\tthis.workflowTemplateService.deleteWorkflowTemplate(dataItem.workflowId).subscribe(data => {\r\n\t\t\t\t\tif (data['successCode'] == 0) {\r\n\t\t\t\t\t\tthis.notificationService.showToast(\"Workflow template deleted successfully\", 'Success');\r\n\t\t\t\t\t\tthis.getWorkflowTemplateList();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Show

\r\n of\r\n \r\n Items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Filter\r\n
\r\n
\r\n \r\n Clear Filter\r\n
\r\n
\r\n \r\n {{ !enableFullscreen ? 'Expand' : 'Collapse' }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{rowIndex+1}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflowName}}\r\n \r\n \r\n \r\n \r\n {{dataItem.workflowDescription}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdBy}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.createdOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.modifiedBy}}\r\n \r\n \r\n \r\n \r\n \r\n {{dataItem.modifiedOn| date:'dd-MMM-yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n   \r\n   \r\n \r\n \r\n \r\n \r\n
\r\n
","import { Observable } from 'rxjs/internal/Observable';\r\nimport { Injectable } from '@angular/core';\r\nimport { RestApiService } from './rest-api.service';\r\nimport { MenuViewModel } from '../ViewModel/MenuModel';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { ProjectViewModel } from '../ViewModel/ProjectModel';\r\nimport { BusinessGroupModel } from '../ViewModel/BusinessGroupModel';\r\nimport { UserDetailsViewModel } from '../ViewModel/UserDetailsModel';\r\nimport { EncryptDecryptService } from '../Service/encrypt-decrypt.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { IElasticDocModel } from '../ViewModel/ElasticSearch.Model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n public pageTitle: BehaviorSubject = new BehaviorSubject('');\r\n public selectedProjectId: BehaviorSubject = new BehaviorSubject(null);\r\n public selectedProjectCode: BehaviorSubject = new BehaviorSubject('');\r\n public clearImgList: BehaviorSubject = new BehaviorSubject(false);\r\n public head: any = {\r\n AccessFlag: 'N',\r\n showSpinner: '1'\r\n };\r\n public isAccesingPRAddCommentsPage: Boolean = false;\r\n public redirectUserToPRAddComments: Boolean = false;\r\n public redirectUserToPRAddComments_Projectid :string;\r\n public redirectUserToPRAddComments_ReqNo :string;\r\n public redirectUserToPRAddComments_GrpID :string;\r\n\r\n constructor(private _restApiService: RestApiService, private encryptDecryptService: EncryptDecryptService,\r\n private http: HttpClient) {\r\n }\r\n\r\n private baseUrl = environment.uriHost;\r\n\r\n private uris = {\r\n getUserMenu: \"Menu/GetUserMenu\",\r\n projectBusinessGroupUrl: 'Organization/GetOrganizationAgainstProject',\r\n projectMemberRoles: 'Member/GetProjectMemberRoles',\r\n projectMemberFeatures: 'Member/GetProjectMemberFeatures',\r\n gridSettingsUrl: 'GridSettings/GetGridSettings',\r\n elasticSearchFilterAll: 'ElasticSearch/FilterAll',\r\n elasticSearchFilter: 'ElasticSearch/FilterES',\r\n ProjectMemberLinkGroupDetails: 'Member/GetMemberLinkGroupDetails',\r\n MemberICs: 'Member/GetMemberICDetails',\r\n };\r\n\r\n public getSessionStorageItem(item: string): any {\r\n return localStorage.getItem(item);\r\n }\r\n\r\n public setSessionStorageItem(key: string, value: any): any {\r\n this.removeSessionStorageItem(key);\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n public removeSessionStorageItem(item: string): any {\r\n return localStorage.removeItem(item);\r\n }\r\n\r\n public hasJWT(): boolean {\r\n return !!localStorage.getItem('currentUserJWT');\r\n }\r\n\r\n public hasRequestedObject(): boolean {\r\n return !!localStorage.getItem('requestedObject');\r\n }\r\n\r\n public hasSearchedObject(): boolean {\r\n return !!localStorage.getItem('searchedObject');\r\n }\r\n\r\n public hasLoginAuditNumber(): boolean {\r\n return !!localStorage.getItem('loginAuditNumber');\r\n }\r\n\r\n public checkAndDeleteRequestedObject() {\r\n if (this.hasRequestedObject())\r\n this.removeSessionStorageItem('requestedObject');\r\n }\r\n\r\n public checkAndDeleteSearchedObject() {\r\n if (this.hasSearchedObject())\r\n this.removeSessionStorageItem('searchedObject');\r\n }\r\n\r\n public getJWT(): any {\r\n if (this.hasJWT()) {\r\n return this.getSessionStorageItem('currentUserJWT');\r\n }\r\n else\r\n return '';\r\n }\r\n\r\n public getLoginAuditNumber(): string {\r\n if (this.hasLoginAuditNumber()) {\r\n return this.getSessionStorageItem('loginAuditNumber');\r\n }\r\n else\r\n return '';\r\n }\r\n\r\n public setCurrentUserProfileCard(data: UserDetailsViewModel[]|any) {\r\n let jwtToken = data[\"jwtToken\"];\r\n let loginAuditNumber = data[\"loginAuditNumber\"];\r\n\r\n if (jwtToken) {\r\n data[\"jwtToken\"] = '';\r\n\r\n this.removeSessionStorageItem('currentUserJWT');\r\n this.setSessionStorageItem('currentUserJWT', jwtToken);\r\n }\r\n\r\n if (loginAuditNumber) {\r\n data[\"loginAuditNumber\"] = '';\r\n\r\n this.removeSessionStorageItem('loginAuditNumber');\r\n this.setSessionStorageItem('loginAuditNumber', this.encryptDecryptService.encrypt(loginAuditNumber));\r\n }\r\n\r\n this.removeSessionStorageItem('profileCard');\r\n this.setSessionStorageItem('profileCard', this.encryptDecryptService.encrypt(JSON.stringify(data)));\r\n }\r\n\r\n public getCurrentUserProfileCard(): UserDetailsViewModel[] |any {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getSessionStorageItem('profileCard');\r\n var output = this.encryptDecryptService.decrypt(profileCard);\r\n var jsonOutput = JSON.parse(output);\r\n return jsonOutput;\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n public getLoggedInUserId(): number {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getCurrentUserProfileCard();\r\n return profileCard[\"memberId\"];\r\n }\r\n else\r\n return 0;\r\n }\r\n\r\n public getLoggedInUserEipUserId(): number {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getCurrentUserProfileCard();\r\n return profileCard[\"eipUserId\"];\r\n }\r\n else\r\n return 0;\r\n }\r\n\r\n public getLoggedInUserEmailId(): string {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getCurrentUserProfileCard();\r\n return profileCard[\"eMailId\"];\r\n }\r\n else\r\n return '';\r\n }\r\n\r\n public getLoggedInUserStatus(): boolean {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getCurrentUserProfileCard();\r\n return profileCard[\"isInternal\"];\r\n }\r\n else\r\n return false;\r\n }\r\n\r\n public getLoggedInUserGroupId(): number {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getCurrentUserProfileCard();\r\n return profileCard[\"groupId\"];\r\n }\r\n else\r\n return 0;\r\n }\r\n /*** To get logged user name */\r\n public getLoggedInUserName(): string {\r\n if (this.hasJWT()) {\r\n let profileCard = this.getCurrentUserProfileCard();\r\n return profileCard[\"memberName\"];\r\n }\r\n else\r\n return '';\r\n }\r\n\r\n public getNavigationMenu(projectId: number, userId: number, groupId: number): Observable {\r\n return this._restApiService.new_POST(this.uris.getUserMenu, { projectId: projectId, userId: userId, groupId: groupId });\r\n }\r\n\r\n public getProjectBusinessGroups(projectId: number): Observable {\r\n return this._restApiService.new_POST(this.uris.projectBusinessGroupUrl, { projectId });\r\n }\r\n\r\n public getProjectMemberLinkGroupDetails(Project_Id: number, Member_Id: number): Observable {\r\n return this._restApiService.new_POST(this.uris.ProjectMemberLinkGroupDetails, { Project_Id, Member_Id });\r\n }\r\n\r\n /** Set project code in Session */\r\n public setProjectCode(projectCode:string, projectId:number, event: ProjectViewModel) {\r\n this.selectedProjectId.next(projectId);\r\n this.selectedProjectCode.next(projectCode);\r\n this.setSessionStorageItem('projectObject', JSON.stringify(event));\r\n this.setSessionStorageItem('selectedProjectCode', projectCode);\r\n this.setSessionStorageItem('selectedProjectId', projectId);\r\n }\r\n\r\n public removeProjectCode() {\r\n this.selectedProjectCode.next(null);\r\n this.selectedProjectId.next(null);\r\n this.removeSessionStorageItem('selectedProjectId');\r\n this.removeSessionStorageItem('selectedProjectCode');\r\n }\r\n\r\n /** Get user selected project code */\r\n public getProjectCode(): string {\r\n return this.getSessionStorageItem('selectedProjectCode');\r\n }\r\n\r\n /** Get user selected project id */\r\n public getProjectId(): number {\r\n return Number(this.getSessionStorageItem('selectedProjectId'));\r\n }\r\n\r\n public getCurrentProjectDetails(): ProjectViewModel {\r\n let projModel: ProjectViewModel = JSON.parse(this.getSessionStorageItem('projectObject'));\r\n return projModel;\r\n }\r\n\r\n public isProjectCodeSelected(): boolean {\r\n return !!this.getProjectCode();\r\n }\r\n\r\n public GetGridSettings(postData: any) {\r\n return this.http.post(this.uris.gridSettingsUrl, postData.requestedparamsforgetdatafromDB, { headers: postData.headers });\r\n // return this._restApiService.new_POST(this.uris.gridSettingsUrl, postData.requestedparamsforgetdatafromDB);\r\n }\r\n\r\n /**\r\n * Get Project Member Roles API\r\n * @param ProjecId,@param GroupId,@param MemberId\r\n */\r\n public getProjectMemberRoles(projectId?: number|null, groupId?: number|null, memberId?: number, icId?: number|null): Observable {\r\n return this._restApiService.new_POST(this.uris.projectMemberRoles, { Project_Id: projectId, Group_Id: groupId, Member_Id: memberId, IC_Id: icId });\r\n }\r\n\r\n public getMemberICs(memberId?: number): Observable {\r\n return this._restApiService.new_POST(this.uris.MemberICs, { Member_Id: memberId });\r\n }\r\n\r\n /**\r\n * Get Project Member Features API\r\n * @param ProjecId,@param GroupId,@param MemberId\r\n */\r\n public getProjectMemberFeatures(projectId?: number|null, memberId?: number, groupId?: number|null, icId?: number|null): Observable {\r\n return this._restApiService.new_POST(this.uris.projectMemberFeatures, { Project_Id: projectId, Member_Id: memberId, Group_Id: groupId, IC_Id: icId });\r\n }\r\n\r\n public elasticSearchFilterAll(_projectId:number, _index:number): Observable {\r\n return this._restApiService.new_POST(this.uris.elasticSearchFilterAll, { projectId: _projectId, index: _index });\r\n }\r\n\r\n public elasticSearchFilter(_searchText:any): Observable {\r\n return this._restApiService.new_POST(this.uris.elasticSearchFilter, { searchText: _searchText, memberId: this.getLoggedInUserId() })\r\n .pipe(map((res: any[]) => {\r\n return res.map(x => {\r\n let moduleName: string = '';\r\n switch (x.moduleId) {\r\n case 1:\r\n moduleName = 'Repository';\r\n break;\r\n case 2:\r\n moduleName = 'DCI';\r\n break;\r\n case 3:\r\n moduleName = 'Mail'\r\n break;\r\n }\r\n let displayText: string = moduleName + ' - ' + x.recordNumber + ' - ' + x.title;\r\n if (!!x.revisionNo) {\r\n displayText = displayText + ' - ' + x.revisionNo;\r\n }\r\n let esresult: IElasticDocModel = {\r\n projectId: x.projectId, moduleId: x.moduleId, moduleName: moduleName, recordId: x.recordId,\r\n recordNumber: x.recordNumber, groupId: x.groupId, title: x.title, revisionNo: x.revisionNo, displayText: displayText\r\n };\r\n return esresult;\r\n });\r\n }));\r\n }\r\n\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { AdalService } from 'adal-angular4';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotificationService } from '../notification.service';\r\nimport { Injectable, ErrorHandler, Injector, NgZone } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n\r\n private readonly logout = 'Login/Logout';\r\n\r\n constructor(private adal: AdalService, public commonService: CommonService, public restApiService: RestApiService, private injector: Injector, private ngZone: NgZone, private notificationService: NotificationService) {\r\n this.adal.init({\r\n tenant: environment.tenant,\r\n clientId: environment.clientId,\r\n cacheLocation: environment.cacheLocation,\r\n localLoginUrl: environment.localLoginUrl,\r\n redirectUri: environment.redirectUri,\r\n postLogoutRedirectUri: environment.postLogoutRedirectUri\r\n });\r\n }\r\n\r\n handleError(error: any) {\r\n if (error instanceof HttpErrorResponse) {\r\n this.ngZone.run(() => {\r\n if (error[\"status\"] == 401) {\r\n this.notificationService.showPopup(\"Unauthorized request\", \"Warning\").then(\r\n x => this.Logout(this.commonService.getLoggedInUserStatus())\r\n );\r\n }\r\n\r\n if (error[\"status\"] == 400 && error.error == \"You have logged in with your account in another device. The current session is closed\") {\r\n this.notificationService.showPopup(\"You have logged in with your account in another device. The current session is closed\", \"Warning\").then(\r\n x => this.Logout(this.commonService.getLoggedInUserStatus(), true)\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n private Logout(_isInternal: boolean, _isSoftLogout: boolean = false): void {\r\n const router = this.injector.get(Router);\r\n\r\n if (_isSoftLogout) {\r\n if (_isInternal) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.adal.logOut();\r\n }\r\n\r\n if (!_isInternal) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n router.navigate(['/authentication/login']);\r\n }\r\n }\r\n else {\r\n let user = {\r\n emailId: this.commonService.getLoggedInUserEmailId(),\r\n isInternal: _isInternal,\r\n isLogoutTime: true\r\n }\r\n\r\n this.restApiService.new_POST(this.logout, user).subscribe((data: any) => {\r\n if (_isInternal) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.adal.logOut();\r\n }\r\n\r\n if (!_isInternal) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n router.navigate(['/authentication/login']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","//import 'rxjs/add/operator/do';\r\nimport { Injectable } from '@angular/core';\r\nimport { LoginService } from '../login.service';\r\nimport { CommonService } from '../Common.service';\r\nimport { LoaderService } from '../Loader/loader.service';\r\nimport { NotificationService } from '../notification.service';\r\nimport { EncryptDecryptService } from '../encrypt-decrypt.service';\r\nimport { HttpRequest, HttpResponse, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs'; \r\nimport { tap } from 'rxjs/operators'; \r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalHttpInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest[] = [];\r\n constructor(private encryptDecryptService: EncryptDecryptService, private loaderService: LoaderService, private commonService: CommonService, private loginService: LoginService, private _notificationService: NotificationService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n this.loaderService.isLoading.next(true);\r\n let urlParts = request.url.split('/');\r\n let Controller = urlParts[urlParts.length - 2];\r\n\r\n if (Controller != \"Login\" && Controller != \"authcallback\" && !this.commonService.hasJWT()) {\r\n this.loaderService.isLoading.next(false);\r\n this._notificationService.showPopup(\"Token should not be null or empty\", \"Warning\").then(\r\n x => {\r\n const url = window.location.href;\r\n const path = new URL(url).pathname;\r\n // this.commonService.isAccesingPRAddCommentsPage = (path === '/peer-review/review-add-comments');\r\n if (path == '/peer-review/review-add-comments'){\r\n this.commonService.isAccesingPRAddCommentsPage = true;\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const reqNo = urlParams.get('reqno');\r\n const projId = urlParams.get('proj');\r\n const gid = urlParams.get('gid');\r\n this.commonService.redirectUserToPRAddComments_Projectid = projId;\r\n this.commonService.redirectUserToPRAddComments_ReqNo = reqNo;\r\n this.commonService.redirectUserToPRAddComments_GrpID = gid;\r\n }\r\n else\r\n {\r\n this.commonService.isAccesingPRAddCommentsPage = false;\r\n }\r\n this.loginService.Logout(this.commonService.getLoggedInUserStatus())}\r\n );\r\n return new Observable();\r\n }\r\n\r\n request = request.clone({\r\n setHeaders: {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n },\r\n });\r\n\r\n this.requests.push(request);\r\n return next.handle(request)\r\n .pipe(tap((event: HttpEvent) => {\r\n //.do((event: HttpEvent) => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(request);\r\n }\r\n }, (err: any) => {\r\n this.removeRequest(request);\r\n }, () => {\r\n this.removeRequest(request);\r\n }));\r\n }\r\n\r\n removeRequest(req: HttpRequest) {\r\n const index = this.requests.indexOf(req, 0);\r\n if (index > -1) {\r\n this.requests.splice(index, 1);\r\n this.loaderService.isLoading.next(false);\r\n }\r\n }\r\n\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { LoginService } from '../login.service';\r\nimport { CommonService } from '../Common.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { NotificationService } from '../notification.service';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(public router: Router, public jwtHelper: JwtHelperService, private loginService: LoginService, private commonService: CommonService, private _notificationService: NotificationService) { }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n if(state.url.toUpperCase().includes( 'PEER-REVIEW/REVIEW-ADD-COMMENTS'))\r\n {\r\n return true;\r\n }\r\n if (!this.commonService.hasJWT()) {\r\n this._notificationService.showPopup(\"Session invalid\", \"Warning\").then(\r\n x => this.loginService.Logout(this.commonService.getLoggedInUserStatus())\r\n );\r\n return false;\r\n }\r\n\r\n if (this.jwtHelper.isTokenExpired(this.commonService.getJWT())) {\r\n this._notificationService.showPopup(\"Session expired\", \"Warning\").then(\r\n x => this.loginService.Logout(this.commonService.getLoggedInUserStatus())\r\n );\r\n return false;\r\n }\r\n if (state.url.toUpperCase() != '/dashboard/home'.toUpperCase() && state.url.toUpperCase() != '/edms/commondashboard'.toUpperCase()) {\r\n this.commonService.selectedProjectId.subscribe((data:any) => {\r\n if (data) {\r\n let user = {\r\n projectId: data,\r\n userId: this.commonService.getLoggedInUserId(),\r\n currentURL: state.url.substring(1)\r\n };\r\n if (user.projectId != 9999999) {\r\n this.loginService.ValidateCurentUserAccess(user).subscribe((data: Observable|any) => {\r\n if (data[\"successCode\"] === 200) {\r\n return true;\r\n }\r\n else {\r\n this._notificationService.showPopup(data[\"successMessage\"], \"Warning\").then(\r\n x => this.loginService.Logout(this.commonService.getLoggedInUserStatus())\r\n );\r\n return false;\r\n }\r\n });\r\n }\r\n return true;\r\n }\r\n else return false;\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n public isLoading = new BehaviorSubject(false);\r\n public isExternalLoading = new BehaviorSubject(false);\r\n constructor() { }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { INumberInputModel, INumberViewModel, ProjectWorkflowStatusInputModel, ProjectWorkflowStatusOutputModel } from 'src/app/ViewModel/ProjectWorkflowStatus';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ProjectWorkflowStatusService {\r\n\r\n\tprivate readonly getChecklistUrl = 'ProjectWorkflowStatus/getProjectWorkflowStatus';\r\n\tprivate readonly postWorkflowUrl = 'ProjectWorkflowStatus/PostProjectMembertDetails';\r\n\tprivate readonly getNumberDetails = 'ProjectWorkflowStatus/GetProjectNumbering';\r\n\tprivate readonly postNumberDetails = 'ProjectWorkflowStatus/PostProjectNumbering';\r\n public x !:number;\r\n\tpublic checklistId: BehaviorSubject = new BehaviorSubject(this.x);\r\n\r\n\tconstructor(\r\n\t\tpublic restApiService: RestApiService,\r\n\t) { }\r\n\r\n\r\n\tgetProjectWorkflowStatus(projectId: number,groupId: number): Observable {\r\n\t\tlet reqData = {\r\n\t\t\tproject_Id:projectId,\r\n\t\t\tgroup_Id :groupId\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.getChecklistUrl, reqData);\r\n\t}\r\n\r\n\tpostProjectWorkflowStatus(Input:ProjectWorkflowStatusInputModel) {\r\n\t\treturn this.restApiService.new_POST(this.postWorkflowUrl, Input);\r\n\t}\r\n\r\n\tgetNumber(project_Id: number,group_Id: number, input_Type: string): Observable {\r\n\t\tlet reqData = {\r\n\t\t\tproject_Id:project_Id,\r\n\t\t\tgroup_Id :group_Id,\r\n\t\t\tinput_Type:input_Type\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.getNumberDetails, reqData);\r\n\t}\r\n\tpostNumber(Input:INumberInputModel){\r\n\t\treturn this.restApiService.new_POST(this.postNumberDetails, Input);\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IDrawingScheduleAdherenceInputModel } from 'src/app/ViewModel/Report.Model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from '../Common.service';\r\nimport { EncryptDecryptService } from '../encrypt-decrypt.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportService {\r\n private Url_GetDrawingScheduleAdherenceList = 'Report/GetDrawingScheduleAdherenceList';\r\n private Url_GetSCurveDetails = 'Report/GetSCurveDetails';\r\n private Url_GetStatusWiseCompletionPercentage = 'Report/GetStatusWiseCompletionPercentage';\r\n private Url_UpdateStatusWiseCompletionPercentage = 'Report/UpdateStatusWiseCompletionPercentage';\r\n private Url_GetSCurveExportDetails = '/Report/GetSCurveExportDetails';\r\n\r\n constructor(private restAPIService: RestApiService, private commonService: CommonService, private encryptDecryptService: EncryptDecryptService, private http: HttpClient) { }\r\n\r\n public GetDrawingScheduleAdherenceList(commInp: any): Observable {\r\n return this.restAPIService.new_POST(this.Url_GetDrawingScheduleAdherenceList, commInp);\r\n }\r\n\r\n public GetSCurveDetails(Input: any): Observable {\r\n return this.restAPIService.new_POST(this.Url_GetSCurveDetails, Input);\r\n }\r\n\r\n public GetSCurveExportDetails(Input: any): Observable {\r\n let _apiURL = environment.uriHost + this.Url_GetSCurveExportDetails;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, Input, { 'headers': headers, responseType: 'blob' });\r\n }\r\n\r\n public GetStatusWiseCompletionPercentage(Input: any): Observable {\r\n return this.restAPIService.new_POST(this.Url_GetStatusWiseCompletionPercentage, Input);\r\n }\r\n\r\n public UpdateStatusWiseCompletionPercentage(Input: any): Observable {\r\n return this.restAPIService.new_POST(this.Url_UpdateStatusWiseCompletionPercentage, Input);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { menuModel } from 'src/app/ViewModel/ApplicationMenu.Model';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n\r\n private getmenu = \"Menu/GetMenu\";\r\n private postMenu = \"Menu/PostMenu\";\r\n // private getMenuRoledata = \"Menu/Group_Id\";\r\n private getMenuRoledata = \"Menu/GetMenuRoleMapping\";\r\n private getMenumapping =\"Menu/PostMenuRoleMapping\";\r\n\r\n constructor(private restApiService: RestApiService, private commonService: CommonService) { }\r\n\r\n getApplicationMenulist(_menuId:any = null) {\r\n let data = { \"menuId\": _menuId };\r\n return this.restApiService.new_POST(this.getmenu, data);\r\n }\r\n\r\n postApplicationMenulist(value: any[]) {\r\n let data:any = { \"createdBy\": 0, \"menuData\": [] };\r\n data.menuData.push(value);\r\n data.createdBy = this.commonService.getLoggedInUserId();\r\n return this.restApiService.new_POST(this.postMenu, data);\r\n }\r\n\r\n getMenuRoleData(groupId:number) {\r\n let data = {\r\n \"projectId\": this.commonService.getProjectId(),\r\n \"groupId\": groupId\r\n }\r\n return this.restApiService.new_POST(this.getMenuRoledata, data);\r\n }\r\n getMenuRoleMapping(roleMenusMapping: any[], groupId?: number | undefined | null) {\r\n let data:any = { \"projectId\": 0, \"groupId\": 0, \"createdBy\": 0, \"menuRoleMapping\": roleMenusMapping };\r\n data.projectId = this.commonService.getProjectId();\r\n data.createdBy = this.commonService.getLoggedInUserId();\r\n data.groupId = groupId;\r\n return this.restApiService.new_POST(this.getMenumapping, data);\r\n }\r\n\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BusinessGroupLinkService {\r\n\r\n private getOrganizationAgainstProjectUrl = 'Organization/GetOrganizationAgainstProject';\r\n // private getOrganizationListUrl = 'Organization/GetOrganizationList';\r\n private saveOrganizationLinkUrl = 'OrganizationLink/PostOrganizationLinks';\r\n\r\n constructor(private restApiService: RestApiService, private commonService: CommonService,) { }\r\n\r\n\r\n getMappedOrganizationAgainstProject() {\r\n return this.restApiService.new_POST(this.getOrganizationAgainstProjectUrl, { projectId: this.commonService.getProjectId() });\r\n }\r\n\r\n saveOrganization(groupId: number, groupHeadId: number, isActive: boolean) {\r\n let reqData = {\r\n \"result\": \"\",\r\n \"successCode\": 0,\r\n \"successMessage\": \"\",\r\n \"projectId\": this.commonService.getProjectId(),\r\n \"createdBy\": this.commonService.getLoggedInUserId(),\r\n \"organizationLink\": [\r\n {\r\n \"groupId\": groupId,\r\n \"groupHeadId\": groupHeadId,\r\n \"isActive\": isActive,\r\n },\r\n ],\r\n };\r\n\r\n return this.restApiService.new_POST(this.saveOrganizationLinkUrl, reqData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ICCNDisciplineInputModel, ICCNApproverInputModel, ICCNNoInputModel, ICCNInputModel, ICCNManhoursInputModel, ICCNDiscMembersInputModel, ICCNDetailsInputModel, ICCNListInputModel, ICCNApproveInputModel, ICCNUpdateInputModel, ICCNByIdModel, ICCNTagDocInputModel, IScheduleAfterGFCModel, IDocWorkflowPlanModel, IWorkflowAfterGFCModel, IDocWorkflowManHrsModel } from 'src/app/ViewModel/CCNModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CcnService {\r\n private urlPath = {\r\n getDiscipline: 'CCN/GetDisciplineDetails',\r\n getApprover: 'CCN/GetApproverDetails',\r\n generateCCNNo: 'CCN/GenerateCCNNo',\r\n insertCCN: 'CCN/InsertCCN',\r\n getCCNManhours: 'CCN/GetCCNManhours',\r\n getCCNDiscMembers: 'CCN/GetCCNDiscMembers',\r\n insertCCNDetails: 'CCN/InsertCCNDetails',\r\n getCCNDetails: 'CCN/GetCCNDetails',\r\n getCCNById:'CCN/GetCCNById',\r\n getCCNList: 'CCN/GetCCNList',\r\n approveCCN: 'CCN/ApproveCCN',\r\n submitCCN: 'CCN/SubmitCCN',\r\n publishCCN: 'CCN/PublishCCN',\r\n tagCCN: 'CCN/InsertCCNDocument',\r\n wfAfterGFC: 'WorkflowTransaction/InsertWorkflowAfterGFC',\r\n scheduleAfterGFC: 'WorkflowTransaction/InsertScheduleAfterGFC',\r\n insertDocWFPlan:'WorkflowTransaction/InsertDocumentWorkflowPlan',\r\n insertDocWFManHrs:'WorkflowTransaction/InsertDocumentWorkflowManHours'\r\n }\r\n constructor(private restAPIService: RestApiService) { }\r\n\r\n public GetDisciplineDetails(ccnInput: ICCNDisciplineInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getDiscipline, ccnInput);\r\n }\r\n\r\n public GetApproverDetails(ccnInput: ICCNApproverInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getApprover, ccnInput);\r\n }\r\n\r\n public GenerateCCNNo(ccnInput: ICCNNoInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.generateCCNNo, ccnInput);\r\n }\r\n\r\n public InsertCCN(ccnInput: ICCNInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.insertCCN, ccnInput);\r\n }\r\n\r\n public GetCCNManhours(ccnInput: ICCNManhoursInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getCCNManhours, ccnInput);\r\n }\r\n\r\n public GetCCNDiscMembers(ccnInput: ICCNDiscMembersInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getCCNDiscMembers, ccnInput);\r\n }\r\n\r\n public InsertCCNDetails(ccnInput: ICCNDetailsInputModel[]): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.insertCCNDetails, ccnInput);\r\n }\r\n\r\n public GetCCNDetails(ccnInput: ICCNManhoursInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getCCNDetails, ccnInput);\r\n }\r\n\r\n public GetCCNById(ccnInput: ICCNByIdModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getCCNById, ccnInput);\r\n }\r\n\r\n public GetCCNList(ccnInput: ICCNListInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.getCCNList, ccnInput);\r\n }\r\n\r\n public ApproveCCN(ccnInput: ICCNApproveInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.approveCCN, ccnInput);\r\n }\r\n\r\n public SubmitCCN(ccnInput: ICCNUpdateInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.submitCCN, ccnInput);\r\n }\r\n\r\n public PublishCCN(ccnInput: ICCNUpdateInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.publishCCN, ccnInput);\r\n }\r\n\r\n public TagCCN(ccnInput: ICCNTagDocInputModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.tagCCN, ccnInput);\r\n }\r\n\r\n public InsertWorkflowAfterGFC(inputModel: IWorkflowAfterGFCModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.wfAfterGFC, inputModel);\r\n }\r\n\r\n public InsertScheduleAfterGFC(inputModel: IScheduleAfterGFCModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.scheduleAfterGFC, inputModel);\r\n }\r\n\r\n public InsertDocumentWorkflowPlan(inputModel: IDocWorkflowPlanModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.insertDocWFPlan, inputModel);\r\n }\r\n\r\n public InsertDocumentWorkflowManHours(inputModel: IDocWorkflowManHrsModel): Observable {\r\n return this.restAPIService.new_POST(this.urlPath.insertDocWFManHrs, inputModel);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { ChecklistItemModel } from 'src/app/ViewModel/ChecklistItemModel';\r\nimport { ChecklistModel, CopyChecklistModel } from 'src/app/ViewModel/ChecklistModel';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ChecklistService {\r\n\r\n\tprivate readonly getChecklistUrl = 'Checklist/GetChecklists';\r\n\tprivate readonly getChecklistItemUrl = 'Checklist/GetChecklistItems';\r\n\tprivate readonly postChecklistUrl = 'Checklist/PostChecklist';\r\n\tprivate readonly PostCopyChecklist = 'Checklist/PostCopyChecklist';\r\n\tprivate readonly postChecklistItemUrl = 'Checklist/PostChecklistItem';\r\n\r\n\tpublic checklistId: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n\tconstructor(\r\n\t\tpublic restApiService: RestApiService,\r\n\t) { }\r\n\r\n\r\n\tgetChecklist(groupId: number|null, disciplineId: number|null, buId: number|null, icId: number|null, projectId: number|null, isActive: boolean = false, isForWorkflow: boolean = false, isShowICSpecific: boolean = false): Observable {\r\n\t\tlet reqData:any = {\r\n\t\t\t'clId': null,\r\n\t\t\tgroupId,\r\n\t\t\tdisciplineId,\r\n\t\t\tbuId,\r\n\t\t\ticId,\r\n\t\t\tprojectId,\r\n\t\t\tisActive,\r\n\t\t\tisForWorkflow,\r\n\t\t\tisShowICSpecific\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.getChecklistUrl, reqData);\r\n\t}\r\n\r\n\tgetChecklistItem(clId: number): Observable {\r\n\t\treturn this.restApiService.new_POST(this.getChecklistItemUrl, { clId });\r\n\t}\r\n\r\n\tpostChecklist(newChecklist: ChecklistModel) {\r\n\t\treturn this.restApiService.new_POST(this.postChecklistUrl, newChecklist);\r\n\t}\r\n\r\n\tpostChecklistItem(newChecklistItem: ChecklistItemModel) {\r\n\t\treturn this.restApiService.new_POST(this.postChecklistItemUrl, newChecklistItem);\r\n\t}\r\n\tpostcopyChecklist(newChecklist: CopyChecklistModel) {\r\n\t\treturn this.restApiService.new_POST(this.PostCopyChecklist, newChecklist);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IMessageGroupMGInputModel, IMessageGroupListInputModel, ISignatureInputModel, ISignatureListInputModel, ISignatureOutputModel, IMessageInputModel, IMsgSLNoInputModel, IMsgListInputModel, IMsgHistoryInputModel, IMsgReceiverStatus, IMsgAttachmentsModel, ICommunicationInputModel, ICommunicationProtocol } from 'src/app/ViewModel/CommunicationModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommunicationService {\r\n private getMsgSerialNo = 'Communication/GetMsgSerialNo';\r\n private insertSignature = 'Communication/InsertMessageSignature';\r\n private getSignatureList = 'Communication/GetMessageSignatureList';\r\n private insertMessage = 'Communication/InsertMessage';\r\n private getMessageGroupList = 'Communication/GetMessageGroupList';\r\n private insertUpdateMessageGroup = 'Communication/InsertUpdateMessageGroup';\r\n private getMessageList = 'Communication/GetMessageList';\r\n private insertSearch = 'Communication/InsertMessageSearch';\r\n private removeSearch = 'Communication/RemoveMessageSearch';\r\n private searchList = 'Communication/GetMessageSearchList';\r\n private getMessageReceiverList = 'Communication/GetMessageReceivers';\r\n private getMessageAttachmentList = 'Communication/GetMessageAttachments';\r\n private getMessageDocumentList = 'Communication/GetMessageDocuments';\r\n private getMessageDetailsList = 'Communication/GetMessageDetails';\r\n private getmessageElementsById='Communication/GetMessageElementsById';\r\n private getMessageStatusLogUrl='Communication/GetMessageStatusLog';\r\n private getMessageHistoryDetailsUrl='Communication/GetMessageHistoryDetails';\r\n private setMessageStatusUrl = 'Communication/UpdateMessageReceiverStatus';\r\n private updateDocumentsMsgId = 'Communication/UpdateDocumentsMsgId';\r\n private deleteMessage = 'Communication/DeleteMessage'; \r\n private GetCommunicationProtocolUrl = 'Communication/GetProjectCommunicationProtocol';\r\n private PostCommunicationProtocolUrl = 'Communication/PostProjectCommunicationProtocol';\r\n constructor(private restAPIService: RestApiService) { }\r\n /**\r\n * Fetching MemberID based on Signatures\r\n * @param MemberId\r\n */\r\n public GetSignatureList(signatureListInputModel: ISignatureListInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getSignatureList, signatureListInputModel);\r\n }\r\n\r\n public InsertSignature(signatureInputModel: ISignatureInputModel): Observable {\r\n return this.restAPIService.new_POST(this.insertSignature, signatureInputModel);\r\n }\r\n /**\r\n * Fetching MemberID based on Message Group\r\n * @param MemberId\r\n */\r\n public GetMessageGroup(messageGroupListInputModel: IMessageGroupListInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getMessageGroupList, messageGroupListInputModel);\r\n }\r\n\r\n public InsertUpdateMessageGroup(messageGroupInputModel: IMessageGroupMGInputModel): Observable {\r\n return this.restAPIService.new_POST(this.insertUpdateMessageGroup, messageGroupInputModel);\r\n }\r\n\r\n public InsertMessage(messageInputModel: IMessageInputModel): Observable {\r\n return this.restAPIService.new_POST(this.insertMessage, messageInputModel);\r\n }\r\n\r\n /**\r\n * Generate Serial No based on Message Element Details\r\n * @param MsgSLNo\r\n */\r\n public GetMsgSerialNo(msgInputModel: IMsgSLNoInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getMsgSerialNo, msgInputModel);\r\n }\r\n\r\n public GetMessageList(msgInputModel: IMsgListInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getMessageList, msgInputModel);\r\n }\r\n\r\n\r\n public insertMessageSearch(msgInputModel: any): Observable {\r\n return this.restAPIService.new_POST(this.insertSearch, msgInputModel);\r\n }\r\n\r\n public removeMessageSearch(projectId?: number, memberId?: number, searchId?: number): Observable {\r\n let reqData = {\r\n 'projectId': projectId,\r\n 'memberId': memberId,\r\n 'searchId': searchId\r\n };\r\n return this.restAPIService.new_POST(this.removeSearch, reqData);\r\n }\r\n\r\n public getMessageSearchList(projectId?: number, memberId?: number): Observable {\r\n let reqData = {\r\n 'projectId': projectId,\r\n 'memberId': memberId\r\n };\r\n return this.restAPIService.new_POST(this.searchList, reqData);\r\n }\r\n public GetMessageReceiverList(messageId: number): Observable {\r\n let messageIdModel = { messageId: messageId };\r\n return this.restAPIService.new_POST(this.getMessageReceiverList, messageIdModel);\r\n }\r\n public getMessageAttachmentsList(messageId: number): Observable {\r\n let messageIdModel = { messageId: messageId };\r\n return this.restAPIService.new_POST(this.getMessageAttachmentList, messageIdModel);\r\n }\r\n public getMessageDocumentsList(messageId: number): Observable {\r\n let messageIdModel = { messageId: messageId };\r\n return this.restAPIService.new_POST(this.getMessageDocumentList, messageIdModel);\r\n }\r\n public getMessageDetails(messageId: number): Observable {\r\n let messageIdModel = { messageId: messageId };\r\n return this.restAPIService.new_POST(this.getMessageDetailsList, messageIdModel);\r\n }\r\n public getMessageElementsById(messageId: number): Observable {\r\n let messageIdModel = { messageId: messageId };\r\n return this.restAPIService.new_POST(this.getmessageElementsById, messageIdModel);\r\n }\r\n public getMessageStatusLog(messageId: number): Observable {\r\n let messageIdModel = { messageId: messageId };\r\n return this.restAPIService.new_POST(this.getMessageStatusLogUrl, messageIdModel);\r\n }\r\n\r\n public getMessageHistoryDetails(msgHistoryInputModel: IMsgHistoryInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getMessageHistoryDetailsUrl, msgHistoryInputModel);\r\n }\r\n\r\n public setMessageStatus(msgInputModel: IMsgReceiverStatus): Observable {\r\n return this.restAPIService.new_POST(this.setMessageStatusUrl, msgInputModel);\r\n }\r\n\r\n public updateCommunicationDocsMsgId(commDocs:IMsgAttachmentsModel) : Observable{\r\n return this.restAPIService.new_POST(this.updateDocumentsMsgId, commDocs);\r\n }\r\n\r\n public DeleteMessage(data: any): Observable {\r\n return this.restAPIService.new_POST(this.deleteMessage, data);\r\n }\r\n public GetCommunicationProtocol(commInp:ICommunicationInputModel) : Observable{\r\n return this.restAPIService.new_POST(this.GetCommunicationProtocolUrl, commInp);\r\n }\r\n public PostProjectCommunicationProtocol(commInp:ICommunicationProtocol) : Observable{\r\n return this.restAPIService.new_POST(this.PostCommunicationProtocolUrl, commInp);\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IDashboardInputModel, IFlexDCIInputModel, IICInputModel, IProjectDashboardInputModel, IProjectDocDashboardInputModel, IProjDashboardInputModel, IProjDocDashboardInputModel, IGFCDrawingInputModel, IJobMHInputModel, IManHourInputModel, IHomeDashboardInputModel } from 'src/app/ViewModel/DashboardModel';\r\nimport { PendingDrawingStatus } from \"src/app/ViewModel/Tender-Quantity.Model\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n private getEDMSDashboardDetailsUrl = 'Dashboard/GetEDMSDashboardDetails';\r\n private getICDetailsUrl = 'Dashboard/GetICDetails';\r\n private getFlexDCIDetailsUrl = 'Dashboard/GetFlexDCIDetails';\r\n private getEDMSProjectDashboardDetailsUrl = 'Dashboard/GetEDMSProjectDashboardDetails';\r\n private getEDMSProjectDashboardDocDetailsUrl = 'Dashboard/GetEDMSProjectDashboardDocDetails';\r\n private getProjDashboardUrl = 'Dashboard/GetProjectDashboardDetails';\r\n private getProjDocDashboardUrl = 'Dashboard/GetProjectDashboardDocDetails';\r\n private getdrawingGFCDashboardUrl = 'Dashboard/GetDrawingGFCDetails';\r\n private getdciAdherenceUrl = 'Dashboard/GetDCIScheduleAdherenceDetails';\r\n private getdciStageWiseeUrl = 'Dashboard/GetStageWiseDocDetails';\r\n private getdciRevWiseUrl = 'Dashboard/GetRevisionWiseDocDetails';\r\n private getdciDiscWiseUrl = 'Dashboard/GetDisciplineWiseDocDetails';\r\n private getStageRevWiseUrl = 'Dashboard/GetStageRevisionWiseDocDetails';\r\n private getJobMHDetailsUrl = 'Dashboard/GetEDRCProjectMHDetails';\r\n private getManHourDetailsUrl = 'Dashboard/GetManHourDetails';\r\n public getPendingDrawingStatusUrl = 'Dashboard/getPendingDrawingStatus';\r\n getEDMSHomeDashboardDetails = 'Dashboard/GetEDMSHomeDashboardDetails';\r\n\r\n constructor(private restAPTService: RestApiService) { }\r\n\r\n\r\n public GetEDMSDashboardDetails(icdetails?: IDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getEDMSDashboardDetailsUrl, icdetails);\r\n }\r\n\r\n public GetICDetails(icdetails?: IICInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getICDetailsUrl, icdetails);\r\n }\r\n\r\n public GetFlexDCIDetails(flexDCIdetails?: IFlexDCIInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getFlexDCIDetailsUrl, flexDCIdetails);\r\n }\r\n\r\n public GetEDMSProjectDashboardDetails(projdetails?: IProjectDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getEDMSProjectDashboardDetailsUrl, projdetails);\r\n }\r\n\r\n public GetEDMSProjectDashboardDocDetails(projdetails?: IProjectDocDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getEDMSProjectDashboardDocDetailsUrl, projdetails);\r\n }\r\n\r\n public GetProjDashboardDetails(projdetails?: IProjDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getProjDashboardUrl, projdetails);\r\n }\r\n\r\n public GetProjDashboardDocDetails(projdetails?: IProjDocDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getProjDocDashboardUrl, projdetails);\r\n }\r\n\r\n public GetDrawingGFCDetails(projdetails?: IGFCDrawingInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getdrawingGFCDashboardUrl, projdetails);\r\n }\r\n\r\n public GetDCiAdherenceDetails(projdetails?: IProjDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getdciAdherenceUrl, projdetails);\r\n }\r\n\r\n public GetStageWiseDocDetails(projdetails?: IProjDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getdciStageWiseeUrl, projdetails);\r\n }\r\n\r\n public GetRevisionWiseDocDetails(projdetails?: IProjDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getdciRevWiseUrl, projdetails);\r\n }\r\n\r\n public GetDiscWiseDocDetails(projdetails?: IProjDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getdciDiscWiseUrl, projdetails);\r\n }\r\n\r\n public GetStageRevisionWiseDocDetails(projdetails?: IProjDashboardInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getStageRevWiseUrl, projdetails);\r\n }\r\n\r\n public GetJobWiseMHDetails(projdetails?: IJobMHInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getJobMHDetailsUrl, projdetails);\r\n }\r\n public GetManHourDetails(manHourDetails?: IManHourInputModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getManHourDetailsUrl, manHourDetails);\r\n }\r\n public GetPendingDrawingStatus(PendingDrawingStatus?: PendingDrawingStatus): Observable {\r\n\r\n return this.restAPTService.new_POST(this.getPendingDrawingStatusUrl, PendingDrawingStatus);\r\n }\r\n\r\n public GetEDMSHomeDashboardDetails(HomeDashboardInputModel: IHomeDashboardInputModel): Observable {\r\n return this.restAPTService.new_POST(this.getEDMSHomeDashboardDetails, HomeDashboardInputModel);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataFormatService {\r\n\r\n months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n\r\n constructor() { }\r\n\r\n formatDate(inputDate: string|null) {\r\n if (!inputDate) {\r\n return null;\r\n }\r\n let\r\n output = new Date(inputDate).toLocaleDateString('en-GB'),\r\n inputAsArr = output.split(\"/\"),\r\n outputDate = inputAsArr[0] + \"-\" + this.months[Number(inputAsArr[1]) - 1] + \"-\" + inputAsArr[2];\r\n return outputDate;\r\n }\r\n\r\n getDiffBtwDates(fromDate: string|null, toDate: string|null, format?: 'days' | 'months' | 'years'): number|null {\r\n\r\n if (!fromDate || !toDate) {\r\n return null;\r\n }\r\n\r\n let\r\n _fromDate = new Date(fromDate).getTime(), // as millisecond\r\n _toDate = new Date(toDate).getTime(), // as millisecond\r\n diffTime = Math.abs(_toDate - _fromDate),\r\n aSec = 1000, // 1000 millisecond\r\n aMin = 60 * aSec,\r\n aHr = 60 * aMin,\r\n aDay = 24 * aHr,\r\n diffDays = Math.ceil(diffTime / aDay),\r\n diffMonths = Math.floor(diffDays / 7),\r\n diffYears: number;\r\n\r\n if (format === 'months') {\r\n return diffMonths;\r\n } else if (format === 'years') {\r\n diffYears = (_toDate - _fromDate) / 31536000000; // milliseconds in a year\r\n diffYears = Number(diffYears.toFixed(1));\r\n return diffYears;\r\n } else {\r\n return diffDays;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IDelegateAccessViewModel } from 'src/app/ViewModel/DelegateAccessModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DelegateAccessService {\r\n\r\n \r\n private insertDelegateAccess = 'DelegateAccess/PostDelegateAccess'; /** */\r\n private getDelegateAccess = 'DelegateAccess/GetDelegateAccessList'; /** */\r\n\r\n constructor(private restAPIService: RestApiService, private commonService: CommonService,) { }\r\n\r\n public getDelegateAccessList(){\r\n return this.restAPIService.new_POST(this.getDelegateAccess, { projectId : this.commonService.getProjectId(), memberId : this.commonService.getLoggedInUserId() });\r\n }\r\n\r\n public addDelegateAccess(delInputModel: IDelegateAccessViewModel): Observable {\r\n\r\n return this.restAPIService.new_POST(this.insertDelegateAccess, delInputModel);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { IDeleteDocumentInputModel, DrawingInactiveInputModel } from 'src/app/ViewModel/DeletedocumentModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeleteDocumentService {\r\n private _urlDeleteDocumentList = 'RepositoryDocuments/DeleteDocumentList';\r\n private _urlGetDeleteDocumentlist = 'RepositoryDocuments/GetDeleteDocumentlist';\r\n private _urlUpdateDrawingDocumentStatus = 'RepositoryDocuments/UpdateDrawingDocumentStatus';\r\n private _urlGetDrawingInactiveDocumentlist = 'RepositoryDocuments/GetDrawingInactiveDocumentlist';\r\n \r\n\r\n constructor(private restAPIService: RestApiService) { }\r\n\r\n\r\n /**\r\n \r\n * @param DocSLNo\r\n */\r\n public DeleteDocumentList(docInputModel: IDeleteDocumentInputModel): Observable {\r\n return this.restAPIService.new_POST(this._urlDeleteDocumentList, docInputModel);\r\n }\r\n\r\n public GetDeleteDocumentlist(docInputModel: IDeleteDocumentInputModel): Observable {\r\n return this.restAPIService.new_POST(this._urlGetDeleteDocumentlist, docInputModel);\r\n }\r\n public UpdateDrawingStatus(docInputModel: DrawingInactiveInputModel): Observable {\r\n return this.restAPIService.new_POST(this._urlUpdateDrawingDocumentStatus, docInputModel);\r\n }\r\n\r\n public GetDrawingInactiveDocumentlist(docInputModel: DrawingInactiveInputModel): Observable {\r\n return this.restAPIService.new_POST(this._urlGetDrawingInactiveDocumentlist, docInputModel);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentRevisionLinkService {\r\n\r\nprivate getGroup =\"DEDED/GetDEDAgainstDE\";\r\nprivate InsertDocRevision =\"DocumentRevisionLink/PostDocumentRevision\";\r\nprivate getDocRevision = \"DocumentRevisionLink/GetDocumentRevision\";\r\n\r\nconstructor(private commonService: CommonService,private restApiService: RestApiService) { }\r\n \r\ngetGroupData():Observable{\r\n let obj:any ={\r\n \"DEDescription\": \"Workflow Status\",\r\n \"dependentDEDId\": null,\r\n \"dependentDEId\": null,\r\n \"groupId\": null,\r\n \"moduleId\": null,\r\n \"projectId\": this.commonService.getProjectId()\r\n }\r\n return this.restApiService.new_POST(this.getGroup,obj);\r\n}\r\n\r\ninsertDocumentRevision(obj:any):Observable{ \r\n return this.restApiService.new_POST(this.InsertDocRevision,obj);\r\n}\r\n\r\ngetDocumentRevision(obj:any):Observable{ \r\n return this.restApiService.new_POST(this.getDocRevision,obj);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { IDocSLNoInputModel, IDocumentApprovalModel, IDocumentInputModel, IDocumentTemplateInputModel, IDocumentShareModel, IDocumentShareMailModel, IDocumentListInputModel, IDocReceiverStatus,IMSTDocDetailsInputModel, IDocumentRepositoryHistoryInputModel } from 'src/app/ViewModel/DocumentModel';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from \"src/app/Service/Common.service\";\r\nimport { EncryptDecryptService } from '../encrypt-decrypt.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentService {\r\n private getDocSerialNo = 'RepositoryDocuments/GetDocSerialNo';\r\n private insertDocument = 'RepositoryDocuments/InsertDocument';\r\n private downloadTemplate = 'RepositoryDocuments/DownloadTemplate';\r\n private deleteDoc =\"RepositoryDocuments/DeleteDocument\";\r\n private uploadExcel = 'RepositoryDocuments/UploadTemplate';\r\n private getDocumentListurl = 'RepositoryDocuments/GetDocumentList';\r\n private getDocumentRevHistoryUrl = 'RepositoryDocuments/GetDocumentRevisionHistory';\r\n private documentApproval = 'RepositoryDocuments/DocumentApproval';\r\n private documentById = 'RepositoryDocuments/GetDocumentById';\r\n private documentElementsById = 'RepositoryDocuments/GetDocumentElementsById';\r\n private insertSearch = 'RepositoryDocuments/InsertDocumentSearch';\r\n private removeSearch = 'RepositoryDocuments/RemoveDocumentSearch';\r\n private searchList = 'RepositoryDocuments/GetDocumentSearchList';\r\n private shareDoc = 'RepositoryDocuments/UpdateDocumentShare';\r\n private shareDocMail = 'RepositoryDocuments/SendDocumentShareMail';\r\n private shareDocList = 'RepositoryDocuments/GetDocumentShareList';\r\n private getDocumentMsgListurl = 'RepositoryDocuments/GetDocumentMessageList';\r\n private getDocumentRepositoryhistory ='RepositoryDocuments/GetRepositorySharedDocHistoryList';\r\n private updateDocumentRepositoryhistory ='RepositoryDocuments/UpdateRepositorySharedDocHistoryList';\r\n private getMSTDetails = 'RepositoryDocuments/GetMSTDetails';\r\n private insertMSTDocDetails ='RepositoryDocuments/InsertMSTDocDetails'\r\n private endPoints = {\r\n uploadFile: \"/RepositoryDocuments/UploadTemplate\"\r\n}\r\n\r\n constructor(private _commonService: CommonService,private encryptDecryptService: EncryptDecryptService, private restAPIService: RestApiService, private http: HttpClient, private commonService: CommonService) { }\r\n\r\n\r\n /**\r\n * Generate Serial No based on Document Element Details\r\n * @param DocSLNo\r\n */\r\n public GetDocSerialNo(docInputModel: IDocSLNoInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getDocSerialNo, docInputModel);\r\n }\r\n\r\n public InsertDocument(docInputModel: IDocumentInputModel): Observable {\r\n return this.restAPIService.new_POST(this.insertDocument, docInputModel);\r\n }\r\n\r\n public DownloadTemplate(docInputModel: IDocumentTemplateInputModel): Observable {\r\n return this.restAPIService.new_POST(this.downloadTemplate, docInputModel);\r\n }\r\n\r\n public UploadExcel(docInputModel: Array): Observable {\r\n return this.restAPIService.new_POST(this.uploadExcel, docInputModel);\r\n }\r\n\r\n public DocumentApproval(docApprovalModel: IDocumentApprovalModel): Observable {\r\n return this.restAPIService.new_POST(this.documentApproval, docApprovalModel);\r\n }\r\n\r\n /**\r\n * Get org API\r\n * @param ProjecId, GroupId 50\r\n */\r\n public getDocumentList(documentListModel: IDocumentListInputModel): Observable {\r\n return this.restAPIService.new_POST(this.getDocumentListurl, documentListModel);\r\n }\r\n\r\n public getDocumentRevisionHistory(documentRevHistoryModel: any): Observable {\r\n return this.restAPIService.new_POST(this.getDocumentRevHistoryUrl, documentRevHistoryModel);\r\n }\r\n\r\n public getDocumentById(docInputModel: any): Observable {\r\n return this.restAPIService.new_POST(this.documentById, docInputModel);\r\n }\r\n\r\n public getDocumentElementsById(docInputModel: any): Observable {\r\n return this.restAPIService.new_POST(this.documentElementsById, docInputModel);\r\n }\r\n\r\n public insertDocumentSearch(docInputModel: any): Observable {\r\n return this.restAPIService.new_POST(this.insertSearch, docInputModel);\r\n }\r\n\r\n public removeDocumentSearch(projectId?: number, memberId?: number, searchId?: number): Observable {\r\n let reqData = {\r\n 'projectId': projectId,\r\n 'memberId': memberId,\r\n 'searchId': searchId\r\n };\r\n return this.restAPIService.new_POST(this.removeSearch, reqData);\r\n }\r\n\r\n public getDocumentSearchList(projectId?: number, memberId?: number): Observable {\r\n let reqData = {\r\n 'projectId': projectId,\r\n 'memberId': memberId\r\n };\r\n return this.restAPIService.new_POST(this.searchList, reqData);\r\n }\r\n\r\n public DocumentShare(docShareModel: IDocumentShareModel): Observable {\r\n return this.restAPIService.new_POST(this.shareDoc, docShareModel);\r\n }\r\n\r\n public DocumentShareMail(docShareModel: IDocumentShareMailModel): Observable {\r\n return this.restAPIService.new_POST(this.shareDocMail, docShareModel);\r\n }\r\n\r\n public getDocumentShareList(docId?: number, revision?: string): Observable {\r\n let reqData = {\r\n 'docId': docId,\r\n 'revisionNo': revision\r\n }\r\n return this.restAPIService.new_POST(this.shareDocList, reqData);\r\n }\r\n\r\n public getDocumentMsgList(docId: number, projectId: number, groupId: number, memberId: any, transType: string,revisionNo: string |null): Observable {\r\n let reqData = {\r\n 'docId': docId,\r\n 'projectId': projectId,\r\n 'groupId': groupId,\r\n 'memberId': memberId,\r\n 'transType': transType,\r\n 'revisionNo':revisionNo\r\n }; \r\n return this.restAPIService.new_POST(this.getDocumentMsgListurl, reqData);\r\n }\r\n\r\n public DeleteDoc(data:any){\r\n let resData ={\r\n \"docId\": data.docId,\r\n \"revisionNo\": data.revisionNo,\r\n \"userId\": data.userId\r\n } \r\n return this.restAPIService.new_POST(this.deleteDoc, resData);\r\n }\r\n public GetDocumentRepositoryhistory( docId: number, revision: string) :Observable {\r\n let reqData = {\r\n 'docId': docId,\r\n 'revisionNo': revision\r\n }\r\n\t\treturn this.restAPIService.new_POST(this.getDocumentRepositoryhistory,reqData );\r\n\t}\r\n\r\n public setRepoHistoryStatus(docInputModel: IDocReceiverStatus): Observable {\r\n return this.restAPIService.new_POST(this.updateDocumentRepositoryhistory, docInputModel);\r\n }\r\n\r\n\r\n public GetMSTDetails(data:any){\r\n let inputData= {\r\n \"uid\":data.uid,\r\n \"jobCode\":data.jobCode\r\n }\r\n return this.restAPIService.new_POST(this.getMSTDetails, data);\r\n }\r\n\r\n\r\n public InsertMSTDocDetails(MSTDocDetailsInput: IMSTDocDetailsInputModel): Observable {\r\n return this.restAPIService.new_POST(this.insertMSTDocDetails, MSTDocDetailsInput);\r\n }\r\n\r\n public UploadDocumentExcelTemplate(formData: FormData): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.uploadFile;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this._commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this._commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, formData, { 'headers': headers });\r\n}\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IPorjectInputModel } from 'src/app/ViewModel/ScheduleDefinitionModel';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class DocumentViewerService {\r\n private endPoints = {\r\n \"createTranslateJob\": \"Viewer/CreateTranslateJob\",\r\n \"getCompareDocuments\":\"Viewer/GetCompareDocuments\",\r\n }\r\n constructor(private restAPIService: RestApiService) { }\r\n\r\n\r\n /**\r\n * Insert CreateTranmittal pending job\r\n * @param organization \r\n */\r\n public CreateTranslateJob(fileModel: any): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.createTranslateJob, fileModel);\r\n }\r\n\r\n public GetCompareDocuments(projectModel:IPorjectInputModel):Observable{\r\n return this.restAPIService.new_POST(this.endPoints.getCompareDocuments,projectModel)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IElementDetailsSortByInputModel } from 'src/app/ViewModel/ElementDetailsModel';\r\nimport { ElementDetailsLinkSaveModel } from 'src/app/ViewModel/ElementsDetailsLinkSaveModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ElementDetailsLinkService {\r\n\r\n\tprivate getDependentElementsUrl = 'ElementLink/GetProjectDependantDocumentElement';\r\n\tprivate saveElementsDetailsLinkUrl = 'ElementDetailsLink/PostProjectDocumentElementDetails';\r\n\tprivate updateElementDetailsSortByUrl = 'ElementDetailsLink/UpdateProjectElementDetailsSortBy';\r\n\r\n\tconstructor(private commonService: CommonService,\r\n\t\tprivate restApiService: RestApiService,) { }\r\n\r\n\tgetDependentElements(projectId: number, groupId: string, moduleId: string|null, parentElementId: number|null) {\r\n\t\treturn this.restApiService.new_POST(this.getDependentElementsUrl, { projectId, groupId, moduleId, parentElementId });\r\n\t}\r\n\r\n\r\n\tsaveElementsDetailsLink(reqData: ElementDetailsLinkSaveModel) {\r\n\t\treturn this.restApiService.new_POST(this.saveElementsDetailsLinkUrl, reqData);\r\n\t}\r\n\r\n\tupdateElementDetailsSortby(elementDetailsOrderBy: IElementDetailsSortByInputModel) {\r\n\t\treturn this.restApiService.new_POST(this.updateElementDetailsSortByUrl, elementDetailsOrderBy);\r\n\t}\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, of, observable } from \"rxjs\";\r\nimport { IProjectElementDetailsInput, IProjectElementDetailsOutput } from \"../ViewModel/ProjectElementsModel\";\r\n\r\nexport enum Module {\r\n UploadDocument = 1,\r\n ScheduleDocument = 2,\r\n Workflow = 3,\r\n Communication = 4,\r\n Transmittal = 5,\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ElementDetailsCacheService {\r\n private elementDetailCache: Map> = new Map>();\r\n mapElementDetails(key: string, result: IProjectElementDetailsOutput[]) {\r\n this.elementDetailCache.set(key, of(result));\r\n }\r\n\r\n hasElementDetails(key: string): boolean {\r\n return this.elementDetailCache.has(key)\r\n }\r\n\r\n getElementDetails(key: string): Observable {\r\n let x= this.elementDetailCache.get(key);\r\n return x?x:new Observable();\r\n }\r\n deleteElementDetails(key: string) {\r\n if (this.elementDetailCache.has(key)) {\r\n this.elementDetailCache.delete(key);\r\n }\r\n }\r\n clearElementDetailCache() {\r\n this.elementDetailCache.clear();\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { ElementLinkModel } from 'src/app/ViewModel/ElementLinkModel';\r\nimport { ModuleModel } from 'src/app/ViewModel/ModuleModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { MapRoleFeatureService } from '../map-role-feature/map-role-feature.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ElementLinkService {\r\n\r\n\tbusinessGroupList: ReadonlyArray = [];\r\n\tselectedBusinessGrpId?: number | null;\r\n\tclearBusinessGroup = 'N';\r\n\r\n\tendpoints = {\r\n\t\tmodule: {\r\n\t\t\t'getModuleList': 'CECED/GetCEDAgainstCE',\r\n\t\t},\r\n\t\telementLink: {\r\n\t\t\t'getDocumentElements': 'ElementLink/GetProjectDocumentElements',\r\n\t\t\t'getModuleElements': 'ElementLink/GetProjectModuleElements',\r\n\t\t\t'getDependentFlag': 'ElementLink/GetProjectDependantDocumentElement',\r\n\t\t\t'saveDocumentElements': 'ElementLink/PostProjectDocumentElements',\r\n\t\t\t'getNumberingSlNoLength': 'ElementLink/GetProjectNumberingSerialLength',\r\n\t\t},\r\n\t}\r\n\r\n\tconstructor(private mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tprivate commonService: CommonService,\r\n\t\tprivate restApiService: RestApiService,\r\n\t) {\r\n\t\tthis.commonService.selectedProjectId.subscribe((data: any) => {\r\n\t\t\tif (data != null || data != undefined) {\r\n\t\t\t\tthis.getBusinessGrpList(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tgetBusinessGrpList(projectId: number) {\r\n\t\tthis.mapRoleFeatureService.getBusinessGroups(projectId).subscribe(data => {\r\n\t\t\tthis.businessGroupList = data.filter(each => each.is_Active);\r\n\t\t});\r\n\t}\r\n\r\n\tgetDocumentElements(projectId: number, isForStaticElement: boolean, businessGroupId?: number, moduleId?: number, isForAllElements?: boolean): Observable {\r\n\t\tlet reqData = {\r\n\t\t\tprojectId,\r\n\t\t\tgroupId: this.selectedBusinessGrpId ? this.selectedBusinessGrpId : businessGroupId,\r\n\t\t\tmoduleId: moduleId ? moduleId : null,\r\n\t\t\t\"isQueryForStaticElement\": isForStaticElement,\r\n\t\t\t\"isQueryForAllElements\": isForAllElements,\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.endpoints.elementLink.getDocumentElements, reqData);\r\n\t}\r\n\r\n\tgetModuleElements(projectId: number, groupId: number, moduleId: string, moduleCount: number) {\r\n\t\tlet reqData = { projectId, groupId, moduleId, moduleCount };\r\n\t\treturn this.restApiService.new_POST(this.endpoints.elementLink.getModuleElements, reqData);\r\n\t}\r\n\r\n\r\n\tgetModuleList(businessGroupId: number): Observable {\r\n\t\tlet reqData = {\r\n\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\t\"groupId\": businessGroupId,\r\n\t\t\t\"ceDescription\": \"Module\",\r\n\t\t};\r\n\t\treturn this.restApiService.new_POST(this.endpoints.module.getModuleList, reqData);\r\n\r\n\t}\r\n\r\n\tsaveDocumentElements(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.endpoints.elementLink.saveDocumentElements, reqData);\r\n\t}\r\n\r\n\tgetDependentFlag(groupId: string, moduleId: string | null, parentElementId: number) {\r\n\t\tlet reqData = {\r\n\t\t\t\"projectId\": this.commonService.getProjectId(),\r\n\t\t\tgroupId,\r\n\t\t\tmoduleId,\r\n\t\t\tparentElementId,\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.endpoints.elementLink.getDependentFlag, reqData);\r\n\t}\r\n\r\n\tgetNumberingSlNoLength(projectId: number, groupId: number, moduleId: number) {\r\n\t\tlet reqData = {\r\n\t\t\tprojectId,\r\n\t\t\tgroupId,\r\n\t\t\tmoduleId\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.endpoints.elementLink.getNumberingSlNoLength, reqData);\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IElementDetailsViewModel, IElementDetailsDynamicInputModel, IElementDetailsDynamicOutputModel } from 'src/app/ViewModel/ElementDetailsModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ElementdetailsService {\r\n\r\n private getElementDetailsListUrl = 'ElementDetails/GetElementDetailsList';\r\n private getElementDetailsByDescListUrl = 'ElementDetails/GetElementDetailsByDescList';\r\n private insertUpdateElementDetailsUrl = 'ElementDetails/InsertUpdateElementDetailsList';\r\n private CopyElementDetailsUrl = 'ElementDetails/CopyElementDetails';\r\n private getElementDetailsDynamicUrl = 'ElementDetails/GetElementDetailsDynamic';\r\n\r\n constructor(private restAPTService: RestApiService) { }\r\n\r\n\r\n /**\r\n * Get Elements List API\r\n * @param de_Id 50\r\n * @param ded_Id 50\r\n */\r\n public GetElementDetailsList(de_Id?: number, ded_Id?: number): Observable {\r\n let reqData = {\r\n 'de_Id': de_Id,\r\n 'ded_Id': ded_Id\r\n };\r\n return this.restAPTService.new_POST(this.getElementDetailsListUrl, reqData);\r\n }\r\n\r\n /**\r\n * Insert and Update Element Details\r\n * @param elementDetails \r\n */\r\n public insertUpdateElementDetails(elementDetails: IElementDetailsViewModel): Observable {\r\n return this.restAPTService.new_POST(this.insertUpdateElementDetailsUrl, elementDetails);\r\n }\r\n\r\n /**\r\n * Get Elements List API\r\n * @param elementDescription 'CCN Type'\r\n */\r\n public GetElementDetailsByDescList(elementDescription: string): Observable {\r\n let reqData = {\r\n 'elementDescription': elementDescription\r\n };\r\n return this.restAPTService.new_POST(this.getElementDetailsByDescListUrl, reqData);\r\n }\r\n\r\n /**\r\n * Get Elements List API\r\n * @param elementDescription 'CCN Type'\r\n */\r\n public GetElementDetailsDynamic(inputdata?: IElementDetailsDynamicInputModel): Observable {\r\n return this.restAPTService.new_POST(this.getElementDetailsDynamicUrl, inputdata);\r\n }\r\n\r\n public CopyElementDetails(input: any): Observable {\r\n return this.restAPTService.new_POST(this.CopyElementDetailsUrl, input);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { IElementsViewModel } from '../../ViewModel/ElementsModel'\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ElementsService {\r\n private getElementListUrl = 'Elements/GetElementsList';\r\n private insertUpdateElementsUrl = 'Elements/InsertUpdateElementsList';\r\n\r\n constructor(private restAPTService: RestApiService) { }\r\n\r\n\r\n /**\r\n * Get Elements List API\r\n * @param de_Id 50\r\n */\r\n public GetElementsList(de_Id?: number): Observable {\r\n let reqData = {\r\n 'de_Id': de_Id,\r\n };\r\n return this.restAPTService.new_POST(this.getElementListUrl, reqData);\r\n }\r\n\r\n /**\r\n * Insert and Update Element Details\r\n * @param elements \r\n */\r\n public insertUpdateElements(elements: IElementsViewModel): Observable {\r\n return this.restAPTService.new_POST(this.insertUpdateElementsUrl, elements);\r\n }\r\n\r\n}\r\n","import * as CryptoJS from 'crypto-js';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EncryptDecryptService {\r\n\r\n constructor() { }\r\n\r\n // encrypt method will encrypt the data and return back in string formate.\r\n public encrypt(value:any) {\r\n if (value === undefined || value === null) {\r\n return '';\r\n } else {\r\n const keys = '0123456789^@3dm$'; // default key for encryption\r\n const key = CryptoJS.enc.Utf8.parse(keys);\r\n const vectorIV = CryptoJS.enc.Utf8.parse(keys);\r\n const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(value.toString()), key,\r\n {\r\n keySize: 128 / 8,\r\n iv: vectorIV,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return encrypted.toString();\r\n }\r\n }\r\n \r\n // The decrypt method will decrypt the value and return back in string format.\r\n public decrypt(value: any) {\r\n if (value === undefined || value === null) {\r\n return '';\r\n } else {\r\n try {\r\n const keys = '0123456789^@3dm$'; // default key for decryption\r\n const key = CryptoJS.enc.Utf8.parse(keys);\r\n const vectorIV = CryptoJS.enc.Utf8.parse(keys);\r\n const decrypted = CryptoJS.AES.decrypt(value, key, {\r\n keySize: 128 / 8,\r\n iv: vectorIV,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n } catch (e) {\r\n // Display Error message\r\n const errorMsg = {\r\n messageText: e\r\n };\r\n return errorMsg.toString();\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n // using loginAuditNo as Key - This method will encrypt the data and return back in string format.\r\n public encryptUsingKey(value: { toString: () => any; } | null | undefined, encryptionKey: any): string {\r\n if (value === undefined || value === null) {\r\n return '';\r\n } else {\r\n const keys = encryptionKey; // default key for encryption\r\n const key = CryptoJS.enc.Utf8.parse(keys);\r\n const vectorIV = CryptoJS.enc.Utf8.parse(keys);\r\n const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(value.toString()), key,\r\n {\r\n keySize: 128 / 8,\r\n iv: vectorIV,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return encrypted.toString();\r\n }\r\n }\r\n\r\n // using loginAuditNo as Key - This method will decrypt the value and return back in string format.\r\n public decryptUsingKey(value: null | undefined, decryptionKey: any): string {\r\n if (value === undefined || value === null) {\r\n return '';\r\n } else {\r\n try {\r\n const keys = decryptionKey; // default key for decryption\r\n const key = CryptoJS.enc.Utf8.parse(keys);\r\n const vectorIV = CryptoJS.enc.Utf8.parse(keys);\r\n const decrypted = CryptoJS.AES.decrypt(value, key, {\r\n keySize: 128 / 8,\r\n iv: vectorIV,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n } catch (e) {\r\n // Display Error message\r\n const errorMsg = {\r\n messageText: e\r\n };\r\n return errorMsg.toString();\r\n // throw e;\r\n }\r\n }\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IFileDownloadModel, IFileValidationModel } from \"src/app/ViewModel/File.Model\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { CommonService } from \"../Common.service\";\r\nimport { EncryptDecryptService } from \"../encrypt-decrypt.service\";\r\nimport { RestApiService } from \"../rest-api.service\";\r\n\r\nexport enum FileUploadLibrary {\r\n WorkflowDocument = 1,\r\n Documents = 2,\r\n CCNDocuments = 3,\r\n Communication = 4,\r\n SignedDocuments = 5\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class FileService {\r\n private baseUrl = environment.uriHost;\r\n private endPoints = {\r\n uploadChunk: this.baseUrl + '/ManageFile/UploadChunk',\r\n uploadChunkFile: this.baseUrl + '/ManageFile/UploadChunkFile',\r\n uploadStatus: 'ManageFile/FileUploadStatus',\r\n validateFile: \"ManageFile/ValidateFiles\",\r\n getFiles: \"ManageFile/GetFiles\",\r\n downloadFile: \"/ManageFile/DownloadFileByLibrary\",\r\n deleteFile: \"ManageFile/DeleteFileByLibrary\",\r\n downloadAllAttachments: '/ManageFile/downloadAllFiles',\r\n }\r\n constructor(private http: HttpClient, private restAPTService: RestApiService, private commonService: CommonService, private encryptDecryptService: EncryptDecryptService) {\r\n\r\n }\r\n public UploadChunk(chunk: any, headers: any): Observable {\r\n return this.http.post(this.endPoints.uploadChunk, chunk, { headers: headers });\r\n }\r\n\r\n public UploadChunkFile(formData: FormData) {\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(this.endPoints.uploadChunkFile, formData, { 'headers': headers });\r\n }\r\n public GetFileUploadStatus(fileInfo: IFileValidationModel): Observable {\r\n return this.restAPTService.new_POST(this.endPoints.uploadStatus, fileInfo)\r\n }\r\n\r\n public ValidateFiles(validateFileInfo: IFileValidationModel): Observable {\r\n return this.restAPTService.new_POST(this.endPoints.validateFile, validateFileInfo)\r\n }\r\n\r\n public GetFiles(files: IFileValidationModel) {\r\n return this.restAPTService.new_POST(this.endPoints.getFiles, files)\r\n }\r\n\r\n public DeleteFile(fileModel: IFileDownloadModel): Observable {\r\n return this.restAPTService.new_POST(this.endPoints.deleteFile, fileModel)\r\n }\r\n\r\n public DownloadFile(fileModel: IFileDownloadModel): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.downloadFile;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, fileModel, { 'headers': headers, responseType: 'blob' });\r\n }\r\n\r\n public DownloadAllFiles(files: Array) {\r\n let _apiURL = environment.uriHost + this.endPoints.downloadAllAttachments;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, files, { 'headers': headers, responseType: 'blob' });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AdalService } from 'adal-angular4';\r\nimport { Observable } from 'rxjs';\r\nimport { CommonService } from './Common.service';\r\nimport { EncryptDecryptService } from './encrypt-decrypt.service';\r\nimport { RestApiService } from './rest-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FinaDrawingReportService {\r\n\r\n private readonly GetFinalDrawingList = 'Dashboard/GetFinalDrawingList';\r\n\r\n \r\n constructor(public router: Router, private adal: AdalService, public restApiService: RestApiService, public commonService: CommonService, private _encryptDecryptService:EncryptDecryptService) { }\r\n\r\n\r\n getFinalDrawingList(obj:any): Observable{ \r\n return this.restApiService.new_POST(this.GetFinalDrawingList, obj);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { RestApiService } from \"../rest-api.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class IncidentManagerService {\r\n private endPoints = {\r\n uploadIncidentScreenshot: 'IncidentMgmt/UploadIncidentScreenshot',\r\n createIncident: 'IncidentMgmt/CreateIncident',\r\n }\r\n\r\n constructor(private restAPIService: RestApiService) {\r\n\r\n }\r\n\r\n public uploadIncidentScreenshot(reqData: any): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.uploadIncidentScreenshot, reqData);\r\n }\r\n public createIncident(reqData: any): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.createIncident, reqData);\r\n }\r\n}","import { Observable } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\nimport { AdalService } from 'adal-angular4';\r\nimport { CommonService } from './Common.service';\r\nimport { RestApiService } from './rest-api.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { map } from 'rxjs/operators';\r\nimport { EncryptDecryptService } from './encrypt-decrypt.service';\r\nimport { UserDetailsViewModel } from '../ViewModel/UserDetailsModel';\r\n@Injectable()\r\nexport class LoginService {\r\n private readonly logout = 'Login/Logout';\r\n private readonly changePassword = 'Login/ChangePassword';\r\n private readonly getCurrentUserDetails = 'Login/GetCurrentUserDetails';\r\n private readonly validateExternalMemberLogin = 'Login/ExternalMemberLogin';\r\n private readonly validateCurentUserAccess = 'Login/ValidateCurentUserAccess';\r\n private readonly getMemberProjectSelection = 'Project/GetMemberProjectSelection';\r\n private readonly _url_PostForgetPasswordOTP = 'Login/PostForgetPasswordOTP';\r\n\r\n\r\n constructor(public router: Router, private adal: AdalService, public restApiService: RestApiService, public commonService: CommonService, private _encryptDecryptService:EncryptDecryptService) {\r\n this.adal.init({\r\n tenant: environment.tenant,\r\n clientId: environment.clientId,\r\n cacheLocation: environment.cacheLocation,\r\n localLoginUrl: environment.localLoginUrl,\r\n redirectUri: environment.redirectUri,\r\n postLogoutRedirectUri: environment.postLogoutRedirectUri\r\n });\r\n }\r\n\r\n public InternalMemberLogin(): void {\r\n this.adal.handleWindowCallback();\r\n this.adal.login();\r\n }\r\n\r\n public ExternalMemberLogin(user: any): Observable {\r\n return this.restApiService.new_POST(this.validateExternalMemberLogin, user);\r\n }\r\n\r\n public GetCurrentUserDetails(user: any): Observable {\r\n return this.restApiService.new_POST(this.getCurrentUserDetails, user).pipe(map(res=>{\r\n let decryptedObject:any = JSON.parse(this._encryptDecryptService.decrypt(res));\r\n let userdetailsModel:UserDetailsViewModel = new UserDetailsViewModel();\r\n userdetailsModel.memberId = decryptedObject.MemberId;\r\n userdetailsModel.memberName = decryptedObject.MemberName;\r\n userdetailsModel.memberShortName = decryptedObject.MemberShortName;\r\n userdetailsModel.companyCode = decryptedObject.CompanyCode;\r\n userdetailsModel.reportingTo = decryptedObject.ReportingTo;\r\n userdetailsModel.reportingToName = decryptedObject.ReportingToName;\r\n userdetailsModel.staffPSNo = decryptedObject.StaffPSNo;\r\n userdetailsModel.eccWebLogin = decryptedObject.EccWebLogin;\r\n userdetailsModel.designation = decryptedObject.Designation;\r\n userdetailsModel.eMailId = decryptedObject.EMailId;\r\n userdetailsModel.mobileNo = decryptedObject.MobileNo;\r\n userdetailsModel.isInternal = decryptedObject.IsInternal;\r\n userdetailsModel.isActive = decryptedObject.IsActive;\r\n userdetailsModel.groupId = decryptedObject.GroupId;\r\n userdetailsModel.jwtToken = decryptedObject.JWTToken;\r\n userdetailsModel.loginAuditNumber = decryptedObject.LoginAuditNumber;\r\n userdetailsModel.isDuplicateLogin = decryptedObject.IsDuplicateLogin;\r\n userdetailsModel.eipUserId = decryptedObject.EipUserId;\r\n userdetailsModel.result = decryptedObject.Result;\r\n userdetailsModel.successCode = decryptedObject.SuccessCode;\r\n userdetailsModel.successMessage = decryptedObject.SuccessMessage;\r\n return userdetailsModel;\r\n }));\r\n }\r\n\r\n public GetMemberProjectSelection(user: any): Observable {\r\n return this.restApiService.new_POST(this.getMemberProjectSelection, user);\r\n }\r\n\r\n public ValidateCurentUserAccess(user: any): any {\r\n return this.restApiService.new_POST(this.validateCurentUserAccess, user);\r\n }\r\n\r\n public ChangePassword(user: any): Observable {\r\n return this.restApiService.new_POST(this.changePassword, user);\r\n }\r\n public PostForgetPasswordOTP(Input: any): Observable {\r\n return this.restApiService.new_POST(this._url_PostForgetPasswordOTP, Input);\r\n }\r\n\r\n public Logout(_isInternal: boolean): void {\r\n let user = {\r\n memberId: this.commonService.getLoggedInUserId(),\r\n isInternal: _isInternal,\r\n isLogoutTime: true\r\n }\r\n\r\n this.restApiService.new_POST(this.logout, user).subscribe((data: any) => {\r\n if (_isInternal) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.commonService.redirectUserToPRAddComments = this.commonService.isAccesingPRAddCommentsPage;\r\n this.adal.logOut();\r\n }\r\n\r\n if (!_isInternal) {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.commonService.redirectUserToPRAddComments = this.commonService.isAccesingPRAddCommentsPage;\r\n this.router.navigate(['/authentication/login']);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { RoleFeaturePostModel } from 'src/app/ViewModel/RoleFeaturePostModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MapRoleFeatureService {\r\n\r\n\tprivate readonly dedAgainstDEGetUrl = 'DEDED/GetDEDAgainstDE';\r\n\tprivate readonly roleFeatureLinkGetUrl = 'RoleFeaturesLink/GetRoleFeatures';\r\n\tprivate readonly roleFeaturePostUrl = 'RoleFeaturesLink/PostRoleFeatures';\r\n\tprivate readonly businessGroupListUrl = 'Organization/GetOrganizationAgainstProject';\r\n\tprivate readonly getCommonDedAgainstdeUrl = 'DEDED/GetCommonDEDAgainstDE'\r\n\r\n\tconstructor(\r\n\t\tprivate commonService: CommonService,\r\n\t\tprivate restAPIService: RestApiService,\r\n\t) { }\r\n\r\n\t/**\r\n\t * Get Roles,Features List\r\n\t * @param dedDescription Element Description\r\n\t * @param groupId \r\n\t * @param moduleId \r\n\t * @param dependentDEId dependentElementId\r\n\t * @param dependentDEDId dependentElementDetailId \r\n\t */\r\n\t// 'Role' | 'Feature'\r\n\tgetDedAgainstDe(dedDescription: string, groupId: any, moduleId?: any, dependentDEId?: null | number, dependentDEDId: null | number = 0, ProjectId?: number | null): Observable {\r\n\t\tlet reqData = {\r\n\t\t\t\"projectId\": !!ProjectId ? ProjectId : this.commonService.getProjectId(),\r\n\t\t\t\"DEDescription\": dedDescription,\r\n\t\t\t\"groupId\": groupId ? groupId.toString() : null,\r\n\t\t\t\"moduleId\": moduleId ? moduleId.toString() : null,\r\n\t\t\tdependentDEId,\r\n\t\t\tdependentDEDId,\r\n\t\t};\r\n\t\treturn this.restAPIService.new_POST(this.dedAgainstDEGetUrl, reqData);\r\n\t}\r\n\r\n\tgetCommonDedAgainstDe(deId: null | number, deDescription?: string) {\r\n\t\treturn this.restAPIService.new_POST(this.getCommonDedAgainstdeUrl, { deId, deDescription });\r\n\t}\r\n\r\n\t/**\r\n\t * Fetch previously mapped data from DB\r\n\t * @param groupId \r\n\t */\r\n\tgetRoleFeatureLinkData(groupId: number) {\r\n\t\treturn this.restAPIService.new_POST(this.roleFeatureLinkGetUrl, { 'projectId': this.commonService.getProjectId(), groupId });\r\n\t}\r\n\r\n\t/**\r\n\t * Save mapped changes\r\n\t * @param reqData\r\n\t */\r\n\tpostRoleFeature(reqData: RoleFeaturePostModel) {\r\n\t\treturn this.restAPIService.new_POST(this.roleFeaturePostUrl, reqData);\r\n\t}\r\n\r\n\t/**\r\n\t * Get business group list\r\n\t * @param projectId \r\n\t */\r\n\tgetBusinessGroups(projectId: number): Observable {\r\n\t\treturn this.restAPIService.new_POST(this.businessGroupListUrl, { projectId });\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MemberElementDetailLinkService {\r\n\r\n private getMembersUrl = \"ProjectMembersLink/GetMembersAgainstProjectBusinessGroup\";\r\n private getSelectedMembersUrl = \"MemberElementDetailsLink/GetMembersAgainstProjectElementDetail\";\r\n private getSelectedModuleElementMembers = \"MemberElementDetailsLink/GetMembersAgainstModuleElementDetail\";\r\n private postProjectMembersElementDetailsUrl = \"MemberElementDetailsLink/PostProjectMemberElementDetails\";\r\n\r\n constructor(public restApiService: RestApiService,) { }\r\n\r\n /**\r\n * Get all members\r\n * @param groupId \r\n * @param projectId \r\n */\r\n getMembers(groupId: number, projectId: number) {\r\n return this.restApiService.new_POST(this.getMembersUrl, { groupId, projectId });\r\n }\r\n\r\n /**\r\n * Get previously selected members\r\n * @param projectId \r\n * @param groupId \r\n * @param elementId \r\n * @param elementDetailedId \r\n */\r\n getSelectedMembers(projectId: number, groupId: number, elementId: any, elementDetailedId: any, module: number): Observable {\r\n let reqData = {\r\n projectId,\r\n groupId,\r\n elementId,\r\n elementDetailedId,\r\n module\r\n }\r\n\r\n return this.restApiService.new_POST(this.getSelectedMembersUrl, reqData);\r\n }\r\n\r\n getSelectedElementMembers(projectId, groupId, elementId, elementDetailedId, elementDedIdCount, module, moduleCount) {\r\n let reqData = {\r\n projectId,\r\n groupId,\r\n elementId,\r\n elementDetailedId,\r\n elementDedIdCount,\r\n module,\r\n moduleCount\r\n }\r\n return this.restApiService.new_POST(this.getSelectedModuleElementMembers, reqData);\r\n }\r\n\r\n /**\r\n * Save mapped member element details\r\n */\r\n postMembersElementDetails(reqData: { projectId: number; groupId: number; elementId: number; elementDetailedId: string; activeMemberIds: string | null; inactiveMemberIds: string | null; createdBy: number; }) {\r\n return this.restApiService.new_POST(this.postProjectMembersElementDetailsUrl, reqData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from \"rxjs\";\r\nimport { RoleMemberPostModel } from 'src/app/ViewModel/RoleMemberPostModel';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from '../Common.service';\r\nimport { EncryptDecryptService } from '../encrypt-decrypt.service';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MemberRoleLinkService {\r\n\r\n\tprivate readonly membersListUrl = 'ProjectMembersLink/GetMembersAgainstProjectBusinessGroup';\r\n\tprivate readonly mappedMemberRoleGetUrl = 'RoleMembersLink/GetRoleMembers';\r\n\tprivate readonly memberRoleMapUrl = 'RoleMembersLink/PostRoleMembers';\r\n\tprivate readonly DownloadMemberRoleExcelTemplateUrl = '/RoleMembersLink/DownloadRoleMemberTemplate';\r\n\tprivate readonly UploadMemberRoleExcelTemplateUrl = '/RoleMembersLink/UploadRoleMemberTemplate';\r\n\tprivate readonly CheckRoleMemberWFAssignmentUrl = 'RoleMembersLink/CheckRoleMemberWFAssignment';\r\n\r\n\tconstructor(private restApiService: RestApiService, private commonService: CommonService, private encryptDecryptService: EncryptDecryptService, private http: HttpClient,) { }\r\n\r\n\t/**\r\n\t * Get project members list\r\n\t * @param projectId \r\n\t * @param groupId \r\n\t */\r\n\tgetMembersList(projectId: number, groupId: number) {\r\n\t\treturn this.restApiService.new_POST(this.membersListUrl, { projectId, groupId });\r\n\t}\r\n\r\n\t/**\r\n\t * Get already mapped Role Members\r\n\t * @param projectId \r\n\t * @param groupId \r\n\t */\r\n\tgetMappedRoleMembers(projectId: number, groupId: number) {\r\n\t\treturn this.restApiService.new_POST(this.mappedMemberRoleGetUrl, { projectId, groupId });\r\n\t}\r\n\r\n\t/**\r\n\t * Save mapped Members-Role\r\n\t * @param reqData \r\n\t */\r\n\tmapMemberRoles(reqData: RoleMemberPostModel) {\r\n\t\treturn this.restApiService.new_POST(this.memberRoleMapUrl, reqData);\r\n\t}\r\n\r\n\tCheckRoleMemberWFAssignment(reqData: RoleMemberPostModel) {\r\n\t\treturn this.restApiService.new_POST(this.CheckRoleMemberWFAssignmentUrl, reqData);\r\n\t}\r\n\r\n\t/**\r\n\t * Download project members list\r\n\t * @param projectId \r\n\t * @param groupId \r\n\t * @param dedDescription \r\n\t */\r\n\tGetMemberRoleExcelTemplate(projectId: number, groupId: number, dedDescription: string): Observable {\r\n\t\tlet _apiURL = environment.uriHost + this.DownloadMemberRoleExcelTemplateUrl;\r\n\t\tconst headers = {\r\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t\t'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n\t\t\t'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n\t\t}\r\n\t\treturn this.http.post(_apiURL, { projectId, groupId, dedDescription }, { 'headers': headers, responseType: 'blob' });\r\n\t}\r\n\r\n\t/**\r\n\t * \r\n\t * @param formData \r\n\t */\r\n\tpublic UploadMemberRoleExcelTemplate(formData: FormData): Observable {\r\n\t\tlet _apiURL = environment.uriHost + this.UploadMemberRoleExcelTemplateUrl;\r\n\t\tconst headers = {\r\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t\t'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n\t\t\t'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n\t\t}\r\n\t\treturn this.http.post(_apiURL, formData, { 'headers': headers });\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { IMemebersViewModel, IMemebersInputModel, IEipUserModel, IProjectMembersInputModel, IProjectMemberViewModel, IMemeberloginInputModel, IMemeberloginViewModel } from 'src/app/ViewModel/MembersModel';\r\n\r\nexport enum Criteria {\r\n at_least_eight_chars,\r\n at_least_one_lower_case_char,\r\n at_least_one_upper_case_char,\r\n at_least_one_digit_char,\r\n at_least_one_special_char,\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExternalMemberService {\r\n\r\n private getMemberDetailsListUrl = 'Member/GetMembersList';\r\n private insertUpdateMemberDetailsUrl = 'Member/InsertUpdateMemberDetails';\r\n private eipUserDetailsUrl = 'Member/GetEipUserDetails';\r\n private userUnlockUrl = 'Member/UnlockUserDetails';\r\n private getMembersListAgainstProject= 'Member/GetMembersListAgainstProject';\r\n private userWebLogin ='Member/GetEipWebLoginDetails';\r\n\r\n constructor(private restAPTService: RestApiService) { }\r\n\r\n\r\n /**\r\n * Get Members List API\r\n * @param member_Id 50\r\n * @param company_Code 50\r\n */\r\n public GetMembersList(member: IMemebersInputModel): Observable {\r\n return this.restAPTService.new_POST(this.getMemberDetailsListUrl, member);\r\n }\r\n\r\n public GetMembersListAgainstProject(member: IProjectMembersInputModel): Observable\r\n {\r\n return this.restAPTService.new_POST(this.getMembersListAgainstProject,member)\r\n }\r\n\r\n /**\r\n * Insert and Update Member Details\r\n * @param memberDetails \r\n */\r\n public InsertUpdateMemberDetails(memberDetails: IMemebersViewModel): Observable {\r\n\r\n return this.restAPTService.new_POST(this.insertUpdateMemberDetailsUrl, memberDetails);\r\n }\r\n\r\n public GetEipUserDetails(eipUserDetails: IEipUserModel): Observable {\r\n return this.restAPTService.new_POST(this.eipUserDetailsUrl, eipUserDetails)\r\n }\r\n\r\n public getCriteriaMap(criteriaMap: Map) {\r\n criteriaMap.set(Criteria.at_least_eight_chars, RegExp(/^.{8,25}$/));\r\n criteriaMap.set(Criteria.at_least_one_lower_case_char, RegExp(/^(?=.*?[a-z])/));\r\n criteriaMap.set(Criteria.at_least_one_upper_case_char, RegExp(/^(?=.*?[A-Z])/));\r\n criteriaMap.set(Criteria.at_least_one_digit_char, RegExp(/^(?=.*?[0-9])/));\r\n criteriaMap.set(Criteria.at_least_one_special_char, RegExp(/^(?=.*?[\" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\"])/));\r\n }\r\n\r\n public containAtLeastEightChars(val: string): boolean {\r\n return val.length >= 8;\r\n }\r\n\r\n public containsMixedChars(val: string, criteriaMap: Map): boolean {\r\n let x:any =criteriaMap.get(Criteria.at_least_one_lower_case_char);\r\n let y:any =criteriaMap.get(Criteria.at_least_one_upper_case_char)\r\n let z:any =criteriaMap.get(Criteria.at_least_one_digit_char)\r\n return x.test(val) &&y.test(val) &&z.test(val);\r\n }\r\n\r\n public containAtLeastOneSpecialChar(val: string, criteriaMap: Map): boolean {\r\n \r\n let x:any = criteriaMap\r\n .get(Criteria.at_least_one_special_char);\r\n return x?x.test(val):false;\r\n }\r\n public UnlockUserDetails(member_Id: any): Observable {\r\n let _objmember = {\r\n memberId: member_Id\r\n }\r\n return this.restAPTService.new_POST(this.userUnlockUrl, _objmember)\r\n }\r\n public GetwebLoginList(member: IMemeberloginInputModel): Observable {\r\n return this.restAPTService.new_POST(this.userWebLogin, member);\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { MatDialog ,MatDialogRef} from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { EIPMessageBoxComponent } from 'eipmessage-box';\r\nimport { EIPToastAlertComponent } from 'eiptoast-alert';\r\nimport { StandardOutputModel } from '../ViewModel/StandardOutputModel';\r\n\r\nconst regDialogBox: MatDialogRef[] = [];\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n\tpublic isDialogOpen: boolean = false;\r\n\r\n\tconstructor(private dialog: MatDialog, private _snackBar: MatSnackBar) { }\r\n\r\n\t/**\r\n\t * Show Popup Message box\r\n\t * @param message Message to show\r\n\t * @param messageType 'Success' | 'Warning' | 'Information' | 'Confirm' ( .then data => 'yes' || 'no')\r\n\t */\r\n\tshowPopup(message: string, messageType: 'Success' | 'Warning' | 'Information' | 'Confirm'):Promise {\r\n\t\tif (this.isDialogOpen) return new Promise((x)=>{});\r\n\r\n\t\tthis.isDialogOpen = true;\r\n\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst _message: string = message;\r\n\t\t\tconst _messageType: string = messageType;\r\n\t\t\tconst _dialog = this.dialog;\r\n\t\t\t//if (_dialog.open) \r\n\t\t\t{\r\n\t\t\t\tconst dialogRef = this.dialog.open(EIPMessageBoxComponent, {\r\n\t\t\t\t\tpanelClass: 'eip-messagebox-popup',\r\n\t\t\t\t\thasBackdrop: true, backdropClass: '',\r\n\t\t\t\t\tdisableClose: true,\r\n\t\t\t\t\tdata: { _message, _messageType }\r\n\t\t\t\t});\r\n\t\t\t\tdialogRef.afterClosed().subscribe((result: any) => {\r\n\t\t\t\t\tthis.isDialogOpen = false;\r\n\r\n\t\t\t\t\tif (result) {\r\n\t\t\t\t\t\tswitch (result) {\r\n\t\t\t\t\t\t\tcase 'ok': {\r\n\t\t\t\t\t\t\t\tresolve('yes');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcase 'cancel': {\r\n\t\t\t\t\t\t\t\tresolve('no');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Show Toast Message\r\n\t * @param _message Message to show\r\n\t * @param _messageType 'Success' | 'Warning' | 'Information' | 'Error'\r\n\t * @param durationInSecs Optional. 3 secs as default \r\n\t */\r\n\tshowToast(_message: string, _messageType: 'Success' | 'Warning' | 'Information' | 'Error', _durationInSecs?: number) {\r\n\t\tlet _panelClass = \"\";\r\n\r\n\t\tswitch (_messageType) {\r\n\t\t\tcase \"Success\":\r\n\t\t\t\t_panelClass = 'eip-toast-message-success';\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Warning\":\r\n\t\t\t\t_panelClass = 'eip-toast-message-warning';\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Error\":\r\n\t\t\t\t_panelClass = 'eip-toast-message-error';\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Information\":\r\n\t\t\t\t_panelClass = 'eip-toast-message-information';\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\t_panelClass = 'eip-toast-message-information';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tthis._snackBar.openFromComponent(EIPToastAlertComponent, {\r\n\t\t\tpanelClass: _panelClass,\r\n\t\t\t// duration: (_durationInSecs ? _durationInSecs : 3) * 1000,\r\n\t\t\tduration: 2000,\r\n\t\t\thorizontalPosition: 'right',\r\n\t\t\tverticalPosition: 'bottom',\r\n\t\t\tdata: { _message, _messageType }\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Common save API response handler\r\n\t */\r\n\thandleResponse(data: StandardOutputModel|any) {\r\n\t\tif (data['successCode'] == 200) {\r\n\t\t\tthis.showToast(data['successMessage'], 'Success');\r\n\t\t} else {\r\n\t\t\tthis.showToast(data['successMessage'], 'Warning');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Show Popup Message box\r\n\t * @param error Message to show and severity\r\n\t * @param okHandler Handler for Ok Event\r\n\t * @param cancelHandler Handler for Cancel Event\r\n\t */\r\n\tshowPopupMessageBox(error: { messageSeverity: any; messageText: any; }, okHandler?: { (): void; (): void; (): void; } | undefined, cancelHandler?: { (): void; (): void; (): void; } | undefined) {\r\n\t\tconst message: string = error.messageText;\r\n\t\tlet title: string;\r\n\t\tlet messageType: string;\r\n\t\tswitch (error.messageSeverity) {\r\n\t\t\tcase '0':\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle = 'Error';\r\n\t\t\t\t\tmessageType = 'Error';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tcase '1':\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle = 'Success';\r\n\t\t\t\t\tmessageType = 'Success';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tcase '2':\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle = 'Warning';\r\n\t\t\t\t\tmessageType = 'Warning';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tcase '3':\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle = 'Information';\r\n\t\t\t\t\tmessageType = 'Information';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tcase '4':\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle = 'Confirm';\r\n\t\t\t\t\tmessageType = 'Confirm';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tdefault:\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle = 'Error';\r\n\t\t\t\t\tmessageType = 'Error';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\tconst dialog = this.dialog;\r\n\t\tif (dialog.open) {\r\n\t\t\tlet dialogRef;\r\n\t\t\tfor (const x of regDialogBox) {\r\n\t\t\t\tx.close();\r\n\t\t\t\tregDialogBox.shift();\r\n\t\t\t}\r\n\r\n\t\t\tdialogRef = dialog.open(EIPMessageBoxComponent, {\r\n\t\t\t\tpanelClass: 'eip-messagebox-popup',\r\n\t\t\t\tdisableClose: true,\r\n\t\t\t\tdata: { _title: title, _message: message, _messageType: messageType }\r\n\t\t\t});\r\n\t\t\tregDialogBox.unshift(dialogRef);\r\n\t\t\tdialogRef.afterClosed().subscribe((result: any) => {\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tswitch (result) {\r\n\t\t\t\t\t\tcase 'ok': {\r\n\t\t\t\t\t\t\tokHandler();\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcase 'cancel': {\r\n\t\t\t\t\t\t\tcancelHandler();\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IOrganizationViewModel } from 'src/app/ViewModel/OrganizationModel';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable()\r\nexport class OrganizationService {\r\n private getOrganizationListUrl = 'Organization/GetOrganizationList';\r\n private insertUpdateOrgUrl = 'Organization/InsertUpdateOrganizationList';\r\n\r\n constructor(private restAPIService: RestApiService) { }\r\n\r\n /**\r\n * Get org API\r\n * @param groupId 50\r\n */\r\n public getOrganizationList(groupId?: number) : Observable {\r\n let reqData = {\r\n 'groupId': groupId,\r\n };\r\n return this.restAPIService.new_POST(this.getOrganizationListUrl, reqData);\r\n }\r\n\r\n /**\r\n * Insert and Update Organization Details\r\n * @param organization \r\n */\r\n public insertUpdateOrganization(organization : IOrganizationViewModel):Observable{\r\n return this.restAPIService.new_POST(this.insertUpdateOrgUrl,organization);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IApproveInputModel } from 'src/app/ViewModel/PeerReviewModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { PeerRequestInput, DocViewInput } from 'src/app/ViewModel/PeerReviewModel';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PeerReviewService {\r\n\r\n private getReviewList = 'PeerReview/GetPeerReviewList';\r\n private getApprovePeerReviewList = 'PeerReview/GetApprovePeerReviewList';\r\n private postApprovePeerReviewList = 'PeerReview/PostApprovePeerReviewList';\r\n\r\n private getReason = \"DEDED/GetDEDForPeerResponse\";\r\n private getImpactStatus = \"DEDED/GetDEDImpactStatus\";\r\n private getCommentDropdowns = \"DEDED/GetDEDForPeerComments\";\r\n private getStatus = \"PeerReview/GetPeerReviewDetails\";\r\n private postStatus = \"PeerReview/UpdatePeerReviewStatus\";\r\n private editStatus = \"PeerReview/GetPeerReviewEditInvite\";\r\n private getComments = \"PeerReview/GetPeerReviewComments\";\r\n private postComments = \"PeerReview/PostPeerReviewComments\";\r\n private getResponse = \"PeerReview/GetPeerReviewResponseDetails\";\r\n private postResponse = \"PeerReview/PostPeerReviewResponse\";\r\n private getImpacts = \"PeerReview/GetPeerReviewImpactsDetails\";\r\n private getImpactsTypes = \"PeerReview/GetPeerReviewImpactsTypes\";\r\n private postImpacts = \"PeerReview/PostPeerReviewImpacts\";\r\n private postCreateReq = \"PeerReview/PostPeerReviewCreate\";\r\n private getpeerDocview = \"PeerReview/GetPeerDocView\";\r\n private getpeerDocflow = \"PeerReview/GetPeerDocFlow\"\r\n private getpresenter = \"PeerReview/GetPresenterView\";\r\n private getpanel = \"PeerReview/GetPanel\";\r\n private getcri = \"PeerReview/GetCRI\";\r\n\r\n\r\n private GetPRInvitationMasterData = \"PeerReview/GetPRInvitationMasterData\";\r\n private GetEcdMem = \"PeerReview/GetECDMembers\";\r\n private GetPRInvitationRoleMasterData = \"PeerReview/GetPRInvitationRoleMasterData\";\r\n private GetPeerStatus = \"PeerReview/GetPeerStatus\";\r\n private GetPRInvitationDisciplineMasterData = \"PeerReview/GetPRInvitationDisciplineMasterData\";\r\n PostPRInvitationMembers = \"PeerReview/PostPRInvitationMembers\";\r\n GetPRInvitationMembers = \"PeerReview/GetPRInvitationMembers\";\r\n private getPRdashboard = \"PeerReview/GetPeerReviewDashboard\";\r\n private updateReviewCheckList = 'PeerReview/UpdateCheckListId';\r\n\r\n constructor(private restAPIService: RestApiService, private commonService: CommonService) { }\r\n\r\n public GetApproveReviewDetails(project_Id: number): Observable {\r\n let _obj = {\r\n project_Id: project_Id\r\n }\r\n return this.restAPIService.new_POST(this.getApprovePeerReviewList, _obj)\r\n }\r\n\r\n public PostApproveReviewDetails(input: IApproveInputModel) {\r\n return this.restAPIService.new_POST(this.postApprovePeerReviewList, input);\r\n }\r\n\r\n public GetReviewList(input: any): Observable {\r\n\r\n return this.restAPIService.new_POST(this.getReviewList, input)\r\n }\r\n\r\n getReasonData(): Observable {\r\n let obj = {\r\n \"intDEID\": 507,\r\n \"intUID\": this.commonService.getLoggedInUserId()\r\n }\r\n return this.restAPIService.new_POST(this.getReason, obj);\r\n }\r\n\r\n getimpactStatus(): Observable {\r\n let obj = {\r\n \"intProjectID\": this.commonService.getProjectId(),\r\n \"intGroupID\": this.commonService.getLoggedInUserGroupId(),\r\n \"intUID\": this.commonService.getLoggedInUserId()\r\n }\r\n return this.restAPIService.new_POST(this.getImpactStatus, obj);\r\n }\r\n\r\n getCommentData(obj1: any): Observable {\r\n let obj:any;\r\n if(this.commonService.redirectUserToPRAddComments)\r\n {\r\n obj = {\r\n \"intProjectID\": this.commonService.redirectUserToPRAddComments_Projectid,\r\n \"intGroupID\": this.commonService.redirectUserToPRAddComments_GrpID,\r\n \"strDocNo\": obj1,\r\n \"intUID\": this.commonService.getLoggedInUserId()\r\n }\r\n }\r\n else\r\n {\r\n obj = {\r\n \"intProjectID\": this.commonService.getProjectId(),\r\n \"intGroupID\": this.commonService.getLoggedInUserGroupId(),\r\n \"strDocNo\": obj1,\r\n \"intUID\": this.commonService.getLoggedInUserId()\r\n }\r\n }\r\n return this.restAPIService.new_POST(this.getCommentDropdowns, obj);\r\n }\r\n\r\n getReviewStatus(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.getStatus, obj);\r\n }\r\n \r\n\r\n postReviewStatus(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.postStatus, obj);\r\n }\r\n\r\n GetPeerReviewEditInvite(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.editStatus, obj);\r\n }\r\n\r\n getReviewComments(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.getComments, obj);\r\n }\r\n\r\n postReviewComments(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.postComments, obj);\r\n }\r\n\r\n getReviewResponse(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.getResponse, obj);\r\n }\r\n\r\n postReviewResponse(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.postResponse, obj);\r\n }\r\n\r\n getPRInvitationMasterData(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.GetPRInvitationMasterData, obj);\r\n }\r\n\r\n getECDMembers(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.GetEcdMem, obj);\r\n }\r\n\r\n getPeerStatus(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.GetPeerStatus, obj);\r\n }\r\n\r\n getPRInvitationRoleMasterData(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.GetPRInvitationRoleMasterData, obj);\r\n }\r\n\r\n getPRInvitationDisciplineMasterData(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.GetPRInvitationDisciplineMasterData, obj);\r\n }\r\n\r\n postPRInvitationMembers(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.PostPRInvitationMembers, obj);\r\n }\r\n\r\n getReviewImpacts(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.getImpacts, obj);\r\n }\r\n getPeerImpactsTypes(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.getImpactsTypes, obj);\r\n }\r\n postReviewImpacts(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.postImpacts, obj);\r\n }\r\n postpeerRequest(create: PeerRequestInput) {\r\n return this.restAPIService.new_POST(this.postCreateReq, create);\r\n }\r\n getPRInvitationMembers(obj: any): Observable {\r\n return this.restAPIService.new_POST(this.GetPRInvitationMembers, obj);\r\n }\r\n getPeerDocView(datainput: DocViewInput)\r\n {\r\n return this.restAPIService.new_POST(this.getpeerDocview,datainput);\r\n }\r\n getPeerDocFlow(datainput: DocViewInput)\r\n {\r\n return this.restAPIService.new_POST(this.getpeerDocflow,datainput);\r\n }\r\n getPeerPresenter(datainput: DocViewInput)\r\n {\r\n return this.restAPIService.new_POST(this.getpresenter,datainput);\r\n }\r\n getPeerPanelMembers(datainput: DocViewInput)\r\n {\r\n return this.restAPIService.new_POST(this.getpanel,datainput);\r\n }\r\n getPeerCRI(datainput: DocViewInput)\r\n {\r\n return this.restAPIService.new_POST(this.getcri,datainput);\r\n }\r\n\r\n getPRDashboard(obj: any)\r\n {\r\n return this.restAPIService.new_POST(this.getPRdashboard,obj);\r\n }\r\n\r\n UpdateReviewChecklist(obj:any)\r\n {\r\n return this.restAPIService.new_POST(this.updateReviewCheckList,obj);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { IProjectElementDetailsInput, IProjectElementsInput, PeerProjectInput, PeerAllElementInput, PeerElementInput, IProjectFeatureInput, IProjectMemberByRoleInput, IProjectMemberByRolesInput } from 'src/app/ViewModel/ProjectElementsModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { ElementDetailsCacheService } from '../element-details.data.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n// import { RestAPIService } from '../rest-api.service';\r\n\r\n\r\n@Injectable()\r\nexport class ProjectInfoService {\r\n\r\n endPoints = {\r\n getProjectUrl: 'Project/GetProjects',\r\n getProjectDetailsUrl: 'Project/GetProjectDetails',\r\n getProjectElements: 'Project/GetProjectElements',\r\n getProjectElementDetails: 'DEDED/GetDEDAgainstDE',\r\n getPeerAllElementDetails: 'DEDED/GetAllDEDForPeer',\r\n getPeerProjectDetails: 'DEDED/GetPeerProjectDetails',\r\n getProjectFeatureWiseMembers: 'Project/GetProjectFeatureWiseMembers',\r\n getProjectElementDetailsByDescription: 'Project/GetProjectElementDetailsByDescription',\r\n getProjectElementIdByDescription: 'Project/GetProjectElementIdByDescription',\r\n getProjectRoleMembers: 'Project/GetProjectMembersByRole',\r\n getProjectMemberRoles:'Project/GetProjectsMembersByRoles'\r\n }\r\n\r\n constructor(private restApiService: RestApiService, private commonService: CommonService, private _elementDetailsCacheService: ElementDetailsCacheService) { }\r\n\r\n /**\r\n * Get project list by Logged in user id\r\n * @param userId\r\n */\r\n getProjectList(userId: number) {\r\n let reqData:any = {\r\n \"projectId\": null,\r\n \"userId\": userId,\r\n }\r\n return this.restApiService.new_POST(this.endPoints.getProjectUrl, reqData);\r\n }\r\n\r\n /**\r\n * Get Project Details By Project Code\r\n * @param projectId\r\n * @param userId\r\n */\r\n getProjectDetails(projectId: number, userId: number) {\r\n let reqData = {\r\n projectId, userId\r\n }\r\n return this.restApiService.new_POST(this.endPoints.getProjectDetailsUrl, reqData);\r\n \r\n }\r\n\r\n /**\r\n * Get project elements with respective to Project Id, Group Id & Module ID\r\n * @param projEleInput ProjectElementInput\r\n * @returns\r\n */\r\n getProjectElements(projEleInput: IProjectElementsInput) {\r\n return this.restApiService.new_POST(this.endPoints.getProjectElements, projEleInput);\r\n }\r\n\r\n /**\r\n * Get project element details with respective to Project Id, Group Id , Module ID & DE Id\r\n * @param projEleInput ProjectElementInput\r\n * @returns\r\n */\r\n getProjectElementDetails(projEleDtlInput: IProjectElementDetailsInput) {\r\n let key: string = projEleDtlInput.moduleId + \"_\" + projEleDtlInput.deDescription;\r\n if (this._elementDetailsCacheService.hasElementDetails(key))\r\n return this._elementDetailsCacheService.getElementDetails(key);\r\n else\r\n return this.restApiService.new_POST(this.endPoints.getProjectElementDetails, projEleDtlInput).pipe(map(res => {\r\n this._elementDetailsCacheService.mapElementDetails(key, res)\r\n return res;\r\n }));\r\n }\r\n\r\n getAllPeerElements(peerallinput: PeerAllElementInput) {\r\n return this.restApiService.new_POST(this.endPoints.getPeerAllElementDetails, peerallinput);\r\n }\r\n\r\n getPeerProjectDetails(peerPrjInput: PeerProjectInput) {\r\n return this.restApiService.new_POST(this.endPoints.getPeerProjectDetails, peerPrjInput);\r\n }\r\n\r\n getProjectElementCascadingDetails(projEleDtlInput: IProjectElementDetailsInput) {\r\n return this.restApiService.new_POST(this.endPoints.getProjectElementDetails, projEleDtlInput).pipe(map(res => {\r\n return res;\r\n }));\r\n }\r\n\r\n /**\r\n* Get project Feature wise Members with respective to Project Id, Group Id , Feature Description\r\n* @param projFeatureInput ProjectElementInput\r\n* @returns\r\n*/\r\n getProjectFeatureWiseMembers(projFeatureInput: IProjectFeatureInput) {\r\n\r\n return this.restApiService.new_POST(this.endPoints.getProjectFeatureWiseMembers, projFeatureInput);\r\n }\r\n\r\n /**\r\n * Get element ID by Element Name\r\n * @param elementName\r\n * @returns\r\n */\r\n getProjectElementIdByDescription(elementName: string) {\r\n return this.restApiService.new_POST(this.endPoints.getProjectElementIdByDescription, { elementDescription: elementName });\r\n }\r\n\r\n getProjectMembersByRole(reqData: IProjectMemberByRoleInput) {\r\n return this.restApiService.new_POST(this.endPoints.getProjectRoleMembers, reqData);\r\n }\r\n\r\n\r\n getProjectMembersByRoles(reqData: IProjectMemberByRolesInput){\r\n return this.restApiService.new_POST(this.endPoints.getProjectMemberRoles,reqData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BusinessGroupModel } from 'src/app/ViewModel/BusinessGroupModel';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ProjectMemberLinkService {\r\n\r\n\tprivate projectBusinessGroupUrl = 'Organization/GetOrganizationAgainstProject';\r\n\tprivate selectedMemberListUrl = 'ProjectMembersLink/GetMembersAgainstProjectBusinessGroup';\r\n\tprivate postProjectMemberLinkUrl = 'ProjectMembersLink/PostProjectMembertDetails';\r\n\r\n\tconstructor(public restApiService: RestApiService,) { }\r\n\r\n\tgetProjectBusinessGroup(projectId: number): Observable {\r\n\t\treturn this.restApiService.new_POST(this.projectBusinessGroupUrl, { projectId });\r\n\t}\r\n\r\n\tgetSelectedMemberList(projectId: number, groupId: number | null | string) {\r\n\t\treturn this.restApiService.new_POST(this.selectedMemberListUrl, { projectId, groupId });\r\n\t}\r\n\r\n\tpostProjectMemberLink(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.postProjectMemberLinkUrl, reqData);\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IEipJobsRequestModel, IProjectMasterViewModel, IEdrcJobsRequestModel, IEnableSimilarProjectViewModel } from 'src/app/ViewModel/ProjectMasterModel';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ProjectMasterService {\r\n\r\n private endPoints = {\r\n projectsList: 'ProjectMaster/GetProjectDetails',\r\n insertUpdateProject: 'ProjectMaster/InsertUpdateProjectDetails',\r\n InsertUpdateEnableSimilarProject :'ProjectMaster/InsertUpdateEnableSimilarProject',\r\n eipJobs:'ProjectMaster/GetEIPJobListDetails',\r\n edrcJobs:'ProjectMaster/GetEDRCJobDetails'\r\n\r\n }\r\n\r\n constructor(private restAPIService: RestApiService) { }\r\n\r\n /**\r\n * Get project details API\r\n * @param project_Id 50\r\n */\r\n public getProjects(project_Id?: number, Member_Id?: number): Observable {\r\n let reqData = {\r\n 'project_Id': project_Id,\r\n 'Member_Id': Member_Id\r\n };\r\n return this.restAPIService.new_POST(this.endPoints.projectsList, reqData);\r\n }\r\n\r\n public insertUpdateProject(project: IProjectMasterViewModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateProject, project);\r\n }\r\n\r\n public getEipjobList(eipReq:IEipJobsRequestModel){\r\n return this.restAPIService.new_POST(this.endPoints.eipJobs, eipReq);\r\n }\r\n\r\n public getEDRCjobList(eipReq:IEdrcJobsRequestModel){\r\n return this.restAPIService.new_POST(this.endPoints.edrcJobs, eipReq);\r\n }\r\n public InsertUpdateEnableSimilarProject(project: IEnableSimilarProjectViewModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.InsertUpdateEnableSimilarProject, project);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { Observable } from \"rxjs\";\r\nimport { IMarkNotificationAsReadModel } from \"src/app/ViewModel/PushNotificationModel\";\r\nimport { CommonService } from \"../Common.service\";\r\nimport { RestApiService } from \"../rest-api.service\"\r\n\r\n\r\n@Injectable({ providedIn: \"root\" })\r\n\r\nexport class PushNotificationService {\r\n private endPoints = {\r\n getPushNotificationList: 'PushNotification/GetNotifications',\r\n markAsRead: 'PushNotification/MarkAsRead'\r\n }\r\n\r\n constructor(private restAPIService: RestApiService, private _commonService: CommonService) {\r\n\r\n }\r\n\r\n public getPushNotificationList(): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getPushNotificationList, { UserId: this._commonService.getLoggedInUserId() });\r\n }\r\n\r\n public markAsReadNotification(reqModel: IMarkNotificationAsReadModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.markAsRead, reqModel);\r\n }\r\n\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RestApiService {\r\n\r\n private baseUrl = environment.uriHost;\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n new_POST(url: string, body: any) : Observable {\r\n return this.http.post(`${this.baseUrl}/${url}`, body);\r\n }\r\n\r\n new_GET(url: string, id?: string | number) : Observable {\r\n let apiUrl = id ? `${this.baseUrl}/${url}/${id}` : `${this.baseUrl}/${url}`;\r\n return this.http.get(apiUrl);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IDeleteDocSetModel, IDeleteSchDefModel, IDocSetModel, IDocsetReviseInputModel, IDocSetRevisionDetailsInputModel, IPorjectInputModel, IScheduleDefinitionModel } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { RestApiService } from \"../rest-api.service\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from '../Common.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EncryptDecryptService } from '../encrypt-decrypt.service';\r\n@Injectable()\r\nexport class ScheduleDefinitionService {\r\n private endPoints = {\r\n scheduleDefList: 'ScheduleDefinition/GetScheduleDefinitionDetails',\r\n insertUpdateSchDef: 'ScheduleDefinition/InsertUpdateScheduleDefinitionDetails',\r\n docSetList: 'ScheduleDefinition/GetDocumentSetDetails',\r\n docSetListByGroup: 'ScheduleDefinition/GetDocSetDetailsByGroup',\r\n insertUpdateDocSet: 'ScheduleDefinition/InsertUpdateDocumentSetDetails',\r\n deleteDocSet:'ScheduleDefinition/DeleteDocSet',\r\n deleteSchDef:'ScheduleDefinition/DeleteSchDef',\r\n docSetExcelTemplate: '/ScheduleDefinition/DownloadDocSetTemplate',\r\n docSetExcelUpload: '/ScheduleDefinition/UploadDocSetTemplate',\r\n schDefExcelTemplate: '/ScheduleDefinition/DownloadSchDefTemplate',\r\n schDefExcelUpload: '/ScheduleDefinition/UploadSchDefTemplate',\r\n engSchExcelTemplate: '/ScheduleDefinition/DownloadEngSchTemplate',\r\n engSchExcelUpload: '/ScheduleDefinition/UploadEngSchTemplate',\r\n docsetRevise : 'ScheduleDefinition/InsertDCIScheduleRevDetails',\r\n updateDocsetRevis : 'ScheduleDefinition/UpdateDCIScheduleRevisedDocDetails'\r\n }\r\n\r\n constructor(private encryptDecryptService: EncryptDecryptService, private restAPIService: RestApiService, private commonService: CommonService, private http: HttpClient) { }\r\n\r\n /**\r\n * Get Schedule Defintion Detail\r\n * @param project_Id 50\r\n */\r\n public getScheduleDefintionList(input: IPorjectInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.scheduleDefList, input);\r\n }\r\n\r\n /**\r\n * Insert/Update Schedule definition\r\n * @param scheduleDef \r\n * @returns \r\n */\r\n public insertUpdateSchDef(scheduleDef: IScheduleDefinitionModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateSchDef, scheduleDef);\r\n }\r\n\r\n /**\r\n * Get Schedule Defintion Detail\r\n * @param project_Id 50\r\n */\r\n public getDocSetList(input: IPorjectInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.docSetList, input);\r\n }\r\n\r\n public getDocSetListByGroup(input: IPorjectInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.docSetListByGroup, input);\r\n }\r\n\r\n /**\r\n * Insert/Update Doc Set\r\n * @param docSet DocSet\r\n * @returns \r\n */\r\n public insertUpdateDocSet(docSet: IDocSetModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateDocSet, docSet);\r\n }\r\n\r\n public deleteDocSet(deleteDocSet : IDeleteDocSetModel):Observable{\r\n return this.restAPIService.new_POST(this.endPoints.deleteDocSet,deleteDocSet);\r\n }\r\n\r\n public deleteSchDef(deleteSchDef:IDeleteSchDefModel):Observable{\r\n return this.restAPIService.new_POST(this.endPoints.deleteSchDef,deleteSchDef);\r\n }\r\n\r\n public insertDocsetRevise(docsetRevise : IDocsetReviseInputModel):Observable{\r\n return this.restAPIService.new_POST(this.endPoints.docsetRevise,docsetRevise)\r\n }\r\n\r\n public updateDCIScheduleRevisedDocDetails(updateDocsetRevise: IDocSetRevisionDetailsInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.updateDocsetRevis, updateDocsetRevise)\r\n }\r\n\r\n public GetDocSetExcelTemplate(dciExcelInput: IPorjectInputModel): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.docSetExcelTemplate;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, dciExcelInput, { 'headers': headers, responseType: 'blob' });\r\n }\r\n\r\n public UploadDocSetExcelTemplate(formData: FormData): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.docSetExcelUpload;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, formData, { 'headers': headers });\r\n }\r\n\r\n public GetSchDefExcelTemplate(dciExcelInput: IPorjectInputModel): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.schDefExcelTemplate;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, dciExcelInput, { 'headers': headers, responseType: 'blob' });\r\n }\r\n\r\n public UploadSchDefEExcelTemplate(formData: FormData): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.schDefExcelUpload;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, formData, { 'headers': headers });\r\n }\r\n\r\n public GetEngSchExcelTemplate(dciExcelInput: IPorjectInputModel): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.engSchExcelTemplate;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, dciExcelInput, { 'headers': headers, responseType: 'blob' });\r\n }\r\n\r\n public UploadEngSchExcelTemplate(formData: FormData): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.engSchExcelUpload;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, formData, { 'headers': headers });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IDciViewInputModel } from \"src/app/ViewModel/DCIViewModels\";\r\nimport { IDocSLNoInputModel } from \"src/app/ViewModel/DocumentModel\";\r\nimport { IPorjectInputModel, IScheduleElementDetails, IDCIDocumentOutputModel, GetSDListforGrid } from \"src/app/ViewModel/ScheduleDefinitionModel\";\r\nimport { IScheduleDocDetails, IScheduleDocModel, IScheduleDocRevModel, IScheduleDocStageDetails, IScheduleMHDetails, IScheduleWFPlanDetails, IScheduleWorkflowDetails, IScheduleDocApprovalDetails, SDLinkModel, IScheduleBulkInsertModel, DCIToStartWorkflow_Input, WFTransmittalInputModel, IDciWFStageDetails, IDCISupersedeRevDetailsModel, IDCIPostWorkflowSupersedeModel, IScheduleDateUpdateDetails, IDCISupersedeRevInputModel, IDCISupersedeRevWFInputModel, IDeleteWorkflowInputModel, IWBSInputModel, IDeliverableInputModel, IWBSOutputModel, ICPCInputModel, ISDInputModel, ISDOutputModel, IDCIPostBulkSupersedeModel } from \"src/app/ViewModel/ScheduleDocumentModel\";\r\nimport { RestApiService } from \"../rest-api.service\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from '../Common.service';\r\nimport { EncryptDecryptService } from '../encrypt-decrypt.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScheduleDocumentService {\r\n private endPoints = {\r\n getDciSerialNo: 'DCIDocument/GetDCIDocSerialNo',\r\n insertBulkSchDoc: 'DCIDocument/InsertBulkDciDocument',\r\n insertBulkISODCIDoc: 'DCIDocument/InsertISOBulkDCIDocuments',\r\n insertUpdateScheduleDoc: 'DCIDocument/InsertUpdateDCIDocument',\r\n insertUpdateScheduleDocEleDetails: 'DCIDocument/InsertUpdateDCIDocumentElementDetails',\r\n insertUpdateScheduleRev: 'DCIDocument/InsertUpdateDCIDocumentRevision',\r\n insertUpdateSchWFPlanDetails: 'DCIDocument/InsertUpdateDCIDocumentScheduleWFPlanDetails',\r\n insertUpdateSchDocStageDetails: 'DCIDocument/InsertUpdateDCIDocumentScheduleStageDetails',\r\n insertUpdateMHDetails: 'DCIDocument/InsertUpdateDCIDocumentScheduleMHDetails',\r\n insertUpdateSchDetails: 'DCIDocument/InsertUpdateDCIDocumentScheduleDetails',\r\n insertUpdateSchWorkflowDetails: 'DCIDocument/InsertUpdateDCIDocumentScheduleWorkflowDetails',\r\n getScheduleDocList: 'DCIDocument/GetDCIDocumentListDetails',\r\n getStdDciListForGrid: 'DCIDocument/GetStdDciListForGrid',\r\n insertUpdateSchApprovalDetails: 'DCIDocument/InsertUpdateDCIDocumentScheduleApprovalDetails',\r\n getDciDocumentViewDetails: \"DCIDocument/GetDCIDocumentViewDetails\",\r\n getDciExcelTemplate: \"/DCIDocument/DownloadDCITemplate\",\r\n uploadDciExcelTemplate: \"/DCIDocument/UploadDCITemplate\",\r\n fetchISODCIDetails: \"/DCIDocument/FetchISODCIDetails\",\r\n getWorkflowList: \"WorkflowTemplate/GetWorkflowTemplateList\",\r\n getStartWorkflowDetails: \"WorkflowTransaction/GetStartWorkflowDetails\",\r\n postStartWorkflowDetails: \"WorkflowTransaction/PostStartWorkflowDetails\",\r\n getworkflowhistory: \"WorkflowTransaction/GetWorkflowHistoryList\",\r\n getWorkflowPendingDocuments: \"DCIDocument/GetDCIWorkflowPendingDocuments\",\r\n getWorkflowTransmittalStatus: \"DCIDocument/GetDCIWorkflowTransmittalStatus\",\r\n postWorkflowSupersede: \"WorkflowTransaction/PostWorkflowSupersede\",\r\n postsupersedeStdDraw: \"WorkflowTransaction/PostStdDrawSupersede\",\r\n getWorkflowStageDetails: \"DCIDocument/GetWorkflowStageDetails\",\r\n updateSupersedeRevDetails: \"DCIDocument/UpdateDCISupersedeRevDetails\",\r\n getSupersedeRevDetails: \"DCIDocument/GetDCISupersedeRevDetails\",\r\n updateSupersedeRevWFDetails: \"DCIDocument/UpdateDCISupersedeRevWorkflowDetails\",\r\n updateScheduleDateToDocuments: 'DCIDocument/UpdateScheduleDateToDocuments',\r\n DeleteWorkflowstep: 'RepositoryDocuments/DeleteWorkflowstep',\r\n getWBSCodes: \"DCIDocument/GetWBSCodes\",\r\n getDeliverableCodes: \"DCIDocument/GetDeliverableCodes\",\r\n insertCPCDocDetails: \"DCIDocument/InsertCPCDocDetails\",\r\n getStandardDrawings: \"DCIDocument/GetStandardDrawings\",\r\n insertStdDwgDocument: 'DCIDocument/InsertStdDwgDocument',\r\n linkStdDciDoc: 'DCIDocument/LinkStdDciDoc',\r\n getSDDocList: 'DCIDocument/GetDCISDDocumentListDetails',\r\n PostBulkDCISupersede: 'WorkflowTransaction/PostBulkDCISupersede'\r\n\r\n }\r\n constructor(private encryptDecryptService: EncryptDecryptService, private restAPIService: RestApiService, private http: HttpClient, private commonService: CommonService) { }\r\n\r\n /**\r\n * Generate Serial No based on DCI Document Element Details\r\n * @param DocSLNo\r\n */\r\n public GetDocSerialNo(docInputModel: IDocSLNoInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getDciSerialNo, docInputModel);\r\n }\r\n\r\n public InsertScheduleBulkDocument(schBulkDoc: IScheduleBulkInsertModel) {\r\n return this.restAPIService.new_POST(this.endPoints.insertBulkSchDoc, schBulkDoc);\r\n }\r\n\r\n public InsertUpdateScheduleDocument(schDocInput: IScheduleDocModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateScheduleDoc, schDocInput);\r\n }\r\n\r\n public InsertUpdateDCIDocumentElementDetails(schDocElementDetails: IScheduleElementDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateScheduleDocEleDetails, schDocElementDetails);\r\n }\r\n\r\n public InsertUpdateDCIRevision(scheduleDocRevision: IScheduleDocRevModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateScheduleRev, scheduleDocRevision);\r\n }\r\n\r\n public InsertUpdateScheduleWFPlanDetails(scheduleDocWFPlandetails: IScheduleWFPlanDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateSchWFPlanDetails, scheduleDocWFPlandetails)\r\n }\r\n\r\n public InsertUpdateScheduleDocStageDetails(scheduleDocStageDetails: IScheduleDocStageDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateSchDocStageDetails, scheduleDocStageDetails)\r\n }\r\n\r\n public InsertUpdateScheduleMHDetails(scheduleDocMHDetails: IScheduleMHDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateMHDetails, scheduleDocMHDetails)\r\n }\r\n\r\n public InsertUpdateScheduleDetails(scheduleDocDetails: IScheduleDocDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateSchDetails, scheduleDocDetails)\r\n }\r\n\r\n public InsertUpdateScheduleWorkflowDetails(scheduleWorkflowDetails: IScheduleWorkflowDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateSchWorkflowDetails, scheduleWorkflowDetails)\r\n }\r\n\r\n public GetScheduleDocList(input: IPorjectInputModel): Observable {\r\n input.requestedBy = this.commonService.getLoggedInUserId();\r\n return this.restAPIService.new_POST(this.endPoints.getScheduleDocList, input)\r\n }\r\n\r\n public GetStdDciListForGrid(getSDinput: GetSDListforGrid): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getStdDciListForGrid, getSDinput)\r\n }\r\n\r\n public InsertUpdateScheduleApprovalDetails(scheduleApprovalDetails: IScheduleDocApprovalDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateSchApprovalDetails, scheduleApprovalDetails)\r\n }\r\n\r\n public GetDCIDocumentViewDetails(dciViewInput: IDciViewInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getDciDocumentViewDetails, dciViewInput);\r\n }\r\n\r\n public GetDCIExcelTemplate(dciExcelInput: IPorjectInputModel): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.getDciExcelTemplate;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, dciExcelInput, { 'headers': headers, responseType: 'blob' });\r\n }\r\n\r\n public UploadDCIExcelTemplate(formData: FormData): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.uploadDciExcelTemplate;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, formData, { 'headers': headers });\r\n }\r\n\r\n public GetWorkflowList(): Observable {\r\n let reqData = {\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId()\r\n }\r\n return this.restAPIService.new_POST(this.endPoints.getWorkflowList, reqData);\r\n }\r\n\r\n public GetStartWorkflowDetails(DCIWFMapping: any): Observable {\r\n let reqData = {\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId(),\r\n workflowId: DCIWFMapping.filter((y: { workflowId: number; }) => y.workflowId != 0)[0][\"workflowId\"],\r\n startWFInputModel: DCIWFMapping\r\n }\r\n return this.restAPIService.new_POST(this.endPoints.getStartWorkflowDetails, reqData);\r\n }\r\n\r\n public PostStartWorkflowDetails(DCIWFMapping: any, memberInput: any): Observable {\r\n let reqData = {\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId(),\r\n workflowId: DCIWFMapping.filter((y: { workflowId: number; }) => y.workflowId != 0)[0][\"workflowId\"],\r\n startWFSaveInputModel: memberInput,\r\n createdBy: this.commonService.getLoggedInUserId()\r\n }\r\n return this.restAPIService.new_POST(this.endPoints.postStartWorkflowDetails, reqData);\r\n }\r\n\r\n public getWorkflowHistory(docId: number,taskID?: number): Observable {\r\n let reqData = {\r\n documentId: docId,\r\n taskId:taskID,\r\n projectId: this.commonService.getProjectId(),\r\n groupId: this.commonService.getLoggedInUserGroupId()\r\n }\r\n return this.restAPIService.new_POST(this.endPoints.getworkflowhistory, reqData);\r\n }\r\n\r\n public PostWorkflowSupersede(dciPostWorkflowSupersede: IDCIPostWorkflowSupersedeModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.postWorkflowSupersede, dciPostWorkflowSupersede);\r\n }\r\n\r\n public PostSupersedeStdDraw(obj:any):Observable {\r\n return this.restAPIService.new_POST(this.endPoints.postsupersedeStdDraw, obj);\r\n }\r\n\r\n public PostBulkDCISupersede(DCIPostBulkSupersedeModel: IDCIPostBulkSupersedeModel[]): Observable {\r\n\r\n let reqData = {\r\n UserId: this.commonService.getLoggedInUserId(),\r\n jsonFinalBulkDCISupersedeDetails: DCIPostBulkSupersedeModel\r\n }\r\n return this.restAPIService.new_POST(this.endPoints.PostBulkDCISupersede, reqData);\r\n }\r\n\r\n public GetWorkflowPendingDocuments(input: IPorjectInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getWorkflowPendingDocuments, input)\r\n }\r\n\r\n public GetWorkflowTransmittalStatus(input: WFTransmittalInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getWorkflowTransmittalStatus, input)\r\n }\r\n\r\n public GetWorkflowStageDetails(input: IDciWFStageDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getWorkflowStageDetails, input);\r\n }\r\n\r\n public UpdateSupersedeRevisionDetails(input: IDCISupersedeRevDetailsModel) {\r\n return this.restAPIService.new_POST(this.endPoints.updateSupersedeRevDetails, input)\r\n }\r\n\r\n public GetSupersedeRevisionDetails(input: IDCISupersedeRevInputModel) {\r\n return this.restAPIService.new_POST(this.endPoints.getSupersedeRevDetails, input)\r\n }\r\n\r\n public UpdateSupersedeRevisionWFDetails(input: IDCISupersedeRevWFInputModel) {\r\n return this.restAPIService.new_POST(this.endPoints.updateSupersedeRevWFDetails, input)\r\n }\r\n\r\n public UpdateScheduleDateToDocuments(scheduleDateUpdate: IScheduleDateUpdateDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.updateScheduleDateToDocuments, scheduleDateUpdate)\r\n }\r\n public DeleteOrUpdateWorkflow(Input: IDeleteWorkflowInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.DeleteWorkflowstep, Input)\r\n }\r\n\r\n public GetWBSCodes(input: IWBSInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getWBSCodes, input);\r\n }\r\n\r\n public GetDeliverableCodes(input: IDeliverableInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getDeliverableCodes, input);\r\n }\r\n\r\n public InsertCPCDocDetails(input: ICPCInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertCPCDocDetails, input);\r\n }\r\n\r\n public GetStandardDrawings(input: ISDInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getStandardDrawings, input);\r\n }\r\n public InsertStdDwgDocument(schBulkDoc: IScheduleBulkInsertModel) {\r\n return this.restAPIService.new_POST(this.endPoints.insertStdDwgDocument, schBulkDoc);\r\n }\r\n public LinkStdDciDoc(SDLinkListModel: SDLinkModel) {\r\n return this.restAPIService.new_POST(this.endPoints.linkStdDciDoc, SDLinkListModel);\r\n }\r\n\r\n public GetSDDocList(input: IPorjectInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getSDDocList, input)\r\n }\r\n\r\n public InsertBulkISODCIDocuments(schBulkDoc: IScheduleBulkInsertModel[]) {\r\n return this.restAPIService.new_POST(this.endPoints.insertBulkISODCIDoc, schBulkDoc);\r\n }\r\n\r\n public UploadISOExcel(formData: FormData): Observable {\r\n let _apiURL = environment.uriHost + this.endPoints.fetchISODCIDetails;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n return this.http.post(_apiURL, formData, { 'headers': headers });\r\n }\r\n\r\n}\r\n","import { Injectable, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CommonService } from '../Common.service';\r\nimport { RestApiService } from '../rest-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TenderQuantityService implements OnInit {\r\n\r\n private get_elementData = \"Tender/GetTenderElements\";\r\n private postOrEdit_elementData = \"Tender/InsertUpdateTenderElements\";\r\n private get_Items = \"Tender/GetTenderItems\";\r\n private postOrEdit_Items = \"Tender/InsertUpdateTenderItems\"\r\n private insetConfigureDiscipline = \"Tender/InsertUpdateTenderDiscElementItems\";\r\n private getConfigureDiscipline = \"Tender/GetTenderTenderDiscElementItems\";\r\n private projectConfigureElement = \"Tender/InsertUpdateProjectTenderElements\";\r\n private projectConfigureItem = \"Tender/InsertUpdateProjectTenderElementItems\";\r\n private getprojectConfigureElement = \"Tender/GetProjectDiscElement\";\r\n private getprojectConfigureItem = \"Tender/GetProjectDiscElementItems\";\r\n private insertTender =\"Tender/InsertUpdateProjectTenders\";\r\n private InsertUpdateProjectTenderElementDetails =\"Tender/InsertUpdateProjectTenderElementDetails\";\r\n private getProjectElement =\"Tender/GetProjectTenderElementDetails\";\r\n private getprojectTenderDetails =\"Tender/GetProjectTenderDetails\";\r\n private delete_tender =\"Tender/DeleteTenderDetails\";\r\n\r\n constructor(private restAPTService: RestApiService, public commonService: CommonService) { }\r\n\r\n ngOnInit() { }\r\n\r\n getElementDataToDp(): Observable {\r\n let postData = { \"tE_Id\": 0 }\r\n return this.restAPTService.new_POST(this.get_elementData, postData);\r\n }\r\n\r\n insertTenderData(obj?:any): Observable{\r\n return this.restAPTService.new_POST(this.insertTender, obj);\r\n }\r\n\r\n insertElementDetailsTenderData(obj?:any): Observable{\r\n return this.restAPTService.new_POST(this.InsertUpdateProjectTenderElementDetails, obj);\r\n }\r\n\r\n\r\n getElementProjectConfigure(Val?:any): Observable { \r\n let obj :any; \r\n if(!!Val){\r\n obj= { \"project_Id\": this.commonService.getProjectId(), \"disc_Id\": Val};\r\n }else{\r\n obj = { \"project_Id\": this.commonService.getProjectId(), \"disc_Id\": null, \"tE_Id\": null };\r\n }\r\n return this.restAPTService.new_POST(this.getprojectConfigureElement, obj);\r\n }\r\n\r\n getItemProjectConfigure(element?:any): Observable { \r\n let obj= {};\r\n if(!!element){\r\n obj = { \"project_Id\": this.commonService.getProjectId(), \"disc_Id\": element.disc_Id, \"tE_Id\": element.tE_Id};\r\n }else{\r\n obj = { \"project_Id\": this.commonService.getProjectId(), \"disc_Id\": null, \"tE_Id\": null, \"tI_Id\": null };\r\n } \r\n return this.restAPTService.new_POST(this.getprojectConfigureItem, obj);\r\n }\r\n\r\n getProjectTenderElement(val:any): Observable {\r\n return this.restAPTService.new_POST(this.getProjectElement, val);\r\n }\r\n \r\ngetProjectTenderDetails(val:any): Observable {\r\n return this.restAPTService.new_POST(this.getprojectTenderDetails, val);\r\n}\r\n\r\ndeleteTender(val:any):Observable{\r\n let obj:any = { \r\n \"result\": null,\r\n \"successCode\": 0,\r\n \"successMessage\": null,\r\n \"t_Id\": val \r\n }\r\n return this.restAPTService.new_POST(this.delete_tender, obj);\r\n}\r\n\r\nPostOrEditElementDataToDp(obj: any): Observable {\r\n let postData = {\r\n \"tE_Id\": obj.tE_Id,\r\n \"tE_Description\": obj.description,\r\n \"active_Tag\": obj.isActive,\r\n \"member_Id\": this.commonService.getLoggedInUserId()\r\n } \r\n return this.restAPTService.new_POST(this.postOrEdit_elementData, postData);\r\n }\r\n\r\n getItemDataToDp(): Observable {\r\n let postData = { \"tE_Id\": 0 }\r\n return this.restAPTService.new_POST(this.get_Items, postData);\r\n }\r\n\r\n getDiscElementItemData(): Observable {\r\n let postData:any = { \"tI_Id\": null, \"tE_Id\": null, \"active_Tag\": null, \"disc_DED_Id\": null }\r\n return this.restAPTService.new_POST(this.getConfigureDiscipline, postData);\r\n }\r\n\r\n insetorPostOrEditItemDataToDp(obj: any): Observable {\r\n if (obj.isActive == true) {\r\n obj.isActive = \"yes\";\r\n } else if (obj.isActive == false) {\r\n obj.isActive = \"no\";\r\n }\r\n let postData = {\r\n \"tI_Id\": obj.tI_Id,\r\n \"tI_Description\": obj.description,\r\n \"active_Tag\": obj.isActive,\r\n \"member_Id\": this.commonService.getLoggedInUserId()\r\n }\r\n return this.restAPTService.new_POST(this.postOrEdit_Items, postData);\r\n }\r\n\r\n InsetConfigureDiscipline(obj: any): Observable { \r\n let postData = {\r\n \"tI_Id\": obj.tI_Id,\r\n \"tE_Id\": obj.tE_Id,\r\n \"disc_DED_Id\": obj.disc_DED_Id,\r\n \"active_Tag\": obj.isActive,\r\n \"member_Id\": this.commonService.getLoggedInUserId()\r\n } \r\n return this.restAPTService.new_POST(this.insetConfigureDiscipline, postData);\r\n }\r\n\r\n InsetConfigureProjectElement(obj: any): Observable {\r\n return this.restAPTService.new_POST(this.projectConfigureElement, obj);\r\n }\r\n\r\n InsertConfigureProjectItem(obj: any): Observable {\r\n return this.restAPTService.new_POST(this.projectConfigureItem, obj);\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { Observable } from \"rxjs\";\r\nimport { CommonService } from \"../Common.service\"\r\nimport { RestApiService } from \"../rest-api.service\"\r\nimport { ITransmittalTemplateModel, ITransmittalReceiverDetails, ITransmittalDistributionModel, ITransmittalInputModel, ITransmittalInputDetailModel } from 'src/app/ViewModel/TransmittalTemplateModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TransmittalService {\r\n private endPoints = {\r\n getProjectMembers: 'ProjectMembersLink/GetMembersAgainstProjectBusinessGroup',\r\n insertUpdateTransmittalDetails: 'TransmittalTemplate/InsertUpdateTransmittalTemplate',\r\n insertUpdateTransmittalReceiverDetails: 'TransmittalTemplate/InsertUpdateTransmittalTemplateReceiverDetails',\r\n insertUpdateTransmittalDistributionDetails: 'TransmittalTemplate/InsertUpdateTransmittalTemplateDistributionDetails',\r\n getTransmittalDetails: 'TransmittalTemplate/GetTransmittalTemplateDetails',\r\n getTransmittalReceiverDetails: 'TransmittalTemplate/GetTransmittalTemplateReceiverDetails',\r\n getTransmittalDistributionDetails: 'TransmittalTemplate/GetTransmittalTemplateDistributionDetails',\r\n getDocDelayReason :\"Transmittal/GetDocumentDRDetails\"\r\n }\r\n\r\n constructor(private restAPIService: RestApiService,private commonService: CommonService){\r\n\r\n }\r\n\r\n public getProjectMembers():Observable {\r\n let reqData : any ={ projectId : this.commonService.getProjectId()};\r\n return this.restAPIService.new_POST(this.endPoints.getProjectMembers,reqData);\r\n }\r\n\r\n public InsertUpdateTransmittalDetails(transmittalDetails: ITransmittalTemplateModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalDetails, transmittalDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalReceiverDetails(transmittalReceiverDetails: ITransmittalReceiverDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalReceiverDetails, transmittalReceiverDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalDistributionDetails(transmittalDistributionDetails: ITransmittalDistributionModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalDistributionDetails, transmittalDistributionDetails);\r\n }\r\n\r\n public GetTransmittalDetails(transmittalDetails: ITransmittalInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalDetails, transmittalDetails);\r\n }\r\n\r\n public GetTransmittalReceiverDetails(transmittalReceiverDetails: ITransmittalInputDetailModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalReceiverDetails, transmittalReceiverDetails);\r\n }\r\n\r\n public GetTransmittalDistributionDetails(transmittalDistributionDetails: ITransmittalInputDetailModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalDistributionDetails, transmittalDistributionDetails);\r\n }\r\n \r\n public GetDocDelayReason(messageId: number): Observable {\r\n let obj={\r\n \"message_Id\" : messageId\r\n }\r\n return this.restAPIService.new_POST(this.endPoints.getDocDelayReason, obj);\r\n }\r\n\r\n}","import { Observable } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\"\r\nimport { RestApiService } from \"../rest-api.service\"\r\nimport { environment } from \"src/environments/environment\";\r\nimport { CommonService } from \"../Common.service\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { EncryptDecryptService } from \"../encrypt-decrypt.service\";\r\nimport { ITransmittalSerialNoInputModel, ITransmittalMsgInputModel, ITransmittalMsgReceiverInput, ITransmittalGroupMemberInput, ITransmittalMsgDocumentInput, ITransmittalDocumentInput, ITransmittalDocumentCopyInput, ITransmittalDocumentElementDetails, ITransmittalDocumentElementInput, ITransmittalMailDetails, ITransmittalMasterInput, ITransmittalSignedDocumentsModel } from 'src/app/ViewModel/TransmittalModel';\r\n\r\n@Injectable({ providedIn: \"root\" })\r\n\r\nexport class TransmittalMsgService {\r\n private endPoints = {\r\n getTransmittalSerialNo: 'Transmittal/GetTransmittalSerialNo',\r\n insertUpdateTransmittalDetails: 'Transmittal/InsertUpdateTransmittalDetails',\r\n insertUpdateTransmittalReceiverDetails: 'Transmittal/InsertUpdateTransmittalReceiverDetails',\r\n insertUpdateTransmittalGroupMemberDetails: 'Transmittal/InsertUpdateTransmittalGroupMemberDetails',\r\n insertUpdateTransmittalMsgDocDetails: 'Transmittal/InsertUpdateTransmittalMessageDocumentDetails',\r\n insertUpdateTransmittalDocDetails: 'Transmittal/InsertUpdateTransmittalDocumentDetails',\r\n insertUpdateTransmittalDocCopyDetails: 'Transmittal/InsertUpdateTransmittalDocumentCopyDetails',\r\n insertUpdateTransmittalDocElementDetails: 'Transmittal/InsertUpdateTransmittalElementDetails',\r\n sendTransmittalMailDetails: 'Transmittal/SendTransmittalMail',\r\n getTransmittalList: 'Transmittal/GetTransmittalDetails',\r\n getTransmittalReceiverDetails: 'Transmittal/GetTransmittalReceiverDetails',\r\n downloadAllAttachments: '/Transmittal/downloadAllAttachments',\r\n getTransmittalGroupMemberDetails: 'Transmittal/GetTransmittalGroupMemberDetails',\r\n getTransmittalDocumentDetails: 'Transmittal/GetTransmittalDocumentDetails',\r\n updateSignedDocumentsMsgId: 'Transmittal/UpdateSignedDocumentMsgId',\r\n getTransmittalMessageDetails: 'Transmittal/GetTransmittalMessageDetails'\r\n\r\n }\r\n\r\n constructor(private http: HttpClient, private restAPIService: RestApiService, private commonService: CommonService, private encryptDecryptService: EncryptDecryptService) {\r\n }\r\n\r\n public getTransmittalSerialNo(transmittalEleDetails: ITransmittalSerialNoInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalSerialNo, transmittalEleDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalDetails(transmittalDetails: ITransmittalMsgInputModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalDetails, transmittalDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalReceiverDetails(transmittalReceiverDetails: ITransmittalMsgReceiverInput): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalReceiverDetails, transmittalReceiverDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalGroupMemberDetails(transmittalDistributionDetails: ITransmittalGroupMemberInput): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalGroupMemberDetails, transmittalDistributionDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalMsgDocDetails(transmittalMsgDocDetails: ITransmittalMsgDocumentInput): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalMsgDocDetails, transmittalMsgDocDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalDocDetails(transmittalDocDetails: ITransmittalDocumentInput): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalDocDetails, transmittalDocDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalDocCopyDetails(transmittalDocCopyDetails: ITransmittalDocumentCopyInput): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalDocCopyDetails, transmittalDocCopyDetails);\r\n }\r\n\r\n public InsertUpdateTransmittalDocElementDetails(transmittalDocElementDetails: ITransmittalDocumentElementInput): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.insertUpdateTransmittalDocElementDetails, transmittalDocElementDetails);\r\n }\r\n\r\n public UpdateSignedDocumentsMessageId(signedDocumentsModel: ITransmittalSignedDocumentsModel): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.updateSignedDocumentsMsgId, signedDocumentsModel);\r\n }\r\n\r\n public SendTransmittalMail(transmittalMailDetails: ITransmittalMailDetails): Observable {\r\n return this.restAPIService.new_POST(this.endPoints.sendTransmittalMailDetails, transmittalMailDetails);\r\n }\r\n\r\n public GetTransmittalList(transmittalMaster: ITransmittalMasterInput) {\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalList, transmittalMaster);\r\n }\r\n\r\n public GetTransmittalDocumentDetails(messageId: number) {\r\n let reqData: any = { \"message_Id\": messageId };\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalDocumentDetails, reqData);\r\n }\r\n\r\n public GetTransmittalMessageDetails(messageId: number)\r\n {\r\n let reqData: any = { \"message_Id\": messageId };\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalMessageDetails,reqData); \r\n }\r\n\r\n public GetTransmittalGroupMemberDetails(messageId: number) {\r\n let reqData: any = { \"message_Id\": messageId };\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalGroupMemberDetails, reqData);\r\n }\r\n\r\n public GetTransmittalReceiverDetails(messageId: number) {\r\n let reqData: any = { \"message_Id\": messageId };\r\n return this.restAPIService.new_POST(this.endPoints.getTransmittalReceiverDetails, reqData);\r\n }\r\n\r\n public DownloadAllAttachments(projectId: number, messageId?: number, fileUploadLibrary?: number, downloadFileName?: string, task_ID?: string) {\r\n let _apiURL = environment.uriHost + this.endPoints.downloadAllAttachments;\r\n const headers = {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Authorization': 'Bearer ' + this.commonService.getJWT(),\r\n 'loginAuditNumber': this.encryptDecryptService.decrypt(this.commonService.getLoginAuditNumber())\r\n }\r\n let reqData: any = { \"projectId\": projectId, \"messageId\": messageId, \"fileUploadLibrary\": fileUploadLibrary, \"downloadFileName\": downloadFileName};\r\n return this.http.post(_apiURL, reqData, { 'headers': headers, responseType: 'blob' });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, of, observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkflowTemplateDataService {\r\n\r\n constructor() { }\r\n public workflowtemplatedetailscache: Map> = new Map>();\r\n mapworkflowtemplate(key: string, result: any[]) {\r\n this.workflowtemplatedetailscache.set(key, of(result));\r\n }\r\n hasWorkflowTemplate(key: string): boolean {\r\n return this.workflowtemplatedetailscache.has(key)\r\n }\r\n clearWorkflowTemplate() {\r\n this.workflowtemplatedetailscache.clear();\r\n }\r\n deleteWorkflowTemplate(key: string) {\r\n if (this.workflowtemplatedetailscache.has(key)) {\r\n this.workflowtemplatedetailscache.delete(key);\r\n }\r\n}\r\ngetWorkflowTemplate(key: string): Observable {\r\n //return this.workflowtemplatedetailscache.get(key);\r\n return new Observable();\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { RoleFeatureModel } from 'src/app/ViewModel/RoleFeatureModel';\r\nimport { WorkflowTemplateDialogModel } from 'src/app/ViewModel/WorkflowTemplateDialogModel';\r\nimport { ITenderTranInputModel, ITenderTranListInputModel, WorkflowTemplateModel } from 'src/app/ViewModel/WorkflowTemplateModel';\r\nimport { CommonService } from '../Common.service';\r\nimport { MapRoleFeatureService } from '../map-role-feature/map-role-feature.service';\r\nimport { RestApiService } from '../rest-api.service';\r\nimport { RespondWorkflowListModel } from 'src/app/ViewModel/RespondWorkflowModel';\r\nimport { IDCINoOfSheetsModel, IWFDocCategoryModel } from 'src/app/ViewModel/WorkflowActionModel';\r\nimport { IWorkflowStatusInputModel } from 'src/app/ViewModel/WorkflowStatusModel';\r\nimport { WorkflowTemplateDataService } from 'src/app/Service/workflow-template/workflow-template-data.service'\r\nimport { map } from 'rxjs/operators';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class WorkflowTemplateService {\r\n\tprivate readonly getWorkflowListUrl = 'WorkflowTemplate/GetWorkflowTemplateList';\r\n\tprivate readonly getWorkflowTemplateUrl = 'WorkflowTemplate/GetWorkflowTemplate';\r\n\tprivate readonly postWorkflowTemplateUrl = 'WorkflowTemplate/PostWorkflowTemplate';\r\n\tprivate readonly deleteWorkflowTemplateUrl = 'WorkflowTemplate/DeleteWorkFlowTemplate';\r\n\tprivate readonly getRespondWorkflowList = 'WorkflowTransaction/GetRespondWorkflowList';\r\n\tprivate readonly getWorkflowDocumentCheckistUrl = \"WorkflowTransaction/GetWorkflowDocumentCheckist\";\r\n\tprivate readonly getChecklistworkflowItemUrl = \"WorkflowTransaction/GetWorkflowDocumentCheckistItem\";\r\n\tprivate readonly postChecklistworkflowItemUrl = 'WorkflowTransaction/PostWorkflowDocumentCheckist';\r\n\tprivate readonly PostWorkflowDocumentCopyCheckistItemUrl = 'WorkflowTransaction/PostWorkflowDocumentCopyCheckist';\r\n\tprivate readonly dedAgainstDEGetUrl = \"DEDED/GetCommonDEDAgainstDE\";\r\n\tprivate readonly respondWorkflowDetails = \"WorkflowTransaction/PostRespondWorkflowDetails\";\r\n\tprivate readonly holdWorkflowDoc = \"WorkflowTransaction/HoldRespondWorkflowDocument\";\r\n\tprivate readonly getWorkflowMemberByRoleUrl = \"WorkflowTransaction/GetWorkflowMemberByRole\";\r\n\tprivate readonly updateWFAssignedToRoleUserUrl = \"WorkflowTransaction/UpdateWorkflowStepAssignedTo\";\r\n\tprivate readonly sendMailOnActionCompletion = \"WorkflowTransaction/SendMailOnActionCompletion\";\r\n\tprivate readonly BulksendMailOnActionCompletion = \"WorkflowTransaction/BulkSendMailOnActionCompletion\";\r\n\tprivate readonly insertUpdateTenderTransactionUrl = \"WorkflowTransaction/InsertUpdateTenderTransaction\";\r\n\tprivate readonly getTenderTranWorkflowDetailsUrl = \"WorkflowTransaction/GetTenderTranWorkflowDetails\"\r\n\tprivate readonly deleteWorkflowDocumentCheckistUrl = 'WorkflowTransaction/DeleteWorkflowDocumentCheckist';\r\n\tprivate readonly updateWorkflowDocumentCategoryUrl = 'WorkflowTransaction/UpdateWorkflowDocumentCategory';\r\n\tprivate readonly updateDCINoOfSheetsUrl = 'WorkflowTransaction/UpdateDCINoOfSheets';\r\n\tprivate readonly getWorkflowStatus = 'WorkflowTransaction/GetWorkflowStatusList';\r\n\tprivate readonly get_Checklist = 'WorkflowTransaction/GetWorkflowDocumentRevisionCheckist';\r\n\tprivate readonly getCCNDetails = 'CCN/GetCCNListByDocId';\r\n\tprivate readonly GetWorkflowCategory = 'WorkflowTransaction/GetWorkflowCategoryActionMap';\r\n\tprivate readonly GetWorkflowLatestStageDetails = 'WorkflowTemplate/GetWorkflowLatestStageDetails';\r\n\tprivate readonly bulkrespondWorkflowDetails = \"WorkflowTransaction/BulkPostRespondWorkflowDetails\";\r\n\tprivate readonly GetWorkflowTemplateDetails = \"WorkflowTemplate/GetWorkflowTemplateDetails\";\r\n\tprivate readonly updateWFAssignedToRoleUserUrlBulkUrl = \"WorkflowTransaction/UpdateWorkflowStepAssignedToBulk\"\r\n\r\n\tpublic supportForBottomKendo: BehaviorSubject = new BehaviorSubject([]);\r\n\tpublic supportForClearInputData: BehaviorSubject = new BehaviorSubject(false);\r\n\tpublic supportForClearMainData: BehaviorSubject = new BehaviorSubject(false);\r\n\tpublic supportForClearSelectedWfStatus: BehaviorSubject = new BehaviorSubject(false);\r\n\tpublic customTaskId: number | undefined;\r\n\tpublic isViewMode: boolean = false;\r\n\tpublic isCreateMode: boolean = false;\r\n\tpublic isEditMode: boolean = false;\r\n\tpublic isCopyMode: boolean = false;\r\n\tpublic selectedTaskId: number | null = null;\r\n\r\n\tconstructor(\r\n\t\tprivate commonService: CommonService,\r\n\t\tprivate mapRoleFeatureService: MapRoleFeatureService,\r\n\t\tprivate restApiService: RestApiService,\r\n\t\tprivate WorkflowTemplateDataService: WorkflowTemplateDataService) { }\r\n\r\n\tgetWorkflowTemplateList(icId: null | number, buId: null | number, projectId: null | number, groupId: null | number, workflowId: null | number): Observable {\r\n\t\tlet reqData = {\r\n\t\t\tprojectId,\r\n\t\t\ticId,\r\n\t\t\tbuId,\r\n\t\t\tgroupId,\r\n\t\t\tworkflowId\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.getWorkflowListUrl, reqData);\r\n\t}\r\n\r\n\tgetWorkflowTemplate(workflowId: number) {\r\n\t\tlet reqData = {\r\n\t\t\tworkflowId,\r\n\t\t\t\"isActive\": true\r\n\t\t};\r\n\t\treturn this.restApiService.new_POST(this.getWorkflowTemplateUrl, reqData);\r\n\t}\r\n\r\n\tpostWorkflowTemplate(reqData: WorkflowTemplateDialogModel) {\r\n\t\treturn this.restApiService.new_POST(this.postWorkflowTemplateUrl, reqData);\r\n\t}\r\n\r\n\tgetChecklist(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.get_Checklist, reqData);\r\n\t}\r\n\r\n\tdeleteWorkflowTemplate(workFlowId: number) {\r\n\t\treturn this.restApiService.new_POST(this.deleteWorkflowTemplateUrl, { \"workflowId\": workFlowId, \"isActive\": false });\r\n\t}\r\n\r\n\tgetWorkflowTaskList(groupId: null | number, moduleId: number, moduleDescription: string, deId: null | number, deDescription: string, dependentDEId: null | number, dependentDEDId: null | number, ProjectId: number | null): Observable {\r\n\t\treturn this.mapRoleFeatureService.getDedAgainstDe(deDescription, groupId, moduleId, dependentDEDId, dependentDEDId, ProjectId);\r\n\t}\r\n\r\n\t/**\r\n\t * Change data to respective cart selected data format\r\n\t * @param value \r\n\t * @param text \r\n\t */\r\n\tgetAsCartSelectedValue(value: string | number, text: string) {\r\n\t\tvalue = value.toString().trim();\r\n\t\ttext = text.trim();\r\n\t\tlet output = {\r\n\t\t\tvalue,\r\n\t\t\ttext: value + ' - ' + text\r\n\t\t};\r\n\t\treturn output;\r\n\t}\r\n\r\n\tgetWorkflowCategory(obj: any) {\r\n\t\treturn this.restApiService.new_POST(this.GetWorkflowCategory, obj);\r\n\t}\r\n\r\n\tgetRespondWorkflowDetails(projectId: number, groupId: number, memberId: number, lastViewingRecords: null | number, documentStatus?: number, isDeligatedDocuments: boolean = false, isAllworkflow: boolean = false, docId: number = null, revision_no: string = null): Observable {\r\n\t\tlet requiredData = {\r\n\t\t\tprojectId,\r\n\t\t\tgroupId,\r\n\t\t\tmemberId,\r\n\t\t\tdocumentStatus,\r\n\t\t\tisDeligatedDocuments,\r\n\t\t\tlastViewingRecords,\r\n\t\t\tisAllworkflow,\r\n\t\t\tdocId,\r\n\t\t\trevision_no\r\n\t\t};\r\n\t\treturn this.restApiService.new_POST(this.getRespondWorkflowList, requiredData);\r\n\t}\r\n\r\n\tgetCommonDEDAgainstDE(description: any) {\r\n\t\tlet reqData = { \"DEDescription\": description };\r\n\t\treturn this.restApiService.new_POST(this.dedAgainstDEGetUrl, reqData);\r\n\t}\r\n\r\n\tgetWorkflowDocumentCheckist(documentId: number, documentRevision: string, workflowId: number) {\r\n\t\tlet redData: any = {\r\n\t\t\t\"documentId\": documentId,\r\n\t\t\t\"documentRevision\": documentRevision,\r\n\t\t\t\"workflowId\": workflowId\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.getWorkflowDocumentCheckistUrl, redData);\r\n\t}\r\n\r\n\tgetWorkflowChecklistItem(getWorkflowItem: any) {\r\n\t\tlet redData: any = {\r\n\t\t\t\"documentId\": getWorkflowItem.documentId,\r\n\t\t\t\"documentRevision\": getWorkflowItem.documentRevisionNo,\r\n\t\t\t\"clId\": getWorkflowItem.clId,\r\n\t\t\t\"clRevision\": getWorkflowItem.clRevisionNo\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.getChecklistworkflowItemUrl, redData);\r\n\t}\r\n\r\n\tpostWorkflowChecklistItem(newWorkflowItem: any, isForApproval: boolean) {\r\n\t\tlet reqData = {\r\n\t\t\t'projectId': this.commonService.getProjectId(),\r\n\t\t\t'groupId': this.commonService.getLoggedInUserGroupId(),\r\n\t\t\t'checklistDetails': newWorkflowItem,\r\n\t\t\t'createdBy': this.commonService.getLoggedInUserId(),\r\n\t\t\t'approvedBy': isForApproval ? this.commonService.getLoggedInUserId() : null\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.postChecklistworkflowItemUrl, reqData);\r\n\t}\r\n\r\n\tPostWorkflowDocumentCopyCheckist(newWorkflowItem: any) {\r\n\t\tlet reqData = {\r\n\t\t\t'checklistDetails': newWorkflowItem\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.PostWorkflowDocumentCopyCheckistItemUrl, reqData);\r\n\t}\r\n\tpostRespondWorkflowDetails(getValue: any) {\r\n\t\treturn this.restApiService.new_POST(this.respondWorkflowDetails, getValue);\r\n\t}\r\n\tholdWorkflow(holdDoc: any) {\r\n\t\treturn this.restApiService.new_POST(this.holdWorkflowDoc, holdDoc);\r\n\t}\r\n\tBulkPostRespondWorkflowDetails(getValue: any) {\r\n\t\treturn this.restApiService.new_POST(this.bulkrespondWorkflowDetails, getValue);\r\n\t}\r\n\tgetWorkflowMemberByRole(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.getWorkflowMemberByRoleUrl, reqData);\r\n\t}\r\n\r\n\tupdateWFAssignedToRoleUser(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.updateWFAssignedToRoleUserUrl, reqData);\r\n\t}\r\n\r\n\tupdateWFAssignedToRoleUserBulk(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.updateWFAssignedToRoleUserUrlBulkUrl, reqData);\r\n\t}\r\n\r\n\tSendMailOnActionCompletion(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.sendMailOnActionCompletion, reqData);\r\n\t}\r\n\r\n\tBulkSendMailOnActionCompletion(reqData: any) {\r\n\t\treturn this.restApiService.new_POST(this.BulksendMailOnActionCompletion, reqData);\r\n\t}\r\n\r\n\tinsertUpdateTenderTransaction(reqData: ITenderTranInputModel) {\r\n\t\treturn this.restApiService.new_POST(this.insertUpdateTenderTransactionUrl, reqData);\r\n\t}\r\n\r\n\tgetTenderTranWorkflowDetails(reqData: ITenderTranListInputModel) {\r\n\t\treturn this.restApiService.new_POST(this.getTenderTranWorkflowDetailsUrl, reqData);\r\n\t}\r\n\r\n\tdeleteWorkflowDocumentCheckist(docId: any, revisionNo: any, clId: any, clRevisionNo: any, memberId: number) {\r\n\t\tlet reqData = {\r\n\t\t\t'documentId': docId,\r\n\t\t\t'documentRevision': revisionNo,\r\n\t\t\t'clId': clId,\r\n\t\t\t'cLRevision': clRevisionNo,\r\n\t\t\t'createdBy': memberId\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.deleteWorkflowDocumentCheckistUrl, reqData);\r\n\t}\r\n\r\n\tGetWorkflowLatestStageDetail(reqData: any) {\r\n\t\tlet input = {\r\n\t\t\t'Doc_Id': reqData.Doc_Id,\r\n\t\t\t'Stage_Ids': reqData.Stage_Ids\r\n\t\t}\r\n\t\treturn this.restApiService.new_POST(this.GetWorkflowLatestStageDetails, input);\r\n\t}\r\n\r\n\tUpdateWorkflowDocumentCategory(reqData: IWFDocCategoryModel) {\r\n\t\treturn this.restApiService.new_POST(this.updateWorkflowDocumentCategoryUrl, reqData);\r\n\t}\r\n\r\n\tUpdateDCINoOfSheets(reqData: IDCINoOfSheetsModel) {\r\n\t\treturn this.restApiService.new_POST(this.updateDCINoOfSheetsUrl, reqData);\r\n\t}\r\n\r\n\tGetWorkflowStatusDetails(reqData: IWorkflowStatusInputModel) {\r\n\t\treturn this.restApiService.new_POST(this.getWorkflowStatus, reqData);\r\n\t}\r\n\r\n\tGetWorkflowStatusCCNDetails(doc_Id: any) {\r\n\t\tlet reqData = { 'doc_Id': doc_Id, };\r\n\t\treturn this.restApiService.new_POST(this.getCCNDetails, reqData);\r\n\t}\r\n\r\n\tgetWorkflowTemplateDetails(workflowIds: string) {\r\n\t\tlet reqData = {\r\n\t\t\tworkflowIds,\r\n\t\t\t\"isActive\": true\r\n\t\t};\r\n\t\treturn this.restApiService.new_POST(this.GetWorkflowTemplateDetails, reqData);\r\n\t}\r\n}\r\n","import { ProjectViewModel } from \"./ProjectModel\";\r\n\r\nexport interface ISignatureInputModel {\r\n MemberId: number\r\n SignatureId: number\r\n SignatureName: string\r\n SignatureText: string\r\n IsActive: boolean\r\n}\r\nexport interface ISignatureListInputModel {\r\n MemberId: number | undefined\r\n\r\n}\r\n\r\nexport interface ISignatureOutputModel {\r\n MemberId: number\r\n SignatureId: number\r\n SignatureName: string\r\n SignatureText: string\r\n MemberName: string\r\n}\r\nexport interface IMessageGroupMGInputModel {\r\n MemberId: number\r\n OwnerId: number\r\n GroupId: number\r\n MessageGroupId?: number\r\n ProjectId: number\r\n GroupDescription: string\r\n IsActive: boolean\r\n MessageGroupMembers: IMessageGroupMemberInputModel[]\r\n}\r\n\r\nexport interface IMessageGroupMemberInputModel {\r\n MemberId: number\r\n UserId: number\r\n MessageGroupId: number\r\n GroupId: number\r\n ProjectId: number\r\n RoleId: number\r\n ReceiverType: number\r\n IsActive: boolean\r\n}\r\n\r\nexport interface IMessageGroupOutputModel {\r\n groupId: number\r\n groupDescription: string\r\n memberId: number\r\n memberName: string\r\n receiverType: number\r\n}\r\nexport interface IMessageGroupListInputModel {\r\n MemberId: number\r\n ProjectId: number\r\n}\r\n\r\nexport interface IMessageGroupModel {\r\n value: string\r\n text: string\r\n selected: boolean\r\n selectMode: string\r\n memberList: IMessageGroupModel[] | null\r\n}\r\nexport interface IMessageGroupMemberListModel {\r\n MemberId: number\r\n MemberName: string\r\n}\r\n\r\nexport interface IMessageGroupListModel {\r\n value: number\r\n title: string\r\n isGroup: boolean\r\n isActive: boolean\r\n groupId: number\r\n groupName: string\r\n}\r\n\r\nexport interface IMessageInputModel {\r\n CanSendMail: boolean\r\n MemberId: number\r\n MessageId?: number\r\n ProjectId: number\r\n GroupId?: number\r\n DisciplineId: number\r\n ParentMessageId: number\r\n MessageType: number\r\n HasAttachments: boolean\r\n IsConfidential: boolean\r\n MessageCategory: number\r\n MessageSubject: string\r\n MessageBody: string\r\n ResponseType: number\r\n RespondOn?: string | null\r\n MessageNo: string\r\n IssueReason: number\r\n MsgSerialNo: number\r\n SentOn?: string | null\r\n elementDetails?: IMsgElementInputModel[]\r\n documentAttachments: IMsgDocumentInputModel[]\r\n messageAttachments: IMsgAttachmentInputModel[]\r\n messageReceivers: IMsgReceiverInputModel[],\r\n CurrentProjectDetails?: ProjectViewModel\r\n}\r\n\r\nexport interface IMsgSLNoInputModel {\r\n projectId: number\r\n groupId: number\r\n moduleId: number\r\n elementDetails?: IMsgElementInputModel[]\r\n}\r\n\r\nexport interface IMsgElementInputModel {\r\n deId: number\r\n deDescription: string\r\n dedId: number\r\n dedDescription: string\r\n dedShortDescription: string\r\n sortBy: number\r\n}\r\n\r\nexport interface IMsgDocumentInputModel {\r\n memberId: number\r\n messageId: number\r\n docId: number\r\n revisionNo: string\r\n response: number\r\n responseRemarks: string | null\r\n isActive: boolean\r\n}\r\n\r\nexport interface IMsgAttachmentInputModel {\r\n memberId: number,\r\n messageId: number\r\n attachedMessageId: number\r\n isActive: boolean\r\n}\r\n\r\nexport interface IMsgReceiverInputModel {\r\n memberId: number\r\n messageId: number\r\n receiverType: number\r\n receiverGroup: number\r\n responseDate?: string | null\r\n sortBy?: number | null\r\n faxCopy?: boolean | null\r\n hardCopy?: boolean | null\r\n isDeleted: boolean\r\n isRead?: string\r\n readOn?: string | null\r\n userId: number\r\n isActive: boolean\r\n}\r\n\r\nexport interface IMsgListInputModel {\r\n transType: string\r\n projectId: number\r\n groupId: number\r\n memberId: number\r\n mailBoxType?: number | null\r\n isConfidential?: boolean | null\r\n sentType?: string | null\r\n sentFrom?: Date | null\r\n sentTo?: Date | null\r\n messageId?: number | null\r\n messageNo?: string | null\r\n messageNoSearchText?: string | null,\r\n messageSubjectSearchText?: string | null\r\n}\r\n\r\nexport interface IMessageSearchInputModel {\r\n projectId: number\r\n memberId: number\r\n searchId: number\r\n searchName: string\r\n messageNo: string\r\n messageSubject: string\r\n searchText: string\r\n}\r\nexport interface IMessageSearchModel {\r\n searchId: number\r\n searchName: string\r\n messageNo: string\r\n messageSubject: string\r\n searchText: string\r\n}\r\nexport interface IMessageDocumentModel {\r\n messageId: number\r\n docId: number\r\n documentNo: string\r\n title: string\r\n revision: string\r\n revisedOn: Date\r\n createdBy: string\r\n authorisedBy: string\r\n}\r\nexport interface IMessageAttachmentModel {\r\n messageId: number\r\n attachedMessageId: number\r\n fromMemberId: number\r\n toMemberId: number\r\n fromMemberName: string\r\n toMemberName: string\r\n messageBody: string\r\n messageSubject: string\r\n}\r\nexport interface IMessageDetailModel {\r\n messageId?: number\r\n disciplineId?: number\r\n discipline?: string\r\n messageType: number\r\n messageTypeDesc?: string\r\n hasAttachments: boolean\r\n messageCategory: number\r\n messageSubject: string\r\n messageBody: string\r\n parentMessageId: number\r\n responseType?: number\r\n respondOn?: Date\r\n messageNumber?: string\r\n issueReason?: number\r\n messageSerialNumber?: number\r\n sentOn?: Date\r\n createdOn?: Date\r\n from?: string\r\n fromMemID: number\r\n registeredBy: number\r\n messageTypeShortDesc: string\r\n respondByDesc: string\r\n issueDescription: string\r\n custRefNo: string\r\n preparedBy: string\r\n}\r\n\r\nexport interface IMessageStatusLogModel {\r\n messageId: number\r\n messageNumber: string\r\n messageSubject: string\r\n messageBody: string\r\n sentOn?: Date\r\n isConfidential: boolean\r\n respondOn?: Date\r\n receiverType: string\r\n memberName: string\r\n readOn?: Date\r\n responseDate?: Date\r\n}\r\n\r\nexport interface IMsgHistoryInputModel {\r\n projectId: number\r\n groupId: number\r\n messageId: number\r\n memberId: number\r\n roleId?: number\r\n}\r\n\r\nexport interface IMsgHistoryOutputModel {\r\n messageId: number\r\n messageNumber: string\r\n messageSubject: string\r\n messageBody: string\r\n messageCategory: number\r\n sentOn: Date\r\n isConfidential: boolean\r\n status: string\r\n statusCode: string\r\n respondOn: Date\r\n responseDate: Date\r\n from: string\r\n to: string\r\n cc: string\r\n fromGroupName: string\r\n fromGroupShortName: string\r\n}\r\n\r\nexport interface IMsgReceiverStatus {\r\n messageId: number\r\n memberId: number\r\n isRead?: string\r\n readOn?: Date\r\n responseDate?: Date | null\r\n userId: number\r\n}\r\n\r\nexport interface MessageReceiverOutputModel {\r\n messageId: number\r\n receiverType: number\r\n receiverGroup: number\r\n receiverGroupName?: string\r\n memberId: number\r\n memberName: string\r\n}\r\n\r\nexport interface IMsgDocumentAttachmentModel {\r\n fileId: number\r\n fileName: string,\r\n fileExtension: string,\r\n fileSize: number\r\n}\r\n\r\nexport interface IMsgAttachmentsModel {\r\n msgId: number,\r\n projectId: number,\r\n messageDocuments: IMsgDocumentAttachmentModel[],\r\n createdBy: number\r\n}\r\n\r\nexport interface ICommunicationInputModel {\r\n Trans_Type: string,\r\n Project_Id: number,\r\n Group_Id: number,\r\n Proj_Code: string\r\n}\r\nexport interface ICommunicationProtocol {\r\n psno: string,\r\n staff_name: string,\r\n designation: string,\r\n uid: string,\r\n mail_id: string;\r\n email: string,\r\n mobile: string,\r\n role_desc: string,\r\n disc_Description: string,\r\n scope_of_work: string,\r\n scope: string,\r\n proj_Code: string,\r\n name: string,\r\n Reference_Id: string,\r\n reference_Id: number,\r\n member_Code: string,\r\n member_Desc: string,\r\n proj_Description: string,\r\n member_Type_Code: string,\r\n member_Type_Desc: string,\r\n member_Id: string,\r\n coordinator: string,\r\n coord: string\r\n projectId: number\r\n groupId: number\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","export interface IDashboardInputModel {\r\n ic?: number\r\n from_Date?: number\r\n to_Date?: number\r\n}\r\n\r\n\r\nexport interface IDashboardOutputModel {\r\n projectCount: number\r\n activeMembers: number\r\n totalDrawings: number\r\n twoDrawings: number\r\n threeDrawings: number\r\n}\r\n\r\nexport interface IICInputModel {\r\n ic_Code?: number\r\n}\r\n\r\nexport interface IFlexDCIInputModel {\r\n projectId: number\r\n groupId: number\r\n}\r\n\r\nexport interface IManHourInputModel {\r\n projectId: number\r\n groupId?: number\r\n}\r\n\r\nexport interface IICOutputModel {\r\n ic_Code: number\r\n ic_Description: string\r\n ic_Short_Description: string\r\n}\r\n\r\nexport interface IProjectDashboardInputModel {\r\n project_Id?: number\r\n member_Id: number\r\n}\r\n\r\nexport interface IProjectDashboardOutputModel {\r\n activeProjects: number\r\n totalRepositoryDocuments: number\r\n myRepositoryDocuments: number\r\n sharedRepositoryDocuments: number\r\n totalScheduleDocuments: number\r\n myScheduleDocuments: number\r\n wfYetToStartDocuments: number\r\n wfActionPendingDocuments: number\r\n wfActionTakenDocuments: number\r\n communicationInbox: number\r\n communicationSent: number\r\n}\r\n\r\nexport interface IProjectDocDashboardOutputModel {\r\n doc_Count: number\r\n status: string\r\n color: string\r\n}\r\n\r\nexport interface IDashboardProjOutputModel {\r\n totalDays: number\r\n completedDays: number\r\n remainingDays: number\r\n plannedDocuments: number\r\n completedDocuments: number\r\n balanceDocuments: number\r\n plannedManHours: number\r\n actualManHours: number\r\n balanceManHours: number\r\n}\r\n\r\nexport interface IProjectDocDashboardInputModel {\r\n project_Id?: number\r\n member_Id: number\r\n trans_Type: string\r\n}\r\n\r\nexport interface IProjDashboardInputModel {\r\n project_Id: number\r\n}\r\n\r\nexport interface IProjDocDashboardInputModel {\r\n project_Id: number\r\n trans_Type: string\r\n}\r\n\r\nexport interface IProjDocDashboardOutputModel {\r\n doc_Count: number\r\n status: string\r\n color: string\r\n doc_Percentage: string\r\n}\r\n\r\nexport interface IGFCDrawingInputModel {\r\n project_Id?: number\r\n stage_Id?: number\r\n}\r\n\r\nexport interface IGFCDrawingOutputModel {\r\n doc_Count: number[]\r\n status: string\r\n category: string[]\r\n}\r\n\r\nexport interface IDCIAdherenceOutputModel {\r\n delay_Reason: string\r\n doc_Count: number\r\n total_Doc_Count: number\r\n color: string\r\n doc_Percentage: string\r\n}\r\n\r\nexport interface IStageRevOutputModel {\r\n status: string\r\n doc_Count: number\r\n color: string\r\n}\r\n\r\nexport interface IStageDetailsOutputModel {\r\n stages: string[]\r\n doc_Count: number[]\r\n status: string\r\n}\r\n\r\nexport interface IJobMHOutputModel {\r\n actual_Manhour: number\r\n status: string\r\n}\r\n\r\nexport interface IJobMHInputModel {\r\n project_Code: string\r\n}\r\n\r\nexport interface IHomeDashboardInputModel {\r\n tran_Type: string\r\n companyCode?: number\r\n clusterData?: string\r\n jsonJobCode?: string\r\n userId: number\r\n isLatestRevision: boolean\r\n iCId?: string|null\r\n projectId?: string|null\r\n groupId?: string|null\r\n disciplineId?: string|null \r\n isSuperUser: boolean\r\n}\r\n\r\n","export interface DrawingInactiveInputModel {\r\n\r\n groupId: number,\r\n projectId: number,\r\n doc_Id: string,\r\n doc_title: string,\r\n doc_no: string,\r\n status: boolean,\r\n userid?: number,\r\n disciplineId?: number | null\r\n\r\n}\r\nexport interface DrawingInactiveOutputModel {\r\n\r\n document_no: string,\r\n document_title: string,\r\n doc_Id: number,\r\n is_select: boolean,\r\n\r\n document_type: string,\r\n response: string,\r\n created_By?: string,\r\n created_On?: string,\r\n modified_By?: string,\r\n modified_On?: string\r\n}\r\nexport interface IDeleteDocumentInputModel {\r\n\r\n groupId: number,\r\n projectId: number,\r\n doc_Id: string,\r\n revision_type: string,\r\n UserId: number\r\n\r\n}\r\nexport interface IDeleteDocumentOutputModel {\r\n\r\n document_no: string,\r\n document_title: string,\r\n doc_Id: number,\r\n latest_revision_no: string,\r\n is_select: boolean,\r\n document_type: string,\r\n isTransmittalAvailable: boolean,\r\n isComminicationAvailable: boolean,\r\n is_Active: boolean,\r\n revSlNo: number,\r\n}","export interface IDocumentInputModel {\r\n DocId?: number|null\r\n GroupId: number\r\n DocNo: string\r\n DocTitle: string\r\n DocDate: string\r\n ProjectId: number\r\n UserId: number\r\n DocSerialNo: number\r\n SchRevNo: number\r\n IsScheduled: boolean\r\n DocSheetNo: number\r\n Module: number\r\n elementDetails: IElementInputModel[]\r\n docRevInputs: IDocumentRevInputModel\r\n docFLInputs: IDocumentLocInputModel\r\n}\r\n\r\nexport class DocumentOutputModel {\r\n public DocId!: number|null\r\n public RevisionNo!: string\r\n public DocAuthorizedBy!: number|null\r\n public result!: string\r\n public successCode!: number\r\n public successMessage!: string\r\n}\r\nexport interface IDocumentElementViewModel {\r\n DEDId?: number\r\n DEDDescription: string\r\n DEDShortDescription: string\r\n DEDName: string\r\n SortBy: number\r\n}\r\nexport interface IDocumentSLModel {\r\n DocSLNumber: string\r\n}\r\n\r\nexport interface IElementInputModel {\r\n deId: number\r\n deDescription: string\r\n dedId: number\r\n dedDescription: string\r\n dedShortDescription: string\r\n sortBy: number\r\n}\r\nexport interface IDocSLNoInputModel {\r\n projectId: number\r\n groupId: number\r\n moduleId: number\r\n elementDetails: IElementInputModel[]\r\n}\r\n\r\nexport interface IDocumentRevInputModel {\r\n DocId: number|null\r\n RevisionNo: string\r\n DocStatus: number\r\n IsConfidential: boolean\r\n PrintSize: number\r\n Reference: string\r\n RevisedOn: string\r\n RevisionCategory: number\r\n DocAuthorizedBy: number\r\n DocCreatedBy: number\r\n Comments: string\r\n IsFileAttached: boolean\r\n QRCodeStatus: boolean\r\n CreatedBy: number\r\n}\r\nexport interface IDocumentLocInputModel {\r\n DocId: number|null\r\n RevisionNo: string\r\n Location: string\r\n Building: string\r\n Floor: string\r\n Rack: string\r\n Shelf: string\r\n FileNo: string\r\n UserId: number\r\n}\r\n\r\nexport interface IDocumentTemplateInputModel {\r\n ProjectId: number\r\n GroupId: number\r\n memberId?: number\r\n}\r\n\r\nexport interface IDocumentExcelUploadModel {\r\n result: string\r\n successCode: number\r\n successMessage: string\r\n statusList: IDocumentUploadStatusModel[]\r\n}\r\n\r\nexport interface IDocumentUploadStatusModel {\r\n rowNo: number,\r\n docNo: string,\r\n revisionNo: string,\r\n errors: string[],\r\n status: boolean,\r\n docId? : number,\r\n authorisedBy : number\r\n revisedOn: string\r\n}\r\n\r\nexport interface IDocumentTemplateStatusModel {\r\n docId? : number,\r\n rowNo: number,\r\n docNo: string,\r\n revisionNo: string,\r\n errors: string[],\r\n status: boolean\r\n}\r\n\r\nexport interface IDocumentListInputModel {\r\n projectId?: number,\r\n groupId?: number,\r\n memberId?: number,\r\n transType?: string,\r\n createdFromDays?: number,\r\n docId?: number| null,\r\n docNo?: string| null,\r\n revisionNo?: string| null,\r\n isExcludeTransmittalDocuments?: boolean\r\n docTitle? : string|null,\r\n reference? : string|null,\r\n fromDate? : Date | null,\r\n toDate? : Date | null\r\n}\r\n\r\nexport interface IDocumentListModel {\r\n docNo: string,\r\n revisiedOn: string,\r\n revision: string,\r\n title: string,\r\n authorizedBy: string,\r\n createdBy: string,\r\n status: string,\r\n AccountingCentre: string\r\n}\r\n\r\nexport interface IDocumentRevHistoryModel {\r\n docId: number,\r\n groupId: number,\r\n memberId: number,\r\n transType: string\r\n}\r\n\r\nexport interface IDocRevHistoryOutputModel {\r\n slNo: number,\r\n documentId: number,\r\n documentNo: string,\r\n title: string,\r\n revision: string,\r\n docStatusId: number,\r\n docStatusDesc: string,\r\n currentStatusDesc: string,\r\n currentStatusId: number,\r\n groupId: number,\r\n createdBy: number,\r\n createdByName: string,\r\n authorisedBy: number,\r\n authorizedByName: string,\r\n revisedOn?: Date,\r\n createdOn?: Date,\r\n reviewedOn?: Date,\r\n modifiedOn?: Date,\r\n revCategoryDesc: string,\r\n revCategoryId: number,\r\n printSizeDesc: string,\r\n printSizeId: number,\r\n noOfSheets: number\r\n}\r\n\r\nexport interface IDocumentApprovalModel {\r\n DocId: number\r\n RevisionNo: string\r\n RevisedOn: string\r\n IsApproved: boolean\r\n ApprovedBy: number\r\n}\r\n\r\nexport interface IDocumentByIdInputModel {\r\n projectId: number,\r\n groupId: number,\r\n docId: number,\r\n revisionNo: string\r\n}\r\n\r\nexport interface IDocumentSearchModel {\r\n projectId: number,\r\n memberId: number,\r\n searchId: number,\r\n searchName: string,\r\n docNo: string,\r\n docTitle: string,\r\n groupId: number,\r\n revisionNo: string,\r\n docStatus: string,\r\n createdType: string,\r\n createdPeriod: number,\r\n searchText: string\r\n}\r\n\r\nexport interface IDocumentShareModel {\r\n DocId: number\r\n RevisionNo: string\r\n MemberId: number\r\n UserId: number\r\n}\r\n\r\nexport interface IDocumentShareMailModel {\r\n DocId: number\r\n RevisionNo: string\r\n MemberIdString: string\r\n UserId: number\r\n}\r\n\r\nexport type DocumentShareMemberModel = {\r\n documentId: number,\r\n revision: string,\r\n memberId: number,\r\n memberName: string\r\n}\r\n\r\nexport interface IDocumentMailInputModel {\r\n DocId: number\r\n DocumentNo: string\r\n Category: number\r\n ProjectId: number \r\n GroupId: number\r\n MemberId?: number\r\n TransType: string\r\n revisionNo: string|null\r\n}\r\n\r\nexport interface IDocumentMailOutputModel {\r\n messageId: number\r\n messageNumber: string\r\n messageSubject: string\r\n messageCategory: number\r\n from: string\r\n to: string\r\n sentOn?: Date\r\n respondBy?: Date\r\n dateOfResponse?: Date\r\n status: string\r\n}\r\n\r\nexport class DocumentGridSettings {\r\n constructor(defaultValue: boolean) {\r\n\r\n this.docNo = defaultValue;\r\n this.title = defaultValue;\r\n this.revision = defaultValue;\r\n this.revisedOn = defaultValue;\r\n this.createdBy = defaultValue;\r\n this.authorizedByName = defaultValue;\r\n this.status = defaultValue;\r\n this.reference = defaultValue;\r\n }\r\n docNo: boolean;\r\n title: boolean;\r\n revision: boolean;\r\n revisedOn: boolean;\r\n createdBy: boolean;\r\n authorizedByName: boolean;\r\n status: boolean;\r\n reference: boolean\r\n}\r\nexport interface IDocumentRepositoryHistoryInputModel {\r\n docId : number,\r\n revision : string \r\n}\r\nexport interface IDocumentRepositoryHistoryViewModel {\r\n assigned_By: string,\r\n assigned_To: string,\r\n assigned_On: number,\r\n viewStatus: string,\r\n viewed_On: number,\r\n communication: string\r\n}\r\n\r\nexport interface IDocReceiverStatus {\r\n doc_Id: number,\r\n member_Id: number,\r\n is_Read?: string,\r\n read_On?: Date,\r\n revisionNo: string\r\n}\r\nexport interface IDocumentDynamicSearchModel { \r\n projectId: number,\r\n memberId: number,\r\n docNo: string,\r\n docTitle: string,\r\n groupId: number,\r\n revisionNo: string,\r\n docStatus: string,\r\n createdType: string,\r\n createdPeriod: number,\r\n searchText: string\r\n}\r\nexport interface IMSTOutputModel{\r\n topSheet_No: string\r\n topSheet_Desc: string\r\n topsheet_Description: string\r\n pO_No: string\r\n material_Code: string\r\n material_desc: string\r\n material_Code_Desc: string\r\n material_Code_Description: string\r\n}\r\n\r\nexport interface IMSTDocDetailsInputModel {\r\n projectId: number\r\n docId: number\r\n sSTDetails: IMSTDetailsInputModel[]\r\n userId: number\r\n \r\n}\r\n\r\nexport interface IMSTDetailsInputModel{\r\n topSheetNo: string|null\r\n pONo: string|null\r\n materialItemCode: string|null\r\n isActive: boolean\r\n}\r\n","export interface IMemebersViewModel {\r\n member_Id?: number|null\r\n member_Name: string\r\n member_Short_Name: string\r\n group_Id: number\r\n reporting_To?: number|null\r\n staff_PSNo?: string\r\n ecc_Web_Login: string\r\n designation: string\r\n eMail_Id: string\r\n password?: string\r\n mobile_No: string\r\n is_Internal: boolean\r\n is_Active: boolean\r\n user_Id: number\r\n eIP_UserId?: number\r\n company_Code?: number\r\n lock_status?: boolean,\r\n address?: string,\r\n mobile_No_Prefix: string,\r\n group_Name: string|null\r\n}\r\n\r\nexport interface IProjectMemberViewModel{\r\n member_Id?: number\r\n member_Name: string\r\n member_Short_Name: string\r\n group_Id: number\r\n reporting_To?: number\r\n staff_PSNo?: string\r\n ecc_Web_Login: string\r\n designation: string\r\n eMail_Id: string\r\n mobile_No: string\r\n is_Internal: boolean\r\n is_Active: boolean\r\n company_Code?: number\r\n address?: string,\r\n mobile_No_Prefix: string,\r\n}\r\n\r\nexport interface IEipUserModel {\r\n referenceId: number,\r\n username: string\r\n}\r\n\r\nexport interface IMemebersInputModel {\r\n member_Id?: number|null\r\n group_Id?: number\r\n}\r\n\r\nexport interface IProjectMembersInputModel {\r\n group_Id?: number\r\n project_Id?: number\r\n}\r\n\r\nexport interface IEipSessionValue {\r\n sessionCode: string,\r\n sessionValue: string\r\n}\r\nexport interface IMemeberloginInputModel {\r\n suggestion: string\r\n}\r\nexport interface IMemeberloginViewModel {\r\n login_Name: string,\r\n user_ID: number,\r\n password : string\r\n}\r\n","import { DecimalPipe, Time } from \"@angular/common\";\r\n\r\n\r\nexport interface IReviewListViewModel {\r\n requestNo: string;\r\n old_Ref_Id : string;\r\n discipline: string;\r\n request_Status: string;\r\n created_By: string;\r\n created_On: Date;\r\n comments_Status: string;\r\n response_Status: string;\r\n date : Date;\r\n time_From :Time\r\n time_To :Time\r\n doc_Location : string;\r\n status_Update : string;\r\n ds_code:number\r\n approved_by: string;\r\n approved_on : Date;\r\n is_approve : boolean;\r\n peer_review_type : string;\r\n scope_of_review : string;\r\n impact_status : string;\r\n // Responded_By: string;\r\n // Responded_On: Date;\r\n}\r\n\r\nexport interface IApproveReviewViewModel {\r\n requestNo: string;\r\n created_By: string;\r\n created_On: Date;\r\n scheduled_On: Date;\r\n scheduled_From: Time;\r\n scheduled_Upto: Time;\r\n document_Location: string;\r\n status: string;\r\n}\r\nexport interface IApproveInputModel {\r\n strDocNumber: string;\r\n dtmScheduledOn: Date;\r\n tmScheduledFrom: Time;\r\n tmScheduledUpto: Time;\r\n strDocLocation: string;\r\n chrIsApproved: string|null;\r\n bitIsFromStatus?: boolean;\r\n intUID: number;\r\n}\r\nexport interface IPRInvitationRoleMasterDataOutputModel {\r\n dE_Id: number;\r\n dED_Id: number;\r\n dED_Description: string;\r\n dED_Short_Description: string;\r\n}\r\n\r\nexport interface IPRInvitationDisciplineMasterDataOutputModel {\r\n dE_Id: number;\r\n deD_Id: number;\r\n discipline: string;\r\n discipline_Short_Description: string;\r\n}\r\n\r\nexport interface IPRInvitationLocationMasterDataOutputModel {\r\n dED_Id: number;\r\n dED_Description: string;\r\n dED_Short_Description: string;\r\n sort_By: string;\r\n dED_Name: string;\r\n}\r\n\r\nexport interface IPRInvitationMembersMasterDataOutputModel {\r\n category: string;\r\n member_category_de_id: number;\r\n member_category_ded_id: number;\r\n member_id: number;\r\n psno: string;\r\n emp_name: string;\r\n role_de_id: number;\r\n role_ded_id: number;\r\n emp_role_desc: string;\r\n discipline_de_id: number;\r\n discipline_ded_id: number;\r\n discipline: string;\r\n mail_id: string;\r\n}\r\n\r\nexport interface PeerRequestInput {\r\n intProjectID: number,\r\n intGroupID: number,\r\n strDocElements: string,\r\n dtScheduledOn: Date,\r\n tmScheduledFrom: Time,\r\n tmScheduledUpto: Time,\r\n chrVCRequired: string,\r\n strECDName: string,\r\n strMEPECDName: string,\r\n strDECDName: string,\r\n strProjectElements: string,\r\n strProjectLongDesc: string,\r\n strBuildingType: string,\r\n strScopeofWork: string,\r\n strBuiltupArea: string,\r\n strClient: string,\r\n strSiteArea: string,\r\n dtDateOfLOI: Date,\r\n mnyProjectValueInLakhs: DecimalPipe,\r\n mnyDesignFeeInLakhs: DecimalPipe,\r\n strProofConsultantName: string,\r\n strArchitecturalConsultantName: string,\r\n strStructuralConsultantName: string,\r\n strOtherConultantName: string,\r\n dtmSubmissionDateOfProject: Date,\r\n // tmSubmissionTimeOfProject: Time,\r\n chrIsEDMSAvailable: string,\r\n strScopeOfPeerReview: string,\r\n strPresenterDetails: string,\r\n strDocLocation: string,\r\n intUID: number,\r\n strDivisionName: string,\r\n strSegmentHead: string\r\n}\r\n\r\nexport interface PeerRequestOutput{\r\n strDocNo: string,\r\n strOldDocNo: string,\r\n strErrorMsg: string\r\n}\r\n\r\nexport interface PeerReqDocElementsInput {\r\n DE_ID: number,\r\n DED_ID: number,\r\n OTHERS_VALUE: string\r\n}\r\n\r\nexport interface PeerReqPrjElementsInput {\r\n DE_ID: number,\r\n DED_ID: number\r\n}\r\n\r\nexport interface PresenterDetailsInput {\r\n DE_ID: number,\r\n DED_ID: number,\r\n Presenter_Name: string,\r\n Presenter_Mail_Id: string,\r\n From_Time: string,\r\n Upto_Time: string,\r\n Remarks: string\r\n}\r\n\r\n\r\nexport interface DocViewInput{\r\n strDocNumber : string,\r\n intUID: number\r\n}\r\n\r\nexport interface DocViewOutput{\r\n docDetails: DocDetailsOutput,\r\n docFlowDetails: DocFlowOutput \r\n}\r\n\r\nexport interface DocPanelCRIOutpu{\r\n panelDetails: PanelDetailsOutput,\r\n cRIDetails: CRIDetailsOutput\r\n}\r\n\r\nexport interface PanelDetailsOutput{\r\n slno: number,\r\n location_name: string,\r\n member_category: string,\r\n member_Name: string,\r\n member_PSNo: string,\r\n member_Role: string,\r\n member_Discipline: string,\r\n lprM_Comments_Submitted: string,\r\n lprM_Response_Submitted: string,\r\n lprM_Impact_Submitted: string,\r\n member_Type: string\r\n}\r\n\r\nexport interface CRIDetailsOutput{\r\n discipline : string,\r\n commented_By : string,\r\n commented_On : Date,\r\n comment : string,\r\n comment_Category : string,\r\n is_Comments_Attachment_Available : string,\r\n is_Response_Received : string,\r\n response_Received_From : string,\r\n response_Received_On : Date,\r\n project_Design_Team_Response : string,\r\n response_Remarks : string,\r\n response_Entry_Done_By : string,\r\n response_Entry_Done_On : Date,\r\n disAgree_Reason : string,\r\n disAgree_Reason_Remarks : string,\r\n evidence_Remarks : string,\r\n evidence_Attachment_Available : string\r\n}\r\n\r\nexport interface DocViewAllDetailsOutput{\r\n docDetails: DocDetailsOutput,\r\n docFlowDetails: DocFlowOutput,\r\n dpresenterDetails: DocPresenterDetails,\r\n panelDetails: PanelDetailsOutput,\r\n cRIDetails: CRIDetailsOutput\r\n}\r\n\r\nexport interface DocDetailsOutput{\r\n doc_no\t\t\t\t\t\t : string \t ,\r\n review_type\t\t\t\t\t : string \t ,\r\n peer_review_refno\t\t\t : string \t ,\r\n review_date\t\t\t \t : Date ,\r\n review_from_time\t\t\t : Time ,\r\n review_upto_time\t\t\t : Time ,\r\n project_description\t\t\t : string \t ,\r\n document_status\t\t\t\t : string \t ,\r\n scope_of_review\t\t\t\t : string \t ,\r\n services_included\t\t\t : string \t ,\r\n required_documents : string ,\r\n type_of_structure : string ,\r\n stages_of_review\t\t\t : string \t ,\r\n document_location\t\t\t : string \t ,\r\n vc_required\t\t\t\t\t : string \t ,\r\n ecd_for_project\t\t\t\t : string \t ,\r\n mep_ecd_for_project\t\t\t : string \t ,\r\n decd_for_project\t\t\t : string \t ,\r\n project_name\t\t\t\t : string \t ,\r\n project_code\t\t\t\t : string \t ,\r\n building_type\t\t\t\t : string \t ,\r\n client_name\t\t\t\t\t : string \t ,\r\n project_value_in_lakhs\t\t : DecimalPipe \t ,\r\n design_fee_in_lakhs\t\t\t : DecimalPipe \t ,\r\n project_brief_desc\t\t\t : string \t ,\r\n nature_of_project\t\t\t : string \t ,\r\n contract_type\t\t\t\t : string \t ,\r\n project_scope_of_work\t\t : string \t ,\r\n built_up_area_in_sqm\t : string \t ,\r\n plot_area_in_sqm\t\t\t : string \t ,\r\n proof_consultant_name\t\t : string \t ,\r\n architectural_consultant_name: string \t ,\r\n structural_consultant_name\t : string \t ,\r\n any_other_consultants\t\t : string \t ,\r\n project_start_date\t\t\t : Date ,\r\n project_end_date\t\t\t : Date ,\r\n project_submission_date\t : Date ,\r\n date_of_loi\t\t\t\t : Date ,\r\n edms_available\t\t\t\t : string \t ,\r\n scope_for_peer_review\t\t : string \t ,\r\n created_by\t\t\t\t\t : string \t ,\r\n created_on\t\t\t\t\t : Date\t ,\r\n approved_by\t\t\t\t\t : string \t ,\r\n approved_on\t\t\t\t : Date ,\r\n comments_status\t\t\t\t : string \t ,\r\n response_status\t\t\t\t : string \t ,\r\n impact_status\t\t\t\t : string \t ,\r\n ds_code\t\t\t\t\t\t : number\t \r\n}\r\n\r\nexport interface DocFlowOutput{\r\n document_Ref_No: number,\r\n slno: number,\r\n action_Desc: string,\r\n action_By: string,\r\n action_On: Date,\r\n remarks:string \r\n}\r\n\r\nexport interface DocPresenterDetails{\r\n dPRP_DE_Id: number,\r\n dPRP_DED_Id: number,\r\n discipline: string,\r\n dPRP_Presenter_Name: string,\r\n dPRP_Presenter_Mail_Id: string,\r\n hPRR_Presentation_From_Time: Time,\r\n hPRR_Presentation_To_Time: Time,\r\n dPRP_Additional_Remarks: Time\r\n}\r\n\r\nexport interface IStatusInputModel{\r\n ProjectId: number,\r\n DocNum: string ,\r\n DsCode: number,\r\n UID: number,\r\n Schdate: Date,\r\n Confirm: '1'\r\n}\r\n\r\nexport interface IPeerReviewDedOutputModel{\r\n dE_Id: number,\r\n deD_Id: number,\r\n deD_Description: string,\r\n deD_Short_Description: string,\r\n Sort_By?: number\r\n}\r\n\r\n\r\nexport interface ICommentsListOutputModel{\r\n category: string|null,\r\n category_DED_Id: number|null,\r\n category_DE_Id: number|null,\r\n comment_By: string|null,\r\n comment_Id: number|null,\r\n comment_On: Date|null,\r\n disc_DED_Id: number|null,\r\n disc_DE_Id: number|null,\r\n disc_No: string|null,\r\n discipline: string|null,\r\n panel_Comments: string|null,\r\n potential_Comment: string|null,\r\n review_No: string,\r\n isAttachment?: string|null,\r\n}\r\n\r\nexport interface ICommentsInputModel{\r\n Review_No: string,\r\n Save_Type: string,\r\n Panel_Comments?: string ,\r\n Potential_Comment?: string ,\r\n Disc_DE_Id: number,\r\n Disc_DED_Id: number,\r\n Category_DE_Id: number,\r\n Category_DED_Id: number,\r\n Attachment_Available: string,\r\n UID: number,\r\n Comment_Id?: number,\r\n On_Behalf?: number\r\n}\r\n\r\nexport interface IResponseListOutputModel{\r\n action_By: string,\r\n action_Date: Date,\r\n action_Remarks: string,\r\n category: string,\r\n comment_Id: number,\r\n dA_DED_Id: number,\r\n dA_DE_Id: number,\r\n disc_No: string,\r\n discipline: string,\r\n panel_Comments: string,\r\n potential_Comment: string,\r\n comments_Attachments : string,\r\n reason: string,\r\n reason_Remarks: string,\r\n responded_By: string,\r\n responded_On: Date,\r\n responder_Agreed: string,\r\n review_No: string,\r\n submitted_By: string,\r\n submitted_On: Date,\r\n evidence_Remarks: string,\r\n impact: string,\r\n isAttachment: string,\r\n comment_Status: string,\r\n response_Status: string,\r\n impactOpenClose : string,\r\n impactStatus : string,\r\n impactStatus_DE_ID : number,\r\n impactStatus_DED_ID : number,\r\n impactDateClosure : Date\r\n}\r\n\r\nexport interface IResponseInputModel{\r\n Review_No: any,\r\n Comment_Id: number,\r\n Save_Type: string,\r\n IsAgreed: string,\r\n Response_Remarks?: string,\r\n Response_By?: string,\r\n Response_On?: string,\r\n ImpactOpenClose?: string,\r\n ImpactStatus_DE_ID?: number,\r\n ImpactStatus_DED_ID?: number,\r\n ImpactDateClosure?: string,\r\n Reason_DE_Id?: number,\r\n Reason_DED_Id?: number,\r\n Reason_Remarks?: string,\r\n UID: number\r\n}\r\n\r\nexport interface PeerImpactOutputModel {\r\n\r\n impactDetails: IImpactListOutputModel[], \r\n impactType: IPeerReviewDedOutputModel[],\r\n}\r\n\r\nexport interface IImpactListOutputModel{\r\n action_By: string,\r\n action_Date: Date,\r\n action_Remarks: string,\r\n category: string,\r\n comment_Id: number,\r\n dS_Code: number,\r\n disc_No: string,\r\n discipline: string,\r\n evidence_Remarks: string,\r\n impact: string,\r\n panel_Comments: string,\r\n reason: string,\r\n responded_By: string,\r\n responded_On: Date,\r\n responder_Agreed: string,\r\n review_No: string,\r\n submitted_By: string,\r\n submitted_On: Date,\r\n isAttachment?: string,\r\n comment_Status?: string,\r\n response_Status?: string\r\n}\r\n\r\nexport interface IImpactInputModel{\r\n strDocNumber: string,\r\n Save_Type: string,\r\n impactValues: string,\r\n commentRows: string,\r\n impactDetails: string,\r\n UID: number\r\n}\r\n","import { DecimalPipe, Time } from \"@angular/common\";\r\n\r\n\r\nexport interface IProjectElementsInput {\r\n projectId: number | undefined,\r\n groupId: number | undefined,\r\n moduleId: number | undefined,\r\n IsQueryForStaticElement: boolean\r\n}\r\n\r\nexport interface IProjectElementsOutput {\r\n isMandatory: boolean,\r\n sortBy: number,\r\n defaultValue?: number | undefined,\r\n dependentElementDescription: string,\r\n dependentElementId?: number | undefined,\r\n elementDescription: string,\r\n elementHierarchy: number\r\n elementId: number\r\n groupId: number\r\n hasDependency: boolean,\r\n isActive: boolean,\r\n isDefaultSelect: boolean\r\n isNumbering: boolean\r\n isSerialNumber: boolean\r\n isVisible: boolean\r\n moduleDescription: string\r\n moduleId: number\r\n projectElementDescription: string\r\n projectId: number\r\n\r\n}\r\n\r\nexport interface IProjectElementDetailsInput {\r\n projectId: number | undefined,\r\n groupId: number | undefined,\r\n deId?: number | undefined,\r\n moduleId: number | undefined,\r\n deDescription?: string | (string | number)[],\r\n dependentDEId?: number | undefined,\r\n dependentDEDId?: number | undefined,\r\n memberId?: number | undefined,\r\n}\r\n\r\n\r\nexport interface IProjectElementDetailsOutput {\r\n deId: number,\r\n deDescription: string\r\n dedId: number,\r\n dedDescription: string,\r\n dedShortDescription: string,\r\n sortBy: number,\r\n displayText?: string\r\n}\r\n\r\nexport interface PeerElementDetailsOutput {\r\n dE_Id: number,\r\n deD_Id: number,\r\n deD_Description: string,\r\n deD_Short_Description: string,\r\n deD_Name: string,\r\n sort_By: number\r\n}\r\n\r\nexport interface PeerAllElementDetailsOutput {\r\n\r\n proscpserstg: PrjScpSerStgOutput[],\r\n memberEcdMD: MemberECDMDOutput[],\r\n}\r\n\r\nexport interface PrjScpSerStgOutput {\r\n\r\n data_FOR: string,\r\n dE_Id: number,\r\n deD_Id: number,\r\n deD_Description: string,\r\n deD_Short_Description: string,\r\n sort_By: number,\r\n deD_Name: string\r\n}\r\n\r\nexport interface MemberECDMDOutput {\r\n short_desc: string,\r\n stringAggList: string,\r\n sort_order: number\r\n}\r\n\r\n\r\nexport interface ProjectTypeOutput {\r\n\r\n data_FOR: string,\r\n dE_Id: number,\r\n dED_Id: number,\r\n dED_Description: string,\r\n dED_Short_Description: string,\r\n sort_By: number,\r\n dED_Name: string\r\n}\r\n\r\nexport interface ScopeReviewOutput {\r\n data_FOR: string,\r\n dED_Id: number,\r\n dED_Description: string,\r\n dED_Short_Description: string,\r\n sort_By: number,\r\n dED_Name: string\r\n}\r\n\r\nexport interface ServiceIncludedOutput {\r\n data_FOR: string,\r\n dED_Id: number,\r\n dED_Description: string,\r\n dED_Short_Description: string,\r\n sort_By: number,\r\n dED_Name: string\r\n}\r\n\r\nexport interface StagesReviewOutput {\r\n\r\n dATA_FOR: string,\r\n project_Id: number,\r\n group_Id: number,\r\n status_Id: number,\r\n status_Type: number,\r\n status_Order: number,\r\n active_Tag: string,\r\n group_Name: string,\r\n cED_Description: string,\r\n active_Tag_Desc: string,\r\n dED_Description: string,\r\n project_Status_Desc: string,\r\n scurve_Status_Desc: string,\r\n status_Desc: string\r\n}\r\n\r\nexport interface MemberECDOutput {\r\n member_Name: string,\r\n dED_Short_Desc: string\r\n}\r\n\r\nexport interface MemberDECDOutput {\r\n disc_Code: number,\r\n disc_Discription: string,\r\n userId: number,\r\n emp_name: string,\r\n emp_DiscName: string,\r\n disc_Manhour: number\r\n}\r\n\r\nexport interface ProjectAllDetailsOutput {\r\n project_id: number,\r\n project_code: string,\r\n project_description: string,\r\n project_short_description: string,\r\n building_type: string,\r\n client: string,\r\n start_Date: Date,\r\n end_Date: Date,\r\n project_value_in_lakhs: DecimalPipe,\r\n design_fee_in_lakhs: DecimalPipe,\r\n project_brief_description: string,\r\n dpJ_NOP_DE_ID: number,\r\n dpJ_NOP_DED_ID: number,\r\n dpJ_Contract_Type_DE_ID: number,\r\n dpJ_Contract_Type_DED_ID: number,\r\n scope_of_work: string,\r\n built_up_area: number,\r\n site_area: number,\r\n proof_consultant_name: string,\r\n architectural_consultant_name: string,\r\n structural_consultant_name: string,\r\n date_of_LOI: Date,\r\n submission_date_of_project: Date,\r\n //submission_time_of_project : Time,\r\n is_edms_available: string,\r\n scope_of_peer_review: string\r\n division_name: string,\r\n seg_head: string \r\n}\r\n\r\nexport interface IProjectFeatureInput {\r\n projectId: number,\r\n groupId: number,\r\n featureDescription: string\r\n}\r\n\r\nexport interface PeerElementInput {\r\n intProjectID?: number,\r\n intGroupID?: number,\r\n intDEID: number,\r\n intModuleID?: number,\r\n intUID: number\r\n}\r\n\r\nexport interface PeerAllElementInput {\r\n intProjectID: number,\r\n intGroupID: number,\r\n intUID: number\r\n}\r\n\r\nexport interface PeerProjectInput {\r\n intProjectID: number,\r\n intUID: number\r\n}\r\n\r\nexport interface IProjectFeatureOutput {\r\n memberId: number,\r\n memberName: string\r\n}\r\n\r\nexport interface IProjectMemberByRoleInput {\r\n projectId: number,\r\n groupId: number,\r\n roleId: number\r\n}\r\n\r\nexport interface IProjectMemberByRolesInput {\r\n projectId: number,\r\n groupId: number,\r\n roleIds: string\r\n}\r\n\r\nexport interface IProjectMemberByRolesOuput{\r\n roleId:number,\r\n memberId:number,\r\n memberName:string\r\n}\r\n\r\nexport interface IDCIRevisionMaster {\r\n projectId: number,\r\n groupId: number,\r\n stageId: number,\r\n revisionNo: string,\r\n isActive: boolean\r\n}\r\n\r\n","import { RoleFeatureModel } from './RoleFeatureModel';\r\nimport { IOrganizationViewModel } from './OrganizationModel';\r\n\r\nexport interface IProjectMasterViewModel {\r\n project_Id?:number;\r\n project_Code : string;\r\n project_Description : string;\r\n project_Short_Description : string;\r\n job_Code:string\r\n project_Type:string\r\n project_URL?:string\r\n project_Logo_URL?:string\r\n start_Date? : Date\r\n end_Date? : Date\r\n is_Cloud_Storage?:boolean\r\n is_Active:boolean\r\n user_Id : number\r\n iC_Id :number\r\n ic_Description?:string\r\n doc_Number_Format?:string\r\n group_Id ? : number\r\n client? : string\r\n consultant?: string\r\n isoFormatNo?: string\r\n latitude?: number\r\n longitude?:number\r\n }\r\n\r\n export interface IProjectCreateModel{\r\n project : IProjectMasterViewModel,\r\n isImport : boolean,\r\n icList: RoleFeatureModel[],\r\n businessGroups: IOrganizationViewModel[] ;\r\n }\r\n\r\n export interface IEipJobsRequestModel{\r\n doptCode:string,\r\n dtCode:number,\r\n userId:number,\r\n searchText:string,\r\n }\r\n\r\n export interface IEdrcJobsRequestModel{\r\n search_Text:string,\r\n group_Code:string,\r\n }\r\n\r\n export interface IEnableSimilarProjectViewModel {\r\n\r\n From_Project_Id :string\r\n To_Project_Id :string\r\n From_Group_Id :string\r\n To_Group_Id :string\r\n Member_Id? :number\r\n }","export interface ProjectWorkflowStatusOutputModel extends ProjectWorkflowModel {\r\n businessGroup: string,\r\n statusDescription: string,\r\n statusTypeDesc: string,\r\n}\r\nexport interface ProjectWorkflowStatusInputModel extends ProjectWorkflowModel {\r\n member_Id: number,\r\n}\r\n\r\nexport type ProjectWorkflowModel=\r\n{\r\n status_Id: number|null,\r\n status_Type: number|null,\r\n status_Order: number,\r\n projectStatusDesc: string,\r\n sCurveStatusDesc: string,\r\n isActive: boolean,\r\n project_Id : number,\r\n group_Id : number,\r\n insertFlag :boolean\r\n}\r\n\r\nexport interface INumberViewModel {\r\n project_Id: number,\r\n group_Id: number,\r\n module_Id: number,\r\n module_Name: string,\r\n sl_No_Length: number,\r\n is_Active: boolean\r\n }\r\n export interface INumberInputModel{ \r\n project_Id: number,\r\n\tgroup_Id: number,\r\n\tmodule_Id:number,\r\n\tsl_No_Length: number,\r\n\tuserId :number,\r\n\tinput_Type :string,\r\n is_Active : boolean\r\n}","import { IScheduleElementDetails } from \"./ScheduleDefinitionModel\"\r\nimport { StandardOutputModel } from './StandardOutputModel'\r\n\r\nexport class IRevisionCategory {\r\n revCategoryId!: number\r\n revCategory!: string\r\n}\r\nexport class IDelayReason {\r\n delayReasonId!: number\r\n delayReason!: string\r\n}\r\nexport class IScheduleType {\r\n schType_Id!: number\r\n schType_Name!: string\r\n}\r\nexport interface IScheduleDocRevModel {\r\n docId: number,\r\n revisionNo: string,\r\n docStatus: number,\r\n isConfidential: boolean,\r\n printSize: number,\r\n reference?: string,\r\n revisedOn?: string,\r\n reviewedOn?: string,\r\n revisionCategory: number,\r\n revisionType: number,\r\n docAuthorizedBy: number,\r\n docCreatedBy: number,\r\n comments?: string\r\n isFileAttached?: boolean,\r\n qrCodeStatus: boolean,\r\n createdBy: number,\r\n noOfSheets?: number,\r\n isActive: boolean,\r\n DCICodeId?: number\r\n}\r\n\r\nexport interface IScheduleDocModel {\r\n rowNo?: number,\r\n projectId: number,\r\n groupId: number,\r\n docId?: number,\r\n docNo: string,\r\n docTitle: string,\r\n docSerialNo: number | null,\r\n module?: number,\r\n docSetId?: number,\r\n isScheduled?: boolean,\r\n docSheetNo?: string,\r\n userId: number,\r\n MaxProgressLevel?: number\r\n}\r\n\r\nexport interface IScheduleDocElementDetails {\r\n userId: number,\r\n docId: number,\r\n deId: number,\r\n dedId: number,\r\n isActive: boolean\r\n}\r\n\r\nexport interface IScheduleWFPlanDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n docScheduleWFPlanDetails: IScheduleWFPlanStageDetails[],\r\n is_Active: boolean,\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleWFPlanStageDetails {\r\n sort_By: any,\r\n status_Id?: number,\r\n scheduled_On?: string\r\n}\r\n\r\nexport interface IScheduleDocStageDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n docScheduleStageDetails: IScheduleStageId[],\r\n stage_Id?: number,\r\n is_Active: boolean,\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleStageId {\r\n stage_Id?: number\r\n}\r\n\r\nexport interface IScheduleMHDetails {\r\n doc_Id: number,\r\n weightage: number,\r\n e_Man_Hours: number,\r\n d_Man_Hours: number,\r\n boQ_Id?: number,\r\n is_Active: boolean,\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleDocDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n from_Group_Id: number,\r\n to_Group_Id: number,\r\n scheduled_On?: Date,\r\n cL_Id?: number,\r\n schedule_Type: number,\r\n is_Input_Required: boolean,\r\n is_Active: boolean,\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleWorkflowDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n workflow_Id: number,\r\n is_Active: boolean,\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleDocInfo {\r\n doc_Id: number,\r\n revision_No: string,\r\n doc_No: string,\r\n doc_Title: string,\r\n doc_Set_Id?: number,\r\n doc_Set_Name: string,\r\n doc_Status: string,\r\n doc_Status_Id: null | number,\r\n print_Size: string,\r\n print_Size_Id: null | number,\r\n revision_Category: null | number,\r\n authorized_By: string,\r\n created_By: string,\r\n created_On: Date,\r\n reference: null | string,\r\n comments: null | string,\r\n noOfSheets?: number,\r\n stages: null | string,\r\n workflow_Id?: number,\r\n is_Latest: boolean,\r\n is_WF_Started: boolean,\r\n can_Restart_WF: boolean,\r\n has_Message?: boolean,\r\n has_Transmittal?: boolean,\r\n dciScheduleStageDetails: null | IScheduleStageDetails[],\r\n dciScheduleElementDetails: null | any[],\r\n isSelected: boolean,\r\n approved_Tag: boolean,\r\n approved_On: Date,\r\n approval_Date?: Date,\r\n submission_Date?: Date,\r\n isShowSupersedeIcon: boolean,\r\n current_Stage?: string,\r\n current_StageId?: number,\r\n current_Status?: string,\r\n isCompleted?: boolean,\r\n message_Id?: number,\r\n message_Number?: string,\r\n schedule_Type?: number,\r\n is_File_Attached?: boolean,\r\n is_Confidential?: boolean,\r\n doc_Serial_No?: number,\r\n hold?: boolean,\r\n is_On_Hold?: boolean\r\n holded_By?: number,\r\n holded_On?: Date\r\n reason_for_Hold?: string\r\n scheduled_On?: Date\r\n revisedScheduled_On?: Date\r\n}\r\n\r\nexport interface IScheduleStageDetails {\r\n stage_Id: number,\r\n stage_Desc: string,\r\n stage_Short_Desc: string,\r\n scheduled_On: Date\r\n revisedScheduled_On?: Date\r\n}\r\n\r\nexport interface IScheduleDocApprovalDetails {\r\n DocSchApproveDetails: IScheduleDocApprovalDocId[],\r\n approved_Tag: boolean\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleDocApprovalDocId {\r\n doc_Id: number,\r\n revision_No: string\r\n}\r\n\r\nexport interface IReviseScheduleDateDocModel {\r\n docId: number,\r\n revisionNo: string,\r\n stageId?: number\r\n}\r\nexport interface IScheduleDateUpdateDetails {\r\n docSchDateDetail: IReviseScheduleDateDocModel[],\r\n revisedDate: string\r\n userId: number\r\n}\r\n\r\nexport interface IScheduleDocUploadStatusModel {\r\n rowNo: number,\r\n docNo: string,\r\n revisionNo: string,\r\n errors?: string[],\r\n status?: boolean,\r\n is_Created?: boolean\r\n}\r\n\r\nexport interface IDCIBulkSupersedeStatusModel {\r\n slno: number,\r\n docNo: string,\r\n docTitle: string,\r\n revisionNo: string,\r\n details?: string,\r\n status?: boolean\r\n}\r\n\r\nexport interface IScheduleISODocUploadDetailsModel {\r\n rowNo: number,\r\n docNo: string,\r\n docTitle: string,\r\n printSize: string,\r\n noOfSheets: string,\r\n category: string,\r\n revisionNo: string,\r\n scheduled_On: string,\r\n comments: string,\r\n errors: string[] | undefined,\r\n status: boolean | undefined\r\n}\r\n\r\nexport interface IScheduleBulkInsertModel {\r\n isStandardDrawingDocument: boolean,\r\n dciMasterDetails: IScheduleDocModel,\r\n dciRevDetails: IScheduleDocRevModel,\r\n dciSchDetails: IScheduleDocDetails,\r\n dciElementDetails: IScheduleElementDetails | null,\r\n dciDocScheduleWFPlanDetails?: IScheduleWFPlanDetails | null,\r\n dciDocSchStageDetails?: IScheduleDocStageDetails | null,\r\n dciDocSchMHDetails: IScheduleMHDetails,\r\n dciDocSchWorkflowDetails?: IScheduleWorkflowDetails | null,\r\n\r\n}\r\n\r\nexport interface SDLinkModel {\r\n intProjectId: number,\r\n intGroupID: number,\r\n strjsonDocID: string,\r\n strjsonElement : string,\r\n intWFID: number,\r\n intApproval: number,\r\n intReleaseId: number,\r\n intUID: number\r\n}\r\n\r\nexport interface StrjsonDocIDModel {\r\n doc_id: number\r\n}\r\n\r\nexport interface DCIToStartWorkflow_Output {\r\n workflowId: number\r\n roleId: number,\r\n roleDescription: string,\r\n selectedMemberId: number,\r\n roleMembersMapping: roleMembersMappingModel[];\r\n}\r\n\r\nexport interface roleMembersMappingModel {\r\n memberId: number,\r\n memberName: string,\r\n}\r\n\r\nexport interface DCIToStartWorkflow_Input {\r\n ProjectId: number,\r\n GroupId: number,\r\n jsonDCIWFMapping: startWFInput[]\r\n}\r\n\r\nexport interface startWFInput {\r\n documentId: number,\r\n revisionNumber: string,\r\n workflowId: number\r\n}\r\n\r\nexport type StartWFsaveInputModel = {\r\n documentId: number,\r\n revisionNumber: string,\r\n roleId: number,\r\n memberId: number,\r\n}\r\n\r\nexport interface WFTransmittalInputModel {\r\n doc_Id: number,\r\n revision_No: string,\r\n task_Id: number\r\n}\r\n\r\nexport type WFTransmittalOutputModel = {\r\n doc_Id: number,\r\n revision_No: string,\r\n doc_No: string,\r\n doc_Title: string,\r\n integration_Type: number,\r\n transmittal_Page: string,\r\n task_Id: number\r\n}\r\n\r\nexport interface IDciWFStageDetails {\r\n project_Id: number,\r\n workflow_Id: number\r\n}\r\n\r\nexport interface IDCISupersedeRevDetailsModel {\r\n docId: number,\r\n userId: number,\r\n printSize: number,\r\n docStatus: number,\r\n revCategory: number,\r\n comments: string,\r\n noOfSheets?: number\r\n}\r\n\r\nexport interface IDCISupersedeRevInputModel {\r\n docId: number,\r\n revisionNo: string,\r\n workflowId: number\r\n}\r\n\r\nexport interface IDCISupersedeRevOutputModel {\r\n docId: number,\r\n revisionNo: string,\r\n canRestartWF: boolean\r\n}\r\n\r\nexport interface IDCISupersedeRevWFInputModel {\r\n docId: number,\r\n revisionNo: string,\r\n oldWorkflowId: number,\r\n workflowId: number\r\n}\r\n\r\nexport interface IDCIPostWorkflowSupersedeModel {\r\n docId: number,\r\n revisionNo: string,\r\n nextRevisionNo: string,\r\n workflowId: number,\r\n createdBy: number,\r\n printSize: number,\r\n docStatus: number,\r\n revCategory: number,\r\n noOfSheets: number,\r\n comments: string,\r\n stageDetails: ILatestStageDetails[]\r\n}\r\nexport interface IDeleteWorkflowInputModel {\r\n doc_id: number,\r\n task_sl_no: number,\r\n tran_type: string,\r\n user_id: number\r\n}\r\nexport interface IWBSInputModel {\r\n job_Code: string\r\n}\r\nexport interface IDeliverableInputModel {\r\n job_Code: string,\r\n wBS_Code: string\r\n}\r\n\r\nexport interface IWBSOutputModel {\r\n job_Code: string\r\n pBS_CODE: string\r\n wBS_Description: string\r\n}\r\n\r\nexport interface ICPCDocOutputModel {\r\n WBS_Code: string\r\n Deliverable_Code: number\r\n Expected_Planned_Date: Date\r\n Actual_Start_Date: Date\r\n Actual_END_Date: Date\r\n}\r\n\r\nexport interface ISDInputModel {\r\n projectId: number\r\n searchText: string\r\n\r\n}\r\n\r\nexport interface ISDOutputModel {\r\n doc_Id: number\r\n doc_No: string\r\n doc_Title: string\r\n doc_Serial_No: number\r\n revision_No: string\r\n print_Size: string\r\n isFileAttached: string\r\n revised_On: Date\r\n reviewed_On: Date\r\n discipline: string\r\n category: string\r\n sub_Division: string\r\n doc_Name: string\r\n file_link: string\r\n}\r\n\r\nexport interface StdDciGridOutputModel {\r\n doc_Id: number\r\n revision_No: string\r\n doc_No: string\r\n doc_Title: string\r\n doc_Status: string\r\n print_Size: string\r\n print_Size_Id: number\r\n authorized_By: string\r\n created_By: Date\r\n created_On: string\r\n discipline: string\r\n is_File_Attached: boolean\r\n group_Id: number\r\n doc_Authorized_By: string\r\n current_Status: string\r\n is_Latest?: boolean\r\n}\r\n\r\nexport interface IWBSOutputModel {\r\n job_Code: string\r\n pBS_CODE: string\r\n wBS_Description: string\r\n}\r\n\r\nexport interface ICPCDocOutputModel {\r\n WBS_Code: string\r\n Deliverable_Code: number\r\n Expected_Planned_Date: Date\r\n Actual_Start_Date: Date\r\n Actual_END_Date: Date\r\n}\r\n\r\nexport interface ICPCInputModel {\r\n projectId: number\r\n docId: number\r\n wBSCode: string | null\r\n deliverableCode: number | null\r\n memberId: number\r\n}\r\n\r\nexport class ILatestStageDetails {\r\n doc_Id: number | undefined\r\n revision_No!: string\r\n status_Id!: number\r\n scheduled_On!: string | null\r\n revisedScheduled_On?: string | null\r\n is_Active!: boolean\r\n Stage_Short_Desc!: string\r\n Stage_Desc!: string\r\n maxScheduled_On?: string | null\r\n minScheduled_On?: string | null\r\n updatedScheduled_On?: string\r\n isUpdatable!: boolean\r\n}\r\n\r\nexport interface IDCIPostBulkSupersedeModel {\r\n index: number,\r\n doc_Id: number,\r\n doc_No: string,\r\n doc_Title: string,\r\n current_Stage: string,\r\n current_StageId: number,\r\n revision_No: string,\r\n supersede_Revision_No: string,\r\n revision_Category: number,\r\n released_For: number,\r\n print_Size: number,\r\n schedule_Type: number,\r\n parentWorkflow: number,\r\n workflow?: number,\r\n noOfSheets: number,\r\n dciScheduleStageDetails: IScheduleStageDetails[],\r\n comments: string,\r\n ccnTypeDetails: any[],\r\n ccnType: number | null,\r\n tagCCN: number,\r\n category: number,\r\n draftingManHours: number,\r\n designManHours: number,\r\n latestStageDetails: any[],\r\n is_WF_Started: boolean,\r\n isCCNActive: boolean,\r\n}\r\n\r\n","export class StandardOutputModel {\r\n public result!: string\r\n public successCode!: number \r\n public successMessage!: string \r\n\r\n}","import { IProjectElementDetailsOutput } from './ProjectElementsModel';\r\n\r\nexport interface ITransmittalSerialNoInputModel {\r\n projectId: number\r\n groupId: number | undefined\r\n moduleId: number\r\n elementDetails: ITransmittalElementSLNoInputModel[] |(ITransmittalElementSLNoInputModel | undefined)[]\r\n}\r\n\r\nexport interface ITransmittalElementSLNoInputModel {\r\n deId: number\r\n deDescription: string\r\n dedId: number\r\n dedDescription: string\r\n dedShortDescription: string\r\n sortBy: number\r\n}\r\n\r\nexport interface ITransmittalMsgInputModel {\r\n inputType: string,\r\n project_Id: number | undefined,\r\n message_Id?: number | undefined,\r\n parent_Message_Id?: number | undefined,\r\n message_Type: number | undefined,\r\n message_Subject: string,\r\n message_Body: string,\r\n message_Number: string | null,\r\n message_Serial_Number: number | null,\r\n message_Category: number,\r\n response_Type?: number,\r\n respond_On?: string|null,\r\n issue_Reason?: number,\r\n discipline?: number,\r\n cust_Ref_No?: string,\r\n has_Attachments: boolean,\r\n is_Confidential: boolean,\r\n is_Mail_Sent: boolean,\r\n sent_On: Date | null,\r\n is_Active: boolean,\r\n userId: number | undefined,\r\n message_Note? : string |null\r\n}\r\n\r\nexport interface ITransmittalMsgReceiverInput {\r\n message_Id: number;\r\n transmittalFromDetails: IReceiverInput[];\r\n transmittalToDetails: IReceiverInput[];\r\n transmittalCcDetails: IReceiverInput[];\r\n is_Active: boolean;\r\n userId: number | undefined;\r\n}\r\n\r\nexport interface IReceiverInput {\r\n member_Id: number;\r\n receiver_Type: number;\r\n receiver_Group?: number|null|undefined;\r\n sort_By?: number;\r\n member_Name?: string;\r\n}\r\n\r\nexport interface ITransmittalGroupMemberInput {\r\n message_Id: number,\r\n distributionMemberDetails: IDistributionMemberDetails[],\r\n is_Active: true,\r\n userId: number | undefined\r\n}\r\n\r\nexport interface IDistributionMemberDetails {\r\n group_Member: string,\r\n group_Id: number,\r\n quantity: number,\r\n category: string,\r\n copy_Type: string,\r\n address?: string|null,\r\n remarks?: string\r\n\r\n}\r\n\r\nexport interface ITransmittalMsgDocumentInput {\r\n message_Id: number,\r\n transmittalDocumentMessageDetails: ITransmittalDocumentMsgDetails[],\r\n is_Active: boolean,\r\n userId: number | undefined\r\n}\r\n\r\nexport interface ITransmittalDocumentMsgDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n response?: number,\r\n response_Remarks: string\r\n}\r\n\r\nexport interface ITransmittalDocumentInput {\r\n message_Id: number,\r\n transmittalDocumentDetails: ITransmittalDocumentDetails[],\r\n is_Active: boolean,\r\n userId: number | undefined\r\n}\r\n\r\nexport interface ITransmittalDocumentDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n quantity?: number,\r\n category?: number,\r\n doc_Type?: number,\r\n remarks: string\r\n}\r\n\r\nexport interface ITransmittalDocumentCopyInput {\r\n message_Id: number,\r\n transmittalDocumentCopyDetails: ITransmittalDocumentCopyDetails[],\r\n is_Active: boolean,\r\n userId: number,\r\n dedId: number\r\n}\r\n\r\nexport interface ITransmittalDocumentCopyDetails {\r\n doc_Id: number,\r\n revision_No: string,\r\n copy_Type?: number,\r\n no_of_Copies?: number\r\n}\r\n\r\nexport interface ITransmittalDocumentElementInput {\r\n elementDetailsMapping: ITransmittalDocumentElementDetails[],\r\n}\r\n\r\nexport interface ITransmittalDocumentElementDetails {\r\n userId: number | undefined,\r\n messageId: number,\r\n deId: number,\r\n dedId: number,\r\n isActive: boolean\r\n}\r\n\r\nexport interface ITransmittalDocViewModel {\r\n doc_Id: number;\r\n revision_No: string;\r\n title: string;\r\n document_No: string;\r\n authorized_By: string;\r\n quantity?: number;\r\n category?: IProjectElementDetailsOutput;\r\n type?: IProjectElementDetailsOutput[];\r\n remarks: string;\r\n isAttachemtUploded?: boolean;\r\n selectedType?: number[];\r\n selectedCategory?: number;\r\n scheduleType?: number;\r\n workflowId?: number;\r\n task_Id?:string;\r\n}\r\n\r\nexport interface ITransmittalViewDocDetails {\r\n authorised_By: string;\r\n category_Description?: string;\r\n category_Short_Description?: string;\r\n created_By?: string;\r\n doc_Id: number;\r\n doc_No: string;\r\n doc_Title: string;\r\n quantity: number\r\n remarks: string;\r\n revision_No: string;\r\n type?: IProjectElementDetailsOutput[];\r\n type_Description?: string;\r\n type_Short_Description?: string;\r\n scheduleType?:number;\r\n task_Id?:string\r\n}\r\n\r\nexport interface ITransmittalMailDetails {\r\n from_List: string,\r\n to_List: string,\r\n cc_List: string,\r\n project_Code: string,\r\n discipline: string,\r\n mail_Subject: string,\r\n mail_Body: string,\r\n message_Id: number\r\n}\r\n\r\nexport interface ITransmittalMasterInput {\r\n project_id: number | null;\r\n message_Id?: number;\r\n}\r\n\r\nexport interface ITransmittalDetailsModel {\r\n category_Description?: any;\r\n created_On: Date;\r\n cust_Ref_No?: any;\r\n discipline: number;\r\n discipline_Description?: any;\r\n has_Attachments: boolean;\r\n is_Confidential: boolean;\r\n is_Mail_Sent: boolean;\r\n message_Id: number;\r\n message_Number: string;\r\n message_Serial_Number: number;\r\n message_Subject: string;\r\n message_Type: number;\r\n project_Id: number;\r\n respond_On?: Date;\r\n response_Type?: number;\r\n isSelected?: boolean;\r\n documentNo?: string;\r\n message_Note? : string;\r\n isDtnReleased?: boolean; \r\n}\r\n\r\nexport interface ITransmittalDocumentAttachmentModel {\r\n docId: number\r\n revisionNo: string,\r\n fileName: string,\r\n fileExtension: string,\r\n fileSize: number\r\n}\r\n\r\nexport interface ITransmittalSignedDocumentsModel {\r\n msgId: number | undefined,\r\n projectId: number | undefined,\r\n signedDocuments: ITransmittalDocumentAttachmentModel[],\r\n createdBy: number | undefined\r\n}\r\n","import { IProjectElementDetailsOutput } from \"./ProjectElementsModel\";\r\n\r\nexport interface ITransmittalTemplateModel {\r\n project_Id: number;\r\n group_Id: number;\r\n template_Id?: number|null;\r\n template_Name: string;\r\n template_Remarks?: string;\r\n template_Subject: string;\r\n quantity?: number;\r\n category?: number;\r\n is_Active: boolean;\r\n userId: number;\r\n}\r\n\r\nexport interface ITransmittalReceiverDetails {\r\n template_Id: number;\r\n receiverFromDetails: IReceiverDetails[];\r\n receiverToDetails: IReceiverDetails[];\r\n receiverCcDetails: IReceiverDetails[];\r\n is_Active: boolean;\r\n userId: number;\r\n}\r\n\r\nexport interface IReceiverDetails {\r\n member_Id: number;\r\n receiver_Type: number;\r\n receiver_Group?: number|null;\r\n sort_By?: number;\r\n member_Name?: string;\r\n}\r\n\r\nexport interface ITransmittalGroupViewModel {\r\n receiver_Group: number | null | undefined;\r\n members: ITransmittalMemberModel[];\r\n quantity?: number;\r\n category: IProjectElementDetailsOutput;\r\n type?: IProjectElementDetailsOutput[];\r\n remarks: string;\r\n}\r\n\r\nexport interface ITransmittalMemberModel {\r\n eMailId: string;\r\n memberId: number;\r\n memberName?: string;\r\n memberShortName?: string;\r\n mobileNo: string;\r\n staffPSNo: string;\r\n groupBy?: number|null|undefined;\r\n groupName?: string;\r\n address?: string;\r\n}\r\n\r\nexport interface ITransmittalDistributionModel {\r\n project_Id : number;\r\n template_Id : number;\r\n DistributionGroupDetails: IDistributionDetails[];\r\n is_Active: boolean;\r\n userId: number;\r\n}\r\n\r\nexport interface IDistributionDetails{\r\n receiver_Group: number;\r\n quantity: number;\r\n category: number;\r\n copy_Type: number;\r\n remarks: string;\r\n}\r\nexport interface ITransmittalInputModel {\r\n project_Id : number | undefined;\r\n group_Id : number | undefined;\r\n template_Id?: string | number | null;\r\n}\r\n\r\nexport interface ITransmittalInputDetailModel {\r\n template_Id: string | number | null;\r\n}\r\n\r\nexport interface ITransmittalDistributionViewModel {\r\n member_Name : string;\r\n receiver_Group : number;\r\n category: number;\r\n copy_Type: number;\r\n quantity: number;\r\n remarks: string;\r\n category_Description: string;\r\n category_Short_Description: string;\r\n type_Description: string;\r\n type_Short_Description: string;\r\n}","import { StandardOutputModel } from \"./StandardOutputModel\"\r\n\r\n//All fields should be mapped in GetCurrentUserDetails API Response(Decryption process will be there)\r\n export class UserDetailsViewModel extends StandardOutputModel {\r\n public memberId : number | undefined\r\n public memberName : string| undefined\r\n public memberShortName : string| undefined\r\n public companyCode? : number\r\n public reportingTo? : number\r\n public reportingToName? : string\r\n public staffPSNo? : string\r\n public eccWebLogin? : string\r\n public designation? : string\r\n public eMailId? : string\r\n public mobileNo?: string\r\n public isInternal? : boolean\r\n public eipUserId? : number\r\n public isActive? : boolean\r\n public groupId? : number\r\n public jwtToken? : string\r\n public loginAuditNumber? : string\r\n public isDuplicateLogin? : boolean\r\n }","\r\nexport interface IWorkflowStatusViewModel {\r\n doc_No: string,\r\n doc_Title: string,\r\n doc_Id: number,\r\n workflow_Id: number,\r\n workflow_Task: string,\r\n revision_No: string,\r\n member_Name: string,\r\n assigned_On: string,\r\n completed_On: string,\r\n status: string,\r\n action_Status: string\r\n}\r\n\r\nexport interface IWorkflowStatusInputModel {\r\n Project_Id: number|null,\r\n Group_Id: number|null,\r\n discipline_Id? : number|null,\r\n structure_Id? : number|null,\r\n drg_Type?:string|null,\r\n Search_Text: string|null,\r\n isLatest: boolean\r\n}\r\n\r\nexport interface IWorkflowStatusCLOutputModel {\r\n clId: number,\r\n clName: string,\r\n clRevisionNo: number,\r\n clShortName: string\r\n documentId: number,\r\n documentNumber: string,\r\n documentRevisionNo: string,\r\n documentTitle: string,\r\n memberId: number,\r\n taskSerialNumber: number,\r\n uploadedBy: number,\r\n uploadedByName: string,\r\n uploadedOn: string,\r\n workflowId: number\r\n}\r\nexport interface IWorkflowStatusCCNViewModel {\r\n ccnId: number,\r\n ccnNo: string,\r\n ccnTitle: string,\r\n ccnDescription: string,\r\n ccnRevNo: number,\r\n ccN_Date: string,\r\n discipline: string,\r\n orginator: string,\r\n man_Hour: number\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthCallbackComponent } from './CommonComponents/authcallback';\r\nimport { AuthLayoutComponent } from './Modules/layouts/auth-layout/auth-layout.component';\r\nimport { AppHomeLayoutComponent } from './Modules/layouts/app-layout/app-home-layout.component';\r\nimport { DashboardLayoutComponent } from './Modules/layouts/dashboard-layout/dashboard-layout.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'authcallback',\r\n component: AuthCallbackComponent\r\n },\r\n\r\n {\r\n path: '',\r\n redirectTo: 'authentication',\r\n pathMatch: 'full'\r\n },\r\n\r\n {\r\n path: '',\r\n component: AuthLayoutComponent,\r\n children: [{\r\n path: '',\r\n loadChildren:() => import(\"../app/Modules/layouts/auth-layout/auth-layout.module\").then(m=>m.AuthLayoutModule)\r\n }\r\n ]\r\n },\r\n {\r\n path: '',\r\n component: AppHomeLayoutComponent,\r\n children: [{\r\n path: '',\r\n loadChildren:() => import(\"../app/Modules/layouts/app-layout/app-layout.module\").then(m=>m.AppLayoutModule)\r\n }]\r\n },\r\n {\r\n path: '',\r\n component: DashboardLayoutComponent,\r\n children: [{\r\n path: '',\r\n loadChildren: () => import(\"../app/Modules/layouts/dashboard-layout/dashboard-layout.module\").then(m=>m.DashboardLayoutModule)\r\n }]\r\n }\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","\r\nimport { Router } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n constructor(public _router: Router) { }\r\n ngOnInit() {\r\n }\r\n}\r\n","","/*Import modules to build Angular App*/\r\nimport { DatePipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, ErrorHandler, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';\r\n\r\n/*Import modules to deal with Kendo controls*/\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { MenuModule } from '@progress/kendo-angular-menu';\r\nimport { ScrollViewModule } from '@progress/kendo-angular-scrollview';\r\n\r\n/*Import service reference*/\r\nimport { AdalService } from 'adal-angular4';\r\nimport { LoginService } from './Service/login.service';\r\nimport { CommonService } from './Service/Common.service';\r\nimport { RestApiService } from './Service/rest-api.service';\r\nimport { EncryptDecryptService } from './Service/encrypt-decrypt.service';\r\nimport { GlobalErrorHandler } from './Service/Global/GlobalErrorHandler.service';\r\nimport { GlobalHttpInterceptor } from './Service/Global/GlobalHttpInterceptor.service';\r\nimport { ProjectInfoService } from './Service/project-info/project-info.service';\r\n\r\n/*Import custom outside library reference*/\r\nimport { AppComponent } from './app.component';\r\nimport { AuthGuard } from './Service/Global/auth.guard';\r\nimport { environment } from 'src/environments/environment';\r\nimport { EIPMessageBoxModule, EIPMessageBoxComponent } from 'eipmessage-box';\r\nimport { EIPToastAlertModule, EIPToastAlertComponent } from 'eiptoast-alert';\r\nimport { EIPAutoCompleteModule } from 'eipauto-complete';\r\nimport { EIPMultiSelectAutoCompleteModule } from 'eipmulti-select-auto-complete';\r\nimport { EipCalculatorModule } from 'eip-calculator';\r\nimport { EipNotesModule } from 'eip-notes';\r\nimport { EDMSCommonModule } from './edmscommon.module';\r\nimport { EIPGeneralCartModule } from 'eipgeneral-cart';\r\nimport { MaterialModule } from './material.module';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { JwtHelperService, JWT_OPTIONS } from '@auth0/angular-jwt';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { NgImageSliderModule } from 'ng-image-slider';\r\n\r\n/*Import custom inside project library reference*/\r\nimport { ProjectElementsComponent } from './CommonComponents/project-elements/project-elements.component';\r\nimport { AuthLayoutComponent } from './Modules/layouts/auth-layout/auth-layout.component';\r\nimport { AppHomeLayoutComponent } from './Modules/layouts/app-layout/app-home-layout.component';\r\nimport { EdmsCommonHeaderComponent } from './CommonComponents/edms-common-header/edms-common-header.component';\r\nimport { HeaderComponent } from './CommonComponents/header/header.component';\r\nimport { FooterComponent } from './CommonComponents/footer/footer.component';\r\nimport { AuthCallbackComponent } from './CommonComponents/authcallback';\r\nimport { HelpdeskSupportDetailsComponent } from './CommonComponents/header/helpdesk-support-details/helpdesk-support-details.component';\r\nimport { HeaderCalculatorComponent } from './CommonComponents/header/header-calculator/header-calculator.component';\r\nimport { HeaderNotesComponent } from './CommonComponents/header/header-notes/header-notes.component';\r\nimport { DashboardLayoutComponent } from './Modules/layouts/dashboard-layout/dashboard-layout.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n/*Import child component reference*/\r\n\r\n/*Import directive reference*/\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ProjectElementsComponent,\r\n EdmsCommonHeaderComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n AuthCallbackComponent,\r\n AuthLayoutComponent,\r\n AppHomeLayoutComponent,\r\n HelpdeskSupportDetailsComponent,\r\n HeaderCalculatorComponent,\r\n HeaderNotesComponent,\r\n DashboardLayoutComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n DropDownsModule,\r\n DateInputsModule,\r\n ButtonsModule,\r\n GridModule,\r\n ExcelModule,\r\n DialogsModule,\r\n MenuModule,\r\n InputsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n EIPAutoCompleteModule,\r\n EIPMultiSelectAutoCompleteModule,\r\n EipCalculatorModule,\r\n EipNotesModule,\r\n EIPMessageBoxModule,\r\n MaterialModule,\r\n EIPToastAlertModule,\r\n EDMSCommonModule,\r\n EIPGeneralCartModule,\r\n PopupModule,\r\n MatTabsModule,\r\n MatSnackBarModule,\r\n NgImageSliderModule,\r\n ScrollViewModule,\r\n FontAwesomeModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [\r\n DatePipe,\r\n AuthGuard,\r\n ProjectInfoService,\r\n CommonService,\r\n EncryptDecryptService,\r\n LoginService,\r\n AdalService,\r\n RestApiService,\r\n EIPMessageBoxComponent,\r\n JwtHelperService,\r\n { provide: JWT_OPTIONS, useValue: JWT_OPTIONS },\r\n { provide: HTTP_INTERCEPTORS, useClass: GlobalHttpInterceptor, multi: true },\r\n { provide: ErrorHandler, useClass: GlobalErrorHandler },\r\n { provide: 'environment', useValue: environment }\r\n ],\r\n bootstrap: [AppComponent],\r\n entryComponents: [EIPMessageBoxComponent, EIPToastAlertComponent, HelpdeskSupportDetailsComponent, HeaderCalculatorComponent, HeaderNotesComponent],\r\n})\r\nexport class AppModule { }\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { EIPAutoCompleteModule } from \"eipauto-complete\";\r\nimport { EIPDateRangePickerModule } from \"eipdate-range-picker\";\r\nimport { EdmsAutoCompleteComponent } from \"./CommonComponents/autocomplete-component/autocomplete.component\";\r\nimport { DynamicFieldDirective } from \"./CommonComponents/dynamic-form/components/dynamic-field/dynamic-field.directive\";\r\nimport { DynamicFormComponent } from \"./CommonComponents/dynamic-form/components/dynamic-form/dynamic-form.component\";\r\nimport { EipDateRangeComponent } from \"./CommonComponents/dynamic-form/components/EIPDateRange/eipdaterange.component\";\r\nimport { InputComponent } from \"./CommonComponents/dynamic-form/components/input/input.component\";\r\nimport { SelectComponent } from \"./CommonComponents/dynamic-form/components/select/select.component\";\r\nimport { EdmsCartComponent } from \"./CommonComponents/edms-cart/edms-cart.component\";\r\nimport { DragAndDropDirective } from \"./CommonComponents/file-upload/drag-and-drop.directive\";\r\nimport { FileUploadComponent } from \"./CommonComponents/file-upload/file-upload.component\";\r\nimport { LoaderComponent } from \"./CommonComponents/loader/loader.component\";\r\nimport { OptionsScrollDirective } from \"./CommonComponents/optionsscroll/options-scroll.directive\";\r\nimport { MaterialModule } from \"./material.module\";\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { EIPGridSettingsModule } from 'eipgrid-settings';\r\nimport { EIPTooltipModule } from 'eip-tooltip';\r\nimport { EIPToastAlertModule } from \"eiptoast-alert\";\r\nimport { EipDatePickerComponent } from \"./CommonComponents/dynamic-form/components/EIPDatePicker/eipdatepicker.component\";\r\nimport { EIPDatePickerModule } from \"eipdate-picker\";\r\nimport { FileListComponent } from './CommonComponents/file-list/file-list.component';\r\nimport { LabelComponent } from \"./CommonComponents/dynamic-form/components/label/label.component\";\r\nimport { CreateCommunicationComponent } from './CommonComponents/create-communication/create-communication.component';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { MenuModule } from '@progress/kendo-angular-menu';\r\nimport { EditorModule } from '@progress/kendo-angular-editor';\r\nimport { CreateMessageComponent } from './Modules/communication/create-message/create-message.component';\r\nimport { DocumentCartComponent } from './Modules/communication/document-cart/document-cart.component';\r\nimport { MessageCartComponent } from './Modules/communication/message-cart/message-cart.component';\r\nimport { EIPGeneralCartModule } from 'eipgeneral-cart';\r\nimport { ScheduleViewComponent } from './Modules/engineering-schedule/schedule-view/schedule-view.component';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { ForgeViewerComponent } from \"./CommonComponents/forge-viewer/forge-viewer.component\";\r\nimport { CommonCartComponent } from \"./Modules/communication/common-cart/common-cart.component\";\r\nimport { DistributionListComponent } from \"./Modules/communication/distribution-list/distribution-list.component\";\r\nimport { TreeViewModule } from \"@progress/kendo-angular-treeview\";\r\nimport { DocumentViewComponent } from \"./Modules/repositorydocument/document-view/document-view.component\";\r\nimport { EmployeeCartDialogComponent } from './Modules/repositorydocument/employee-cart-dialog/employee-cart-dialog.component';\r\nimport { FileCompareComponent } from \"./CommonComponents/file-compare-component/file-compare.component\";\r\nimport { ScheduleWorkflowhistoryComponent } from \"./Modules/engineering-schedule/schedule-workflowhistory/schedule-workflowhistory.component\";\r\nimport { CreateTransmittalComponent } from './Modules/transmittal/transmittal-creation/transmittal-creation.component';\r\nimport { TransmittalViewComponent } from './Modules/transmittal/transmittal-view/trasnsmittal-view.component';\r\nimport { DocumentWFCartComponent } from './Modules/transmittal/document-cart/document-cart.component';\r\nimport { TransmittalTemplateDirective } from './Modules/transmittal/transmittal-template/transmittal-template.directive';\r\nimport { CommonTransmittalTemplateComponent } from './Modules/transmittal/templates/template_common/transmittal-template-common.component';\r\nimport { HCITransmittalTemplateComponent } from './Modules/transmittal/templates/hci-transmittal/hci-transmittal-template.component';\r\nimport { DocumentViewGridComponent } from \"./Modules/transmittal/document-grid/document-view-grid/document-view-grid.component\";\r\nimport { DocumentMessageViewComponent } from 'src/app/CommonComponents/document-message-grid/document-message-view/document-message-view.component';\r\nimport { EIPMultiSelectAutoCompleteModule } from \"eipmulti-select-auto-complete\";\r\nimport { BulkDTNComponent } from './Modules/transmittal/bulkdtn/bulkdtn.component';\r\nimport { DTNReleaseComponent } from './Modules/transmittal/dtnrelease/dtnrelease.component';\r\nimport { DciFilterComponent } from \"./CommonComponents/dci-filter/dci-filter.component\";\r\nimport { DelayreasonComponent } from \"./Modules/transmittal/delay-reason/delayreason/delayreason.component\";\r\nimport { DynamickendoGridComponent } from './CommonComponents/Dynamic-Kendo-UI/Dynamic-kendo-Grid.component';\r\nimport { DynamickendoService } from './CommonComponents/Dynamic-Kendo-UI/Service/Dynamic-kendo.service';\r\nimport { ScheduleDocumentRevisionHistoryComponent } from './Modules/engineering-schedule/schedule-document-revision-history/schedule-document-revision-history.component';\r\nimport { ScheduleDocumentMailListComponent } from './Modules/engineering-schedule/schedule-document-mail-list/schedule-document-mail-list.component';\r\nimport { DatepickerFilterComponent } from './CommonComponents/datepicker-filter/datepicker-filter.component';\r\nimport { DropdownFilterComponent } from './CommonComponents/dropdown-filter/dropdown-filter.component';\r\n\r\n@NgModule( \r\n {\r\n declarations: [\r\n DynamicFormComponent,\r\n SelectComponent,\r\n InputComponent,\r\n LabelComponent,\r\n EipDateRangeComponent,\r\n EipDatePickerComponent,\r\n FileUploadComponent,\r\n FileListComponent,\r\n DynamicFieldDirective,\r\n DragAndDropDirective,\r\n LoaderComponent,\r\n OptionsScrollDirective,\r\n EdmsAutoCompleteComponent,\r\n EdmsCartComponent, \r\n CreateCommunicationComponent,\r\n CreateMessageComponent,\r\n DocumentCartComponent,\r\n MessageCartComponent,\r\n ScheduleViewComponent,\r\n ForgeViewerComponent, \r\n DistributionListComponent, \r\n CommonCartComponent,\r\n DocumentViewComponent,\r\n EmployeeCartDialogComponent,\r\n FileCompareComponent,\r\n ScheduleWorkflowhistoryComponent,\r\n CreateTransmittalComponent,\r\n TransmittalViewComponent,\r\n DocumentWFCartComponent,\r\n TransmittalTemplateDirective,\r\n CommonTransmittalTemplateComponent,\r\n HCITransmittalTemplateComponent,\r\n DocumentViewGridComponent,\r\n DocumentMessageViewComponent,\r\n BulkDTNComponent, \r\n DTNReleaseComponent,\r\n DciFilterComponent,\r\n DelayreasonComponent,\r\n DynamickendoGridComponent,\r\n ScheduleDocumentRevisionHistoryComponent,\r\n ScheduleDocumentMailListComponent,\r\n DatepickerFilterComponent,\r\n DropdownFilterComponent \r\n ],\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n MaterialModule,\r\n EIPAutoCompleteModule,\r\n EIPMultiSelectAutoCompleteModule,\r\n EIPDateRangePickerModule,\r\n EIPDatePickerModule,\r\n GridModule,\r\n InputsModule,\r\n ButtonsModule,\r\n DialogsModule,\r\n DropDownsModule,\r\n DateInputsModule,\r\n ExcelModule,\r\n EIPGridSettingsModule,\r\n EIPTooltipModule,\r\n EIPToastAlertModule,\r\n EditorModule,\r\n PopupModule,\r\n MenuModule,\r\n TreeViewModule,\r\n EIPGeneralCartModule,\r\n MatSnackBarModule,\r\n\r\n ],\r\n entryComponents: [\r\n FileUploadComponent,\r\n FileListComponent,\r\n SelectComponent,\r\n InputComponent,\r\n EipDateRangeComponent,\r\n EipDatePickerComponent,\r\n LabelComponent,\r\n CreateCommunicationComponent,\r\n CreateMessageComponent,\r\n DocumentCartComponent,\r\n MessageCartComponent,\r\n ForgeViewerComponent,\r\n CommonCartComponent,\r\n ScheduleWorkflowhistoryComponent,\r\n EmployeeCartDialogComponent,\r\n FileCompareComponent,\r\n CreateTransmittalComponent,\r\n TransmittalViewComponent,\r\n DocumentWFCartComponent,\r\n CommonTransmittalTemplateComponent,\r\n HCITransmittalTemplateComponent,\r\n DocumentViewGridComponent,\r\n DocumentMessageViewComponent,\r\n BulkDTNComponent, \r\n DTNReleaseComponent,\r\n DelayreasonComponent,\r\n DynamickendoGridComponent,\r\n ScheduleDocumentMailListComponent \r\n ],\r\n exports: [\r\n DynamicFormComponent,\r\n FileUploadComponent,\r\n FileListComponent,\r\n DynamicFieldDirective,\r\n SelectComponent,\r\n InputComponent,\r\n LabelComponent,\r\n EipDateRangeComponent,\r\n EipDatePickerComponent,\r\n FileUploadComponent,\r\n DragAndDropDirective,\r\n LoaderComponent,\r\n EdmsAutoCompleteComponent, \r\n EdmsCartComponent,\r\n CreateCommunicationComponent,\r\n ScheduleViewComponent,\r\n ForgeViewerComponent,\r\n DistributionListComponent,\r\n CommonCartComponent,\r\n DocumentViewComponent,\r\n FileCompareComponent,\r\n CreateTransmittalComponent,\r\n TransmittalViewComponent,\r\n DocumentWFCartComponent,\r\n TransmittalTemplateDirective,\r\n CommonTransmittalTemplateComponent,\r\n HCITransmittalTemplateComponent,\r\n DocumentViewGridComponent,\r\n DocumentMessageViewComponent,\r\n BulkDTNComponent,\r\n DTNReleaseComponent,\r\n DciFilterComponent,\r\n DelayreasonComponent,\r\n DynamickendoGridComponent,\r\n ScheduleDocumentRevisionHistoryComponent,\r\n ScheduleDocumentMailListComponent,\r\n DatepickerFilterComponent,\r\n DropdownFilterComponent \r\n ],\r\n providers: [DynamickendoService]\r\n }\r\n)\r\nexport class EDMSCommonModule {\r\n\r\n}\r\n ","import { NgModule } from '@angular/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule, } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\n\r\n@NgModule({\r\n imports:[\r\n MatButtonToggleModule\r\n ],\r\n exports: [\r\n MatCheckboxModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatChipsModule,\r\n MatCardModule,\r\n MatTabsModule,\r\n MatProgressBarModule,\r\n MatTreeModule,\r\n MatSelectModule,\r\n MatButtonToggleModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatRippleModule,\r\n MatSnackBarModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatMenuModule,\r\n DragDropModule,\r\n MatSlideToggleModule,\r\n MatExpansionModule,\r\n MatTooltipModule,\r\n MatRadioModule\r\n ],\r\n})\r\nexport class MaterialModule { }\r\n","let hostname = window.location.hostname;\r\nlet domainurls: any;\r\n \r\nif (hostname == '127.0.0.1' || hostname == 'localhost') {\r\n domainurls = {\r\n production: false,\r\n uriHost: 'http://localhost:9200/EDMSAPI',\r\n eip4uriHost: 'https://eip4dev.lntecc.com/',\r\n returnUrl: 'eiproot/login?returnUrl=eiproot/sessiontransfer',\r\n eip4baseUrl: 'https://eip4devapi.lntecc.com/',\r\n reportHost: 'https://eip40devrpt.lntecc.com/Reports/report/',\r\n maxFileSizeToUpload: 10485760,\r\n fileTypeAccepts: '.jpg,.jpeg,.png,.gif,.mpg,.mp2,.mp4,.mpeg,.avi,.wmv,.csv,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.txt,.pdf,.zip,.dwg,.rvt,.nwd,.3dm,.dwf,.dxf,.dwfx,.dwt,.rfa,.ifc,.nwc,.nwd,.rte,.dgn,.std,.mcb,.ads,.xml,.alg,.itl,.dtm,.e2k',\r\n cookieDomain: 'localhost',\r\n tenant: \"264b9899-fe1b-430b-9509-2154878d5774\",\r\n clientId: \"ea652a41-8e82-4dff-83cc-65278ed4f8d4\",\r\n cacheLocation: \"localStorage\",\r\n localLoginUrl: \"https://localhost:4200/EdmsUI/authentication/login\",\r\n redirectUri: \"https://localhost:4200/EdmsUI/authcallback\",\r\n postLogoutRedirectUri: \"https://localhost:4200/EdmsUI/authentication/login\",\r\n viewerUrl: \"https://forgedev.lntecc.com/forgeviewer/viewer?urn=\",\r\n compareUrl: \"https://forgedev.lntecc.com/forgeviewer/compare?\",\r\n flexLicenseKey: 'Z7X2-XJ150R-083O4B-3E3A43-4P4A45-1X3J5Z-191758-3T710X-0I5M32-31284O-1O4Q',\r\n currentServer: \"http://localhost:4200/EdmsUI/\",\r\n standardDrawingAttachmentURL: \"https://eipvidhya.lntecc.com/edms/demo/DocumentUpload/\"\r\n };\r\n} else if (hostname == 'edms4dev.lntecc.com') {\r\n domainurls = {\r\n production: true,\r\n uriHost: 'https://edms4dev.lntecc.com/edmsapi',\r\n eip4uriHost: 'https://eip4dev.lntecc.com/',\r\n returnUrl: 'eiproot/login?returnUrl=eiproot/sessiontransfer',\r\n eip4baseUrl: 'https://eip4devapi.lntecc.com/',\r\n reportHost: 'https://eip40devrpt.lntecc.com/Reports/report/',\r\n maxFileSizeToUpload: 10485760,\r\n fileTypeAccepts: '.jpg,.jpeg,.png,.gif,.mpg,.mp2,.mp4,.mpeg,.avi,.wmv,.csv,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.txt,.pdf,.zip,.dwg,.rvt,.nwd,.3dm,.dwf,.dxf,.dwfx,.dwt,.rfa,.ifc,.nwc,.nwd,.rte,.dgn,.std,.mcb,.ads,.xml,.alg,.itl,.dtm,.e2k',\r\n cookieDomain: 'edms4dev.lntecc.com',\r\n tenant: \"264b9899-fe1b-430b-9509-2154878d5774\",\r\n clientId: \"ea652a41-8e82-4dff-83cc-65278ed4f8d4\",\r\n cacheLocation: \"localStorage\",\r\n localLoginUrl: \"https://edms4dev.lntecc.com/EdmsUI/authentication/login\",\r\n redirectUri: \"https://edms4dev.lntecc.com/EdmsUI/authcallback\",\r\n postLogoutRedirectUri: \"https://edms4dev.lntecc.com/EdmsUI/authentication/login\",\r\n viewerUrl: \"https://forgedev.lntecc.com/forgeviewer/viewer?urn=\",\r\n compareUrl: \"https://forgedev.lntecc.com/forgeviewer/compare?\",\r\n flexLicenseKey: 'Z7GL-XHFI56-6O5J30-2F3Q4U-012R67-3B691S-493572-631237-5G4Q0B-1S2U',\r\n currentServer: \"https://edms4dev.lntecc.com/EdmsUI/\",\r\n standardDrawingAttachmentURL: \"https://eipvidhya.lntecc.com/edms/demo/DocumentUpload/\"\r\n };\r\n} else if (hostname == 'edms4qa.lntecc.com') {\r\n domainurls = {\r\n production: true,\r\n uriHost: 'https://edms4qa.lntecc.com/edmsapi',\r\n eip4uriHost: 'https://eip4qa.lntecc.com/',\r\n returnUrl: 'eiproot/login?returnUrl=eiproot/sessiontransfer',\r\n eip4baseUrl: 'https://EIP4QAapi.lntecc.com/',\r\n reportHost: 'https://eip40qarpt.lntecc.com/Reports/report/',\r\n maxFileSizeToUpload: 10485760,\r\n fileTypeAccepts: '.jpg,.jpeg,.png,.gif,.mpg,.mp2,.mp4,.mpeg,.avi,.wmv,.csv,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.txt,.pdf,.zip,.dwg,.rvt,.nwd,.3dm,.dwf,.dxf,.dwfx,.dwt,.rfa,.ifc,.nwc,.nwd,.rte,.dgn,.std,.mcb,.ads,.xml,.alg,.itl,.dtm,.e2k',\r\n cookieDomain: 'edms4qa.lntecc.com',\r\n tenant: \"264b9899-fe1b-430b-9509-2154878d5774\",\r\n clientId: \"efb09066-34f3-47ab-8567-6d1497f13f52\",\r\n cacheLocation: \"localStorage\",\r\n localLoginUrl: \"https://edms4qa.lntecc.com/EdmsUI/authentication/login\",\r\n redirectUri: \"https://edms4qa.lntecc.com/EdmsUI/authcallback\",\r\n postLogoutRedirectUri: \"https://edms4qa.lntecc.com/EdmsUI/authentication/login\",\r\n viewerUrl: \"https://forgeqa.lntecc.com:444/forgeviewer/viewer?urn=\",\r\n compareUrl: \"https://forgeqa.lntecc.com:444/forgeviewer/compare?\",\r\n flexLicenseKey: 'Z7GL-XHFI56-6O5J30-2F3Q4U-012R67-3B691S-493572-631237-5G4Q0B-1S2U',\r\n currentServer: \"https://edms4qa.lntecc.com/EdmsUI/\",\r\n standardDrawingAttachmentURL: \"https://eipvidhya.lntecc.com/edms/demo/DocumentUpload/\"\r\n };\r\n\r\n} else if (hostname == 'edms4uat.lntecc.com') {\r\n domainurls = {\r\n production: true,\r\n uriHost: 'https://edms4uat.lntecc.com/edmsapi',\r\n eip4uriHost: 'https://eip4uat.lntecc.com/',\r\n returnUrl: 'eiproot/login?returnUrl=eiproot/sessiontransfer',\r\n eip4baseUrl: 'https://eip4uatapi.lntecc.com/',\r\n reportHost: 'https://eip40uatrpt.lntecc.com/Reports/report/',\r\n maxFileSizeToUpload: 10485760,\r\n fileTypeAccepts: '.jpg,.jpeg,.png,.gif,.mpg,.mp2,.mp4,.mpeg,.avi,.wmv,.csv,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.txt,.pdf,.zip,.dwg,.rvt,.nwd,.3dm,.dwf,.dxf,.dwfx,.dwt,.rfa,.ifc,.nwc,.nwd,.rte,.dgn,.std,.mcb,.ads,.xml,.alg,.itl,.dtm,.e2k',\r\n cookieDomain: 'edms4uat.lntecc.com',\r\n tenant: \"264b9899-fe1b-430b-9509-2154878d5774\",\r\n clientId: \"130376a7-7026-4091-8031-fa962acee3f6\",\r\n cacheLocation: \"localStorage\",\r\n localLoginUrl: \"https://edms4uat.lntecc.com/EdmsUI/authentication/login\",\r\n redirectUri: \"https://edms4uat.lntecc.com/EdmsUI/authcallback\",\r\n postLogoutRedirectUri: \"https://edms4uat.lntecc.com/EdmsUI/authentication/login\",\r\n viewerUrl: \"https://forgeuat.lntecc.com/forgeviewer/viewer?urn=\",\r\n compareUrl: \"https://forgeuat.lntecc.com/forgeviewer/compare?\",\r\n flexLicenseKey: 'Z7GL-XHFI56-6O5J30-2F3Q4U-012R67-3B691S-493572-631237-5G4Q0B-1S2U',\r\n currentServer: \"https://edms4uat.lntecc.com/EdmsUI/\",\r\n standardDrawingAttachmentURL: \"https://eipvidhya.lntecc.com/edms/demo/DocumentUpload/\"\r\n };\r\n}\r\nelse if (hostname == 'edms4.lntecc.com') {\r\n domainurls = {\r\n production: true,\r\n uriHost: 'https://edms4.lntecc.com/edmsapi',\r\n eip4uriHost: 'https://eip4.lntecc.com/',\r\n returnUrl: 'eiproot/login?returnUrl=eiproot/sessiontransfer',\r\n eip4baseUrl: 'https://eip4api.lntecc.com/',\r\n reportHost: 'https://reports.lntecc.com/Reports/report/',\r\n maxFileSizeToUpload: 10485760,\r\n fileTypeAccepts: '.jpg,.jpeg,.png,.gif,.mpg,.mp2,.mp4,.mpeg,.avi,.wmv,.csv,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.txt,.pdf,.zip,.dwg,.rvt,.nwd,.3dm,.dwf,.dxf,.dwfx,.dwt,.rfa,.ifc,.nwc,.nwd,.rte,.dgn,.std,.mcb,.ads,.xml,.alg,.itl,.dtm,.e2k',\r\n cookieDomain: 'edms4.lntecc.com',\r\n tenant: \"264b9899-fe1b-430b-9509-2154878d5774\",\r\n clientId: \"a5685016-71b1-4499-9823-40c36c89c86e\",\r\n cacheLocation: \"localStorage\",\r\n localLoginUrl: \"https://edms4.lntecc.com/EdmsUI/authentication/login\",\r\n redirectUri: \"https://edms4.lntecc.com/EdmsUI/authcallback\",\r\n postLogoutRedirectUri: \"https://edms4.lntecc.com/EdmsUI/authentication/login\",\r\n viewerUrl: \"https://forge.lntecc.com/forgeviewer/viewer?urn=\",\r\n compareUrl: \"https://forge.lntecc.com/forgeviewer/compare?\",\r\n flexLicenseKey: 'Z7XV-XJIJ0Y-1D2349-673232-0C5B5B-2L1T1N-0Z4I0Q-4L4Z4E-3R6T4A-363N61-5H6Y',\r\n currentServer: \"https://edms4.lntecc.com/EdmsUI/\",\r\n standardDrawingAttachmentURL: \"https://eipvidhya.lntecc.com/edms/demo/DocumentUpload/\"\r\n };\r\n}\r\nelse if (hostname == 'edms4bfix.lntecc.com') {\r\n domainurls = {\r\n production: true,\r\n uriHost: 'https://edms4bfix.lntecc.com/edmsapi',\r\n eip4uriHost: 'https://eip4bfix.lntecc.com/',\r\n returnUrl: 'eiproot/login?returnUrl=eiproot/sessiontransfer',\r\n eip4baseUrl: 'https://eip4bfixapi.lntecc.com/',\r\n reportHost: 'https://reports.lntecc.com/Reports/report/',\r\n maxFileSizeToUpload: 10485760,\r\n fileTypeAccepts: '.jpg,.jpeg,.png,.gif,.mpg,.mp2,.mp4,.mpeg,.avi,.wmv,.csv,.xls,.xlsx,.doc,.docx,.ppt,.pptx,.txt,.pdf,.zip,.dwg,.rvt,.nwd,.3dm,.dwf,.dxf,.dwfx,.dwt,.rfa,.ifc,.nwc,.nwd,.rte,.dgn,.std,.mcb,.ads,.xml,.alg,.itl,.dtm,.e2k',\r\n cookieDomain: 'edms4bfix.lntecc.com',\r\n tenant: \"264b9899-fe1b-430b-9509-2154878d5774\",\r\n clientId: \"a5685016-71b1-4499-9823-40c36c89c86e\",\r\n cacheLocation: \"localStorage\",\r\n localLoginUrl: \"https://edms4bfix.lntecc.com/EdmsUI/authentication/login\",\r\n redirectUri: \"https://edms4bfix.lntecc.com/EdmsUI/authcallback\",\r\n postLogoutRedirectUri: \"https://edms4bfix.lntecc.com/EdmsUI/authentication/login\",\r\n viewerUrl: \"https://forge.lntecc.com/forgeviewer/viewer?urn=\",\r\n compareUrl: \"https://forge.lntecc.com/forgeviewer/compare?\",\r\n flexLicenseKey: 'Z7XV-XJIJ0Y-1D2349-673232-0C5B5B-2L1T1N-0Z4I0Q-4L4Z4E-3R6T4A-363N61-5H6Y',\r\n currentServer: \"https://edms4bfix.lntecc.com/EdmsUI/\",\r\n standardDrawingAttachmentURL: \"https://eipvidhya.lntecc.com/edms/demo/DocumentUpload/\"\r\n };\r\n}\r\n\r\nexport const environment = domainurls;\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}