{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/EnquiryStatus.ts","./src/app/Model/ActivityModel.ts","./src/app/Model/AddCustomerOpportunityModel.ts","./src/app/Model/AlertsModel.ts","./src/app/Model/BusinessPlanModel.ts","./src/app/Model/ChangePasswordModel.ts","./src/app/Model/CommonModel.ts","./src/app/Model/CustomerModel.ts","./src/app/Model/EmployeeGuestModel.ts","./src/app/Model/EnquiryModel.ts","./src/app/Model/HeaderMenuModel.ts","./src/app/Model/LeadModel.ts","./src/app/Model/LoginPageImage.ts","./src/app/Model/OutOfOfficeActivityModel.ts","./src/app/Model/ProductMatrixModel.ts","./src/app/Model/ProductModel.ts","./src/app/Model/QuotationModel.ts","./src/app/Model/RegisterModel.ts","./src/app/Model/ReportFilterModel.ts","./src/app/Model/SalesOrderBusinessPlan.ts","./src/app/Model/SingleFieldModel.ts","./src/app/Model/SiteActivityLogModel.ts","./src/app/Model/StockInventoryModel.ts","./src/app/Model/WorkFlowScreenAccessModel.ts","./src/app/Pipe/IndianCurrency.pipe.ts","./src/app/Service/access-permission.service.ts","./src/app/Service/activity.service.ts","./src/app/Service/app-config.service.ts","./src/app/Service/common.service.ts","./src/app/Service/engagement-report-service.service.ts","./src/app/Service/engagement-report.service.ts","./src/app/Service/exportToexcel.service.ts","./src/app/Service/register.service.ts","./src/app/UserRoles.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.global.ts","./src/app/app.module.ts","./src/app/auth/auth.interceptor.ts","./src/app/auth/role.guard.ts","./src/app/confirm-dialog/confirm-dialog.component.ts","./src/app/confirm-dialog/confirm-dialog.component.html","./src/app/directive/CustomNgbDateParserFormatter.ts","./src/app/directive/MustMatch.directive.ts","./src/app/directive/focus-invalid-input.directive.ts","./src/app/dynamic-bgimage/dynamic-bgimage.component.ts","./src/app/dynamic-bgimage/dynamic-bgimage.component.html","./src/app/footer/footer.component.ts","./src/app/footer/footer.component.html","./src/app/forgot-password/forgot-password.component.ts","./src/app/forgot-password/forgot-password.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/loader/loader.component.ts","./src/app/loader/loader.component.html","./src/app/material/material.module.ts","./src/app/profile/profile.component.ts","./src/app/profile/profile.component.html","./src/app/register/register.component.ts","./src/app/register/register.component.html","./src/app/sub-component/charts-modal/charts-modal.component.ts","./src/app/sub-component/charts-modal/charts-modal.component.html","./src/app/sub-component/charts-modal/enquiry-details-modal-chart/enquiry-details-modal-chart.component.ts","./src/app/sub-component/charts-modal/enquiry-details-modal-chart/enquiry-details-modal-chart.component.html","./src/app/sub-component/customer-engagement/activity/add-activity/add-activity.component.ts","./src/app/sub-component/customer-engagement/activity/add-activity/add-activity.component.html","./src/app/sub-component/customer-engagement/activity/bulk-edit-activity/bulk-edit-activity.component.ts","./src/app/sub-component/customer-engagement/activity/bulk-edit-activity/bulk-edit-activity.component.html","./src/app/sub-component/customer-engagement/activity/calender-view/calender-view.component.ts","./src/app/sub-component/customer-engagement/activity/calender-view/calender-view.component.html","./src/app/sub-component/customer-engagement/activity/edit-activity/edit-activity.component.ts","./src/app/sub-component/customer-engagement/activity/edit-activity/edit-activity.component.html","./src/app/sub-component/customer-engagement/activity/list-activity-row/list-activity-row.component.ts","./src/app/sub-component/customer-engagement/activity/list-activity-row/list-activity-row.component.html","./src/app/sub-component/customer-engagement/activity/list-activity/list-activity.component.ts","./src/app/sub-component/customer-engagement/activity/list-activity/list-activity.component.html","./src/app/sub-component/customer-engagement/activity/view-activity/view-activity.component.ts","./src/app/sub-component/customer-engagement/activity/view-activity/view-activity.component.html","./src/app/sub-component/customer-engagement/customer-engagement-details/customer-engagement-details.component.ts","./src/app/sub-component/customer-engagement/customer-engagement-details/customer-engagement-details.component.html","./src/app/sub-component/customer-engagement/customer-engagement/customer-engagement.component.ts","./src/app/sub-component/customer-engagement/customer-engagement/customer-engagement.component.html","./src/app/sub-component/customer-engagement/engagement-reports/activity-status-by-month/activity-status-by-month.component.ts","./src/app/sub-component/customer-engagement/engagement-reports/activity-status-by-month/activity-status-by-month.component.html","./src/app/sub-component/customer-engagement/engagement-reports/engagement-reports.component.ts","./src/app/sub-component/customer-engagement/engagement-reports/engagement-reports.component.html","./src/app/sub-component/customer-engagement/engagement-reports/report-by-activity-status-type/report-by-activity-status-type.component.ts","./src/app/sub-component/customer-engagement/engagement-reports/report-by-activity-status-type/report-by-activity-status-type.component.html","./src/app/sub-component/customer-engagement/engagement-reports/report-by-activity-type-month/report-by-activity-type-month.component.ts","./src/app/sub-component/customer-engagement/engagement-reports/report-by-activity-type-month/report-by-activity-type-month.component.html","./src/app/sub-component/customer-engagement/engagement-reports/report-by-activity-type-status/report-by-activity-type-status.component.ts","./src/app/sub-component/customer-engagement/engagement-reports/report-by-activity-type-status/report-by-activity-type-status.component.html","./src/app/sub-component/customer-engagement/my-activity/my-activity.component.ts","./src/app/sub-component/customer-engagement/my-activity/my-activity.component.html","./src/app/sub-component/customer-engagement/planned-vs-actual-activity/planned-vs-actual-activity.component.ts","./src/app/sub-component/customer-engagement/planned-vs-actual-activity/planned-vs-actual-activity.component.html","./src/app/sub-component/dashboard/avg-discount-month-chart/avg-discount-month.component.ts","./src/app/sub-component/dashboard/avg-discount-month-chart/avg-discount-month.component.html","./src/app/sub-component/dashboard/bporder-intake-chart/bporder-intake.component.ts","./src/app/sub-component/dashboard/bporder-intake-chart/bporder-intake.component.html","./src/app/sub-component/dashboard/business-plan-chart/business-plan-chart.component.ts","./src/app/sub-component/dashboard/business-plan-chart/business-plan-chart.component.html","./src/app/sub-component/dashboard/dashboard.component.ts","./src/app/sub-component/dashboard/dashboard.component.html","./src/app/sub-component/dashboard/enquiry-details-chart/enquiry-details-chart.component.ts","./src/app/sub-component/dashboard/enquiry-details-chart/enquiry-details-chart.component.html","./src/app/sub-component/dashboard/opportunity-quotation-chart/opportunity-quotation-chart.component.ts","./src/app/sub-component/dashboard/opportunity-quotation-chart/opportunity-quotation-chart.component.html","./src/app/sub-component/dashboard/opportunity-rfq-chart/opportunity-rfq-chart.component.ts","./src/app/sub-component/dashboard/opportunity-rfq-chart/opportunity-rfq-chart.component.html","./src/app/sub-component/dashboard/order-values-chart/order-values-chart.component.ts","./src/app/sub-component/dashboard/order-values-chart/order-values-chart.component.html","./src/app/sub-component/dashboard/order-win-lost-chart/order-win-lost-chart.component.ts","./src/app/sub-component/dashboard/order-win-lost-chart/order-win-lost-chart.component.html","./src/app/sub-component/dashboard/orderbacklog-supplychain-chart/orderbacklog-supplychain-chart.component.ts","./src/app/sub-component/dashboard/orderbacklog-supplychain-chart/orderbacklog-supplychain-chart.component.html","./src/app/sub-component/dashboard/quatation-order-intake-chart/quatation-order-intake-chart.component.ts","./src/app/sub-component/dashboard/quatation-order-intake-chart/quatation-order-intake-chart.component.html","./src/app/sub-component/dashboard/show-pending-activity/show-pending-activity.component.ts","./src/app/sub-component/dashboard/show-pending-activity/show-pending-activity.component.html","./src/app/sub-component/enquiry/activity-details/activity-details.component.ts","./src/app/sub-component/enquiry/activity-details/activity-details.component.html","./src/app/sub-component/enquiry/activity-list-by-entity/activity-list-by-entity.component.ts","./src/app/sub-component/enquiry/activity-list-by-entity/activity-list-by-entity.component.html","./src/app/sub-component/enquiry/add-customer-opportunity/add-customer-opportunity.component.ts","./src/app/sub-component/enquiry/add-customer-opportunity/add-customer-opportunity.component.html","./src/app/sub-component/enquiry/add-enquiry/add-enquiry.component.ts","./src/app/sub-component/enquiry/add-enquiry/add-enquiry.component.html","./src/app/sub-component/enquiry/ceo-approval/ceo-approval.component.ts","./src/app/sub-component/enquiry/ceo-approval/ceo-approval.component.html","./src/app/sub-component/enquiry/close-opp-reason/close-opp-reason.component.ts","./src/app/sub-component/enquiry/close-opp-reason/close-opp-reason.component.html","./src/app/sub-component/enquiry/confirm-invoice/confirm-invoice.component.ts","./src/app/sub-component/enquiry/confirm-invoice/confirm-invoice.component.html","./src/app/sub-component/enquiry/edit-view-enquiry/edit-view-enquiry.component.ts","./src/app/sub-component/enquiry/edit-view-enquiry/edit-view-enquiry.component.html","./src/app/sub-component/enquiry/enquiry-modal/enquiry-modal.component.ts","./src/app/sub-component/enquiry/enquiry-modal/enquiry-modal.component.html","./src/app/sub-component/enquiry/enquiry/enquiry.component.ts","./src/app/sub-component/enquiry/enquiry/enquiry.component.html","./src/app/sub-component/enquiry/management-approval/management-approval.component.ts","./src/app/sub-component/enquiry/management-approval/management-approval.component.html","./src/app/sub-component/enquiry/oa-generation/oa-generation.component.ts","./src/app/sub-component/enquiry/oa-generation/oa-generation.component.html","./src/app/sub-component/enquiry/order-confirmation/order-confirmation.component.ts","./src/app/sub-component/enquiry/order-confirmation/order-confirmation.component.html","./src/app/sub-component/enquiry/pass-on/pass-on.component.ts","./src/app/sub-component/enquiry/pass-on/pass-on.component.html","./src/app/sub-component/enquiry/pending-enquiry/pending-enquiry.component.ts","./src/app/sub-component/enquiry/pending-enquiry/pending-enquiry.component.html","./src/app/sub-component/enquiry/quotation-preview/quotation-preview.component.ts","./src/app/sub-component/enquiry/quotation-preview/quotation-preview.component.html","./src/app/sub-component/enquiry/quotation/quotation.component.ts","./src/app/sub-component/enquiry/quotation/quotation.component.html","./src/app/sub-component/enquiry/rfq/rfq.component.ts","./src/app/sub-component/enquiry/rfq/rfq.component.html","./src/app/sub-component/enquiry/send-back-comment/send-back-comment.component.ts","./src/app/sub-component/enquiry/send-back-comment/send-back-comment.component.html","./src/app/sub-component/enquiry/so-generation/so-generation.component.ts","./src/app/sub-component/enquiry/so-generation/so-generation.component.html","./src/app/sub-component/enquiry/supply-chain/supply-chain.component.ts","./src/app/sub-component/enquiry/supply-chain/supply-chain.component.html","./src/app/sub-component/enquiry/technical-discard/technical-discard.component.ts","./src/app/sub-component/enquiry/technical-discard/technical-discard.component.html","./src/app/sub-component/masters/Alerts/alerts-details/alerts-details.component.ts","./src/app/sub-component/masters/Alerts/alerts-details/alerts-details.component.html","./src/app/sub-component/masters/Alerts/edit-view-alerts/edit-view-alerts.component.ts","./src/app/sub-component/masters/Alerts/edit-view-alerts/edit-view-alerts.component.html","./src/app/sub-component/masters/BusinessPlan/business-plan-details/business-plan-details.component.ts","./src/app/sub-component/masters/BusinessPlan/business-plan-details/business-plan-details.component.html","./src/app/sub-component/masters/BusinessPlan/business-plan-for-sales-and-order/business-plan-for-sales-and-order.component.ts","./src/app/sub-component/masters/BusinessPlan/business-plan-for-sales-and-order/business-plan-for-sales-and-order.component.html","./src/app/sub-component/masters/BusinessPlan/edit-business-plan/edit-business-plan.component.ts","./src/app/sub-component/masters/BusinessPlan/edit-business-plan/edit-business-plan.component.html","./src/app/sub-component/masters/Lead/add-lead/add-lead/add-lead.component.ts","./src/app/sub-component/masters/Lead/add-lead/add-lead/add-lead.component.html","./src/app/sub-component/masters/Lead/close-lead/close-lead.component.ts","./src/app/sub-component/masters/Lead/close-lead/close-lead.component.html","./src/app/sub-component/masters/Lead/edit-view-lead/edit-view-lead/edit-view-lead.component.ts","./src/app/sub-component/masters/Lead/edit-view-lead/edit-view-lead/edit-view-lead.component.html","./src/app/sub-component/masters/Lead/lead-details/lead-details/lead-details.component.ts","./src/app/sub-component/masters/Lead/lead-details/lead-details/lead-details.component.html","./src/app/sub-component/masters/StockInventory/add-stock-inventory/add-stock-inventory.component.ts","./src/app/sub-component/masters/StockInventory/add-stock-inventory/add-stock-inventory.component.html","./src/app/sub-component/masters/StockInventory/stock-inventory-details/stock-inventory-details.component.ts","./src/app/sub-component/masters/StockInventory/stock-inventory-details/stock-inventory-details.component.html","./src/app/sub-component/masters/StockInventory/view-stock-inventory/view-stock-inventory.component.ts","./src/app/sub-component/masters/StockInventory/view-stock-inventory/view-stock-inventory.component.html","./src/app/sub-component/masters/WorkFlowScreenAccess/edit-view-work-flow-screen-access/edit-view-work-flow-screen-access.component.ts","./src/app/sub-component/masters/WorkFlowScreenAccess/edit-view-work-flow-screen-access/edit-view-work-flow-screen-access.component.html","./src/app/sub-component/masters/configuration/ContractFrameAgreement/add-contract-frame-agreement/add-contract-frame-agreement.component.ts","./src/app/sub-component/masters/configuration/ContractFrameAgreement/add-contract-frame-agreement/add-contract-frame-agreement.component.html","./src/app/sub-component/masters/configuration/ContractFrameAgreement/customer-frame-agreement-details/customer-frame-agreement-details.component.ts","./src/app/sub-component/masters/configuration/ContractFrameAgreement/customer-frame-agreement-details/customer-frame-agreement-details.component.html","./src/app/sub-component/masters/configuration/ContractFrameAgreement/edit-view-contract-frame-agreement/edit-view-contract-frame-agreement.component.ts","./src/app/sub-component/masters/configuration/ContractFrameAgreement/edit-view-contract-frame-agreement/edit-view-contract-frame-agreement.component.html","./src/app/sub-component/masters/configuration/add-configuration/add-configuration.component.ts","./src/app/sub-component/masters/configuration/add-configuration/add-configuration.component.html","./src/app/sub-component/masters/configuration/configuration-details/configuration-details.component.ts","./src/app/sub-component/masters/configuration/configuration-details/configuration-details.component.html","./src/app/sub-component/masters/configuration/edit-view-configuration/edit-view-configuration.component.ts","./src/app/sub-component/masters/configuration/edit-view-configuration/edit-view-configuration.component.html","./src/app/sub-component/masters/customer/add-customer/add-customer.component.ts","./src/app/sub-component/masters/customer/add-customer/add-customer.component.html","./src/app/sub-component/masters/customer/customer-details/customer-details.component.ts","./src/app/sub-component/masters/customer/customer-details/customer-details.component.html","./src/app/sub-component/masters/customer/edit-view-customer/edit-view-customer.component.ts","./src/app/sub-component/masters/customer/edit-view-customer/edit-view-customer.component.html","./src/app/sub-component/masters/employee/add-employee/add-employee.component.ts","./src/app/sub-component/masters/employee/add-employee/add-employee.component.html","./src/app/sub-component/masters/employee/edit-view-employee/edit-view-employee.component.ts","./src/app/sub-component/masters/employee/edit-view-employee/edit-view-employee.component.html","./src/app/sub-component/masters/employee/employee-details/employee-details.component.ts","./src/app/sub-component/masters/employee/employee-details/employee-details.component.html","./src/app/sub-component/masters/guest/add-guest/add-guest.component.ts","./src/app/sub-component/masters/guest/add-guest/add-guest.component.html","./src/app/sub-component/masters/guest/edit-view-guest/edit-view-guest.component.ts","./src/app/sub-component/masters/guest/edit-view-guest/edit-view-guest.component.html","./src/app/sub-component/masters/guest/guest-details/guest-details.component.ts","./src/app/sub-component/masters/guest/guest-details/guest-details.component.html","./src/app/sub-component/masters/login-page-dynamic-image/add-login-page-dynamic-image/add-login-page-dynamic-image.component.ts","./src/app/sub-component/masters/login-page-dynamic-image/add-login-page-dynamic-image/add-login-page-dynamic-image.component.html","./src/app/sub-component/masters/login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image.component.ts","./src/app/sub-component/masters/login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image.component.html","./src/app/sub-component/masters/login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image.component.ts","./src/app/sub-component/masters/login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image.component.html","./src/app/sub-component/masters/priceconfigurator/priceconfigurator.component.ts","./src/app/sub-component/masters/priceconfigurator/priceconfigurator.component.html","./src/app/sub-component/masters/product-matrix/product-matrix.component.ts","./src/app/sub-component/masters/product-matrix/product-matrix.component.html","./src/app/sub-component/masters/product/options/add-options/add-options.component.ts","./src/app/sub-component/masters/product/options/add-options/add-options.component.html","./src/app/sub-component/masters/product/options/edit-view-options/edit-view-options.component.ts","./src/app/sub-component/masters/product/options/edit-view-options/edit-view-options.component.html","./src/app/sub-component/masters/product/options/options-details/options-details.component.ts","./src/app/sub-component/masters/product/options/options-details/options-details.component.html","./src/app/sub-component/masters/product/product-family/add-product-family/add-product-family.component.ts","./src/app/sub-component/masters/product/product-family/add-product-family/add-product-family.component.html","./src/app/sub-component/masters/product/product-family/edit-view-product-family/edit-view-product-family.component.ts","./src/app/sub-component/masters/product/product-family/edit-view-product-family/edit-view-product-family.component.html","./src/app/sub-component/masters/product/product-family/product-family-details/product-family-details.component.ts","./src/app/sub-component/masters/product/product-family/product-family-details/product-family-details.component.html","./src/app/sub-component/masters/product/product-line/add-product-line/add-product-line.component.ts","./src/app/sub-component/masters/product/product-line/add-product-line/add-product-line.component.html","./src/app/sub-component/masters/product/product-line/edit-view-product-line/edit-view-product-line.component.ts","./src/app/sub-component/masters/product/product-line/edit-view-product-line/edit-view-product-line.component.html","./src/app/sub-component/masters/product/product-line/product-line-details/product-line-details.component.ts","./src/app/sub-component/masters/product/product-line/product-line-details/product-line-details.component.html","./src/app/sub-component/masters/product/product-model/add-product-model/add-product-model.component.ts","./src/app/sub-component/masters/product/product-model/add-product-model/add-product-model.component.html","./src/app/sub-component/masters/product/product-model/edit-view-product-model/edit-view-product-model.component.ts","./src/app/sub-component/masters/product/product-model/edit-view-product-model/edit-view-product-model.component.html","./src/app/sub-component/masters/product/product-model/product-model-details/product-model-details.component.ts","./src/app/sub-component/masters/product/product-model/product-model-details/product-model-details.component.html","./src/app/sub-component/masters/product/product-series/add-product-series/add-product-series.component.ts","./src/app/sub-component/masters/product/product-series/add-product-series/add-product-series.component.html","./src/app/sub-component/masters/product/product-series/edit-view-product-series/edit-view-product-series.component.ts","./src/app/sub-component/masters/product/product-series/edit-view-product-series/edit-view-product-series.component.html","./src/app/sub-component/masters/product/product-series/product-series-details/product-series-details.component.ts","./src/app/sub-component/masters/product/product-series/product-series-details/product-series-details.component.html","./src/app/sub-component/masters/product/product-series/product-series-details/product-series-upload-log/product-series-upload-log.component.ts","./src/app/sub-component/masters/product/product-series/product-series-details/product-series-upload-log/product-series-upload-log.component.html","./src/app/sub-component/masters/product/variant-level-1/add-variant-level1/add-variant-level1.component.ts","./src/app/sub-component/masters/product/variant-level-1/add-variant-level1/add-variant-level1.component.html","./src/app/sub-component/masters/product/variant-level-1/edit-view-variant-level1/edit-view-variant-level1.component.ts","./src/app/sub-component/masters/product/variant-level-1/edit-view-variant-level1/edit-view-variant-level1.component.html","./src/app/sub-component/masters/product/variant-level-1/variant-level1-details/variant-level1-details.component.ts","./src/app/sub-component/masters/product/variant-level-1/variant-level1-details/variant-level1-details.component.html","./src/app/sub-component/masters/product/variant-level-2/add-variant-level2/add-variant-level2.component.ts","./src/app/sub-component/masters/product/variant-level-2/add-variant-level2/add-variant-level2.component.html","./src/app/sub-component/masters/product/variant-level-2/edit-view-variant-level2/edit-view-variant-level2.component.ts","./src/app/sub-component/masters/product/variant-level-2/edit-view-variant-level2/edit-view-variant-level2.component.html","./src/app/sub-component/masters/product/variant-level-2/variant-level2-details/variant-level2-details.component.ts","./src/app/sub-component/masters/product/variant-level-2/variant-level2-details/variant-level2-details.component.html","./src/app/sub-component/masters/product/variant-level-3/add-variant-level3/add-variant-level3.component.ts","./src/app/sub-component/masters/product/variant-level-3/add-variant-level3/add-variant-level3.component.html","./src/app/sub-component/masters/product/variant-level-3/edit-view-variant-level3/edit-view-variant-level3.component.ts","./src/app/sub-component/masters/product/variant-level-3/edit-view-variant-level3/edit-view-variant-level3.component.html","./src/app/sub-component/masters/product/variant-level-3/variant-level3-details/variant-level3-details.component.ts","./src/app/sub-component/masters/product/variant-level-3/variant-level3-details/variant-level3-details.component.html","./src/app/sub-component/masters/product/variant-level-4/add-variant-level4/add-variant-level4.component.ts","./src/app/sub-component/masters/product/variant-level-4/add-variant-level4/add-variant-level4.component.html","./src/app/sub-component/masters/product/variant-level-4/edit-view-variant-level4/edit-view-variant-level4.component.ts","./src/app/sub-component/masters/product/variant-level-4/edit-view-variant-level4/edit-view-variant-level4.component.html","./src/app/sub-component/masters/product/variant-level-4/variant-level4-details/variant-level4-details.component.ts","./src/app/sub-component/masters/product/variant-level-4/variant-level4-details/variant-level4-details.component.html","./src/app/sub-component/reports/customerwise-report/customerwise-report.component.ts","./src/app/sub-component/reports/customerwise-report/customerwise-report.component.html","./src/app/sub-component/reports/enquiry-grid-report/enquiry-grid-report.component.ts","./src/app/sub-component/reports/enquiry-grid-report/enquiry-grid-report.component.html","./src/app/sub-component/reports/power-bireports/power-bireports.component.ts","./src/app/sub-component/reports/power-bireports/power-bireports.component.html","./src/app/sub-component/reports/productwise-report/productmodel-columnchart/productmodel-columnchart.component.ts","./src/app/sub-component/reports/productwise-report/productmodel-columnchart/productmodel-columnchart.component.html","./src/app/sub-component/reports/productwise-report/productseries-columnchart/productseries-columnchart.component.ts","./src/app/sub-component/reports/productwise-report/productseries-columnchart/productseries-columnchart.component.html","./src/app/sub-component/reports/productwise-report/productvariant-columnchart/productvariant-columnchart.component.ts","./src/app/sub-component/reports/productwise-report/productvariant-columnchart/productvariant-columnchart.component.html","./src/app/sub-component/reports/productwise-report/productwise-report.component.ts","./src/app/sub-component/reports/productwise-report/productwise-report.component.html","./src/app/sub-component/reports/regionwise-report/regionwise-report.component.ts","./src/app/sub-component/reports/regionwise-report/regionwise-report.component.html","./src/app/sub-component/reports/segmentwise-report/segmentwise-report.component.ts","./src/app/sub-component/reports/segmentwise-report/segmentwise-report.component.html","./src/app/sub-component/reports/site-activity/site-activity/site-activity.component.ts","./src/app/sub-component/reports/site-activity/site-activity/site-activity.component.html","./src/app/validator/must-match.validator.ts","./src/assets/constants.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","\nexport enum EnquiryStatus {\n EnquiryAdded=1,\n RFQSaveAsDraft=2,\n RFQSubmittedbySalesEngg=3,\n RFQAcceptedbyL1=4,\n RFQReworkbyL1=5,\n RFQSubmittedbyL1=6,\n RFQsentbyL1toL2=7,\n RFQSubmittedbyL2=8,\n RFQsentbyL2toL3=9,\n RFQSubmittedbyL3=10,\n QuotationSaveAsDraftbyL1=11,\n QuotationSaveAsDraftbyL2=12,\n QuotationSaveAsDraftbyL3=13,\n QuotationPriceOnRequestbyL1=14,\n QuotationPriceOnRequestbyL2=15,\n QuotationPriceOnRequestbyL3=16,\n QuotationGeneratedbyL1=17,\n QuotationGeneratedbyL2=18,\n QuotationGeneratedbyL3=19,\n QuotationsentbyL3toL2=20,\n QuotationsentbyL2toL1=21,\n QuotationSenttoCustomerService=22,\n RFQSubmittedbyCustomerService=23,\n QuotationSaveAsDraftbyCustomerService=24,\n QuotationPriceOnRequestbyCustomerService=25,\n QuotationGeneratedbyCustomerService=26,\n QuotationSentforMngtApproval_SalesDirector=27,\n QuotationRejectedbyMngmt_SalesDirector=28,\n QuotationApprovedbyMngmt_SalesDirector=29,\n QuotationOnHoldbyMngmt_SalesDirector=30,\n QuotationSentforMngmtApproval_CEO=31,\n QuotationRejectedbyMngmt_CEO=32,\n QuotationApprovedbyMngmt_CEO=33,\n QuotationOnHoldbyMngmt_CEO=34,\n SendBOMandProposal=35,\n QuotationRevision=36,\n EnquiryLost=37,\n EnquiryOrderConfirmedbySalesEngg=38,\n OrdersentforMngmtApproval_SalesDirector=39,\n OrderApprovedbyMngmt_SalesDirector=40,\n OrderRejectedbyMngmt_SalesDirector=41,\n OrdersentforMngmtApproval_CEO=42,\n OrderApprovedbyMngmt_CEO=43,\n OrderRejectedbyMngmt_CEO=44,\n OrderConfirmedbyCustomerServiceSendSO=45,\n OANoGenerated=46,\n SupplyChainConfirmedDeliveryDate=47,\n MaterialReadyForDispatch=48,\n AccountsConfirmInvoiceNo=49,\n CloseOpportunity=50,\n EnquiryTechnicalDiscardbyL1 = 51,\n EnquiryTechnicalDiscardbyL2 = 52,\n EnquiryTechnicalDiscardbyL3 = 53,\n QuotationSendtoCustomerServicebyL1=54,\n QuotationSendtoCustomerServicebyL2=55,\n QuotationSendtoCustomerServicebyL3=56,\n DeleteEnquiry=57,\n CloseLead=58,\n QuotationSentForPriceDiscountApprovalToLevel1=67,\n QuotationSentForPriceDiscountApprovalToLevel2=68,\n QuotationSentForPriceDiscountApprovalToLevel3=69,\n PriceDiscountApprovedByL1=59,\n PriceDiscountApprovedByL2=60,\n PriceDiscountApprovedByL3=61,\n PriceDiscountRejectedByL1=62,\n PriceDiscountRejectedByL2=63,\n PriceDiscountRejectedByL3=64\n}\n\n\n\nexport enum EnquiryStatusCode {\n EnquiryAdded='EnquiryAdded',\n RFQSaveAsDraft='RFQSaveAsDraft',\n RFQSubmittedbySalesEngg='RFQSubmittedbySalesEngg',\n RFQAcceptedbyL1='RFQAcceptedbyL1',\n RFQSubmittedbyL1='RFQSubmittedbyL1',\n RFQsentbyL1toL2='RFQsentbyL1toL2',\n RFQSubmittedbyL2='RFQSubmittedbyL2',\n RFQsentbyL2toL3='RFQsentbyL2toL3',\n RFQSubmittedbyL3='RFQSubmittedbyL3',\n QuotationSaveAsDraftbyL1='QuotationSaveAsDraftbyL1',\n QuotationSaveAsDraftbyL2='QuotationSaveAsDraftbyL2',\n QuotationSaveAsDraftbyL3='QuotationSaveAsDraftbyL3',\n QuotationPriceOnRequestbyL1='QuotationPriceOnRequestbyL1',\n QuotationPriceOnRequestbyL2='QuotationPriceOnRequestbyL2',\n QuotationPriceOnRequestbyL3='QuotationPriceOnRequestbyL3',\n QuotationGeneratedbyL1='QuotationGeneratedbyL1',\n QuotationGeneratedbyL2='QuotationGeneratedbyL2',\n QuotationGeneratedbyL3='QuotationGeneratedbyL3',\n QuotationsentbyL3toL2='QuotationsentbyL3toL2',\n QuotationsentbyL2toL1='QuotationsentbyL2toL1',\n QuotationSenttoCustomerService='QuotationSenttoCustomerService',\n RFQSubmittedbyCustomerService='RFQSubmittedbyCustomerService',\n QuotationSaveAsDraftbyCustomerService='QuotationSaveAsDraftbyCustomerService',\n QuotationPriceOnRequestbyCustomerService='QuotationPriceOnRequestbyCustomerService',\n QuotationGeneratedbyCustomerService='QuotationGeneratedbyCustomerService',\n QuotationSentforMngtApproval_SalesDirector='QuotationSentforMngtApproval_SalesDirector',\n QuotationRejectedbyMngmt_SalesDirector='QuotationRejectedbyMngmt_SalesDirector',\n QuotationApprovedbyMngmt_SalesDirector='QuotationApprovedbyMngmt_SalesDirector',\n QuotationOnHoldbyMngmt_SalesDirector='QuotationOnHoldbyMngmt_SalesDirector',\n QuotationSentforMngmtApproval_CEO='QuotationSentforMngmtApproval_CEO',\n QuotationRejectedbyMngmt_CEO='QuotationRejectedbyMngmt_CEO',\n QuotationApprovedbyMngmt_CEO='QuotationApprovedbyMngmt_CEO',\n QuotationOnHoldbyMngmt_CEO='QuotationOnHoldbyMngmt_CEO',\n SendBOMandProposal='SendBOMandProposal',\n QuotationRevision='QuotationRevision',\n EnquiryLost='EnquiryLost',\n EnquiryOrderConfirmedbySalesEngg='EnquiryOrderConfirmedbySalesEngg',\n OrdersentforMngmtApproval_SalesDirector='OrdersentforMngmtApproval_SalesDirector',\n OrderApprovedbyMngmt_SalesDirector='OrderApprovedbyMngmt_SalesDirector',\n OrderRejectedbyMngmt_SalesDirector='OrderRejectedbyMngmt_SalesDirector',\n OrdersentforMngmtApproval_CEO='OrdersentforMngmtApproval_CEO',\n OrderApprovedbyMngmt_CEO='OrderApprovedbyMngmt_CEO',\n OrderRejectedbyMngmt_CEO='OrderRejectedbyMngmt_CEO',\n OrderConfirmedbyCustomerServiceSendSO='OrderConfirmedbyCustomerServiceSendSO',\n OANoGenerated='OANoGenerated',\n SupplyChainConfirmedDeliveryDate='SupplyChainConfirmedDeliveryDate',\n MaterialReadyForDispatch='MaterialReadyForDispatch',\n AccountsConfirmInvoiceNo='AccountsConfirmInvoiceNo',\n CloseOpportunity='CloseOpportunity',\n EnquiryTechnicalDiscardbyL1 ='EnquiryTechnicalDiscardbyL1',\n EnquiryTechnicalDiscardbyL2 ='EnquiryTechnicalDiscardbyL2',\n EnquiryTechnicalDiscardbyL3 ='EnquiryTechnicalDiscardbyL3',\n QuotationSendtoCustomerServicebyL1='QuotationSendtoCustomerServicebyL1',\n QuotationSendtoCustomerServicebyL2='QuotationSendtoCustomerServicebyL2',\n QuotationSendtoCustomerServicebyL3='QuotationSendtoCustomerServicebyL3',\n DeleteEnquiry='DeleteEnquiry',\n CloseLead='CloseLead',\n QuotationSentForPriceDiscountApprovalToLevel1='QuotationSentForPriceDiscountApprovalToLevel1',\n QuotationSentForPriceDiscountApprovalToLevel2='QuotationSentForPriceDiscountApprovalToLevel2',\n QuotationSentForPriceDiscountApprovalToLevel3='QuotationSentForPriceDiscountApprovalToLevel3',\n PriceDiscountApprovedByL1='PriceDiscountApprovedByL1',\n PriceDiscountApprovedByL2='PriceDiscountApprovedByL2',\n PriceDiscountApprovedByL3='PriceDiscountApprovedByL3',\n PriceDiscountRejectedByL1='PriceDiscountRejectedByL1',\n PriceDiscountRejectedByL2='PriceDiscountRejectedByL2',\n PriceDiscountRejectedByL3='PriceDiscountRejectedByL3',\n MaterialReadyForDistpatch='MaterialReadyForDistpatch',\n EnquiryClosePendingAtSalesDirector='EnquiryClosePendingAtSalesDirector',\n EnquiryClosePendingAtCS='EnquiryClosePendingAtCS',\n PriceOnRequestSubmitted='PriceOnRequestSubmitted'\n}\n","import { string } from '@amcharts/amcharts4/core';\n\nexport class ActivityModel {\n ActivityId: number;\n EnquiryId: number;\n Activity: string = '';\n Comments: string = '';\n ActivityDate: Date = new Date();\n Attachment: any[] = [];\n IsRowDeleted: boolean;\n}\n\nexport class Activities {\n ActivityId: number;\n EnquiryId: number;\n Activity: string = '';\n Comments: string = '';\n ActivityDate: Date = new Date();\n Attachment: any[] = [];\n IsRowDeleted: boolean;\n}\n\nexport class Activity {\n ActivityId: number;\n Subject: string;\n ActivityOwner: string;\n ActivityOwnerRoleId: number;\n Priority?: string;\n Address?: string;\n ActivityTypeId: number;\n ActivitySubType?: string;\n ActivityPurposeId: number;\n PurposeDesc?: string;\n ActivityOutcomeId: number;\n OutcomeDesc?: string;\n ActivityStatusId: number;\n Comment?: string;\n PlannedStartDatetime?: Date;\n PlannedDueDatetime?: Date;\n ActualStartDatetime?: Date;\n ActualCompletionDatetime?: Date;\n ActivityStatusDesc: string;\n InEditMode: boolean = false;\n ActivityStatus: string;\n ActivityType: string;\n DueDays:number;\n Customer:string;\n Participants:string;\n canEditCustomerEngagementReportOfOthers:boolean;\n canViewCustomerEngagementReportOfOthers:boolean;\n ParticipantsID:string;\n}\n\nexport class ActivityType {\n ActivityTypeId: number;\n ActivityTypeCode: string;\n private _ActivityType: string;\n\n\n public get ActivityType() {\n return this._ActivityType;\n }\n\n\n ActivityTypeDesc : string\n\n // public get ActivityTypeDesc() {\n // return this.ActivityType;\n // }\n IsActive?: boolean;\n}\n\nexport class ActivityStatus {\n ActivityStatusId: number;\n ActivityStatusCode: string;\n ActivityStatusDesc: string;\n IsActive?: boolean;\n}\n\nexport class ActivityStatusByType {\n StatusCode: string;\n ActivityStatusId: number;\n ActivityStatusDesc: string;\n ActivityStatusCode: string;\n ActivityTypeId: number;\n IsActive?: boolean;\n}\n\nexport class ActivityPurpose {\n ActivityPurposeId: number;\n ActivityPurposeCode: string;\n ActivityPurposeDesc: string;\n IsActive?: boolean;\n}\n\nexport class ActivityPurposeByType {\n ActivityTypeId: number;\n ActivityPurposeId: number;\n ActivityPurposeCode: string;\n ActivityPurposeDesc: string;\n IsActive?: boolean;\n CreatedOn?: Date;\n CreatedBy?: string;\n}\n\nexport class ActivityOutcome {\n ActivityOutcomeId: number;\n ActivityOutcomeCode: string;\n ActivityOutcomeDesc: string;\n IsActive?: boolean;\n CreatedOn?: Date;\n CreatedBy?: string;\n ModifiedOn?: Date;\n ModifiedBy?: string;\n}\n\n\nexport class ActivityOutcomeByType {\n Id: number;\n ActivityTypeId: number;\n ActivityOutcomeId: number;\n ActivityOutcomeCode: string;\n ActivityOutcomeDesc: string;\n IsActive?: boolean;\n}\n\nexport class ActivityParticipant {\n Id: number;\n Activityd: number;\n ActivityParticipant: string;\n ActivityParticipantRoleId: number;\n IsActivityOwner: boolean;\n CreatedOn?: Date;\n CreatedBy?: string;\n ModifiedOn?: Date;\n ModifiedBy?: string;\n}\n\nexport class ActivityParticipants {\n participants: ActivityParticipant[];\n}\n\nexport class ActivityLinkageEntityType {\n Id: number;\n EntityType: string;\n IsActive?: boolean;\n CreatedOn?: Date;\n}\n\nexport class ActivityLinkage {\n ActivityLinkageId?: number;\n ActiviyId?: number;\n EntityTypeId: number;\n EntityId: number;\n CreatedOn?: Date;\n}\n\nexport class EntityRecord {\n EntityId: number;\n EntityTitle: string;\n EntityTypeId: number;\n}\n\nexport class EntityRecords {\n EntityRecord: EntityRecord[];\n}\n\nexport class ActivityLinkages {\n ActivityLinkages: ActivityLinkage[];\n}\n\nexport class User {\n Id: string;\n FirstName: string;\n}\n","export class AddCustomerOpportunityModel {\n\n Id: number;\n CustomerName: string = \"\";\n CustomerAddress:string = \"\";\n KeyPersonName: string = \"\";\n IndustrySegment: string = \"\";\n CustomerType: string = \"\";\n Region: string = \"\";\n OpportunityDate: string = \"\";\n Description:string=\"\";\n}","export class AlertsModel {\n Pk_Id: number;\n Fk_Status: number;\n EnquiryStatus: string = \"\";\n First_Rem: number;\n Second_Rem: number;\n Third_Rem: number;\n First_Rem_ToWhom: number;\n Second_Rem_ToWhom: number;\n Third_Rem_ToWhom: number;\n CC_Rem_toWhom: number;\n ModifiedOn: any;\n Status: boolean;\n Escalation:number;\n\n First_Rem_ToWhomList:string[]=[];\n Second_Rem_ToWhomList:string[]=[];\n Third_Rem_ToWhomList:string[]=[]; \n CC_Rem_toWhomList:string[]=[];\n Escalation_ToWhomList:string[]=[];\n}","import { StringMapWithRename } from '@angular/compiler/src/compiler_facade_interface';\n\nexport class BusinessPlanModel {\n Id: number;\n UserName: string = \"\";\n EmployeeId: string = \"\";\n RoleName: string = \"\";\n RoleId: number = null;\n TargetYear: string = \"\";\n TargetFor: string = \"\";\n RegionName: string = \"\";\n PlanList:PlanModel[] = [\n {Id:0, Month: 1, MonthName: 'January', Units: 0, Amount: 0, FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 2, MonthName: 'February', Units: 0, Amount: 0, FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 3, MonthName: 'March', Units: 0, Amount: 0, FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 4, MonthName: 'April', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 5, MonthName: 'May', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 6, MonthName: 'June', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 7, MonthName: 'July', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 8, MonthName: 'August', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 9, MonthName: 'September', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 10, MonthName: 'October', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 11, MonthName: 'November', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false },\n {Id:0, Month: 12, MonthName: 'December', Units: 0, Amount: 0 , FC1Amount:0,FC2Amount:0,FC3Amount:0,FC1Validation:false,FC2Validation:false,FC3Validation:false, UnitsValidation: false, AmountValidation: false }\n];\n\n}\nexport class PlanModel{\n Id: number = 0;\n Month:number = null; //Month Number\n MonthName: string = \"null\";\n Units: number = 0;\n Amount: number = 0;\n FC1Amount: number = 0;\n FC2Amount: number = 0;\n FC3Amount: number = 0;\n FC1Validation: boolean = false;\n FC2Validation: boolean = false;\n FC3Validation: boolean = false;\n UnitsValidation: boolean = false;\n AmountValidation: boolean = false;\n}\n","export class ChangePasswordModel {\n Id: number;\n oldPassword: string = \"\";\n newPassword: string = \"\";\n confirmNewPassword: string = \"\";\n}","import { NumberValueAccessor } from '@angular/forms'\n\n/****\n This Model class use to update status, Activate = 0,Deactivate = 1, Delete = 2 \n *****/\nexport class UpdateStatus \n{\n RegisterId: number;\n RoleType : number;\n Status: number;\n}","export class CustomerModel {\n \n BasicCustomerInformationModel: BasicCustomerInformationModel = new BasicCustomerInformationModel();\n KeyManagementPersonDetails: ContactPersonDetailsModel = new ContactPersonDetailsModel();\n FirstContactTechnicalPersonDetails: ContactPersonDetailsModel = new ContactPersonDetailsModel();\n FirstContactCommercialPersonDetails: ContactPersonDetailsModel = new ContactPersonDetailsModel();\n FinancialDetails: FinancialDetailsModel = new FinancialDetailsModel();\n WINWSEAContactDetails: WINWSEAContactDetailsModel = new WINWSEAContactDetailsModel();\n CustomerProfile: CustomerProfileModel = new CustomerProfileModel();\n CompanyTurnover: CompanyTurnoverModel = new CompanyTurnoverModel();\n PlantInformationWithGSTNo: PlantInformationWithGSTNoModel [] = [];\n TopManagement: TopManagementModel [] = [];\n WeissBusiness: WeissBusinessModel = new WeissBusinessModel();\n OpportunitiesforWeiss: OpportunitiesforWeissModel = new OpportunitiesforWeissModel();\n \n}\n\nexport class BasicCustomerInformationModel {\n Id: number;\n CompanyName: string = \"\";\n AddressHeadquaters: string = \"\";\n AddressPlant: string = \"\";\n AddressEngineeringDesign: string = \"\";\n City: string = \"\";\n State: string = \"\";\n PINCode: string = \"\";\n CountryName: string = \"\";\n Country: number = null;\n MailAddress: string = \"\";\n WebSite: string = \"\";\n GlobalParent: string = \"\";\n HeadquarterInfo: string = \"\";\n OrganogramFileName: string = \"\";\n OrganogramFilePath: string = \"\";\n CustomerCode:string;\n CurrentVisibleCompetitorsNamewithUSP: string = \"\";\n KYC2FileName: string = \"\";\n KYC2FilePath: string = \"\";\n KYC3FileName: string = \"\";\n KYC3FilePath: string = \"\";\n //for costomer group name & code\n CustomergroupId: number = null;\n CustomergroupName: string = \"\";\n CustomergroupCode: string = \"\";\n leadId:number=0;\n}\n\nexport class ContactPersonDetailsModel {\n Id: number;\n Name: string = \"\";\n ContactNo: string = \"\";\n MailAddress: string = \"\";\n DirectlineNo: string = \"\";\n DigitalSkypeID: string = \"\";\n DigitalOtherID: string = \"\";\n\n}\n\nexport class FinancialDetailsModel {\n Id: number;\n AuthorisedShareCapital: string = \"\";\n BankersDetails: string = \"\";\n UltimateShareholder: string = \"\";\n PercentageShare: number;\n}\n\nexport class WINWSEAContactDetailsModel {\n Id: number;\n WINAccountManager: string = \"\";\n Region: number = null;\n RegionName: string = \"\";\n WINTechnicalContact: string = \"\";\n WINGlobalContact: string = \"\";\n\n}\n\nexport class CustomerProfileModel {\n Id: number;\n Name: string = \"\";\n CompanyInformation: string = \"\";\n BrandsProducts: string = \"\";\n CorporatePresentationFileName: string = \"\";\n CorporatePresentationFilePath: string = \"\";\n IndustrySegment: number = null;\n IndustrySegmentName: string = \"\";\n SubSegment: number = null;\n SubSegmentName: string = \"\";\n CustomerClassification: number = null;\n CustomerClassificationName: string = \"\";\n Typeofcustomer: number = null;\n TypeofcustomerName: string = \"\";\n CustomerCategory: number = null;\n CustomerCategoryName: string = \"\";\n\n}\n\nexport class CompanyTurnoverModel {\n Id: number;\n GroupTurnover: string = \"\";\n GroupTurnoverYear: any = \"\";\n IndiaunitTurnover: string = \"\";\n IndiaunitTurnoverYear: any = \"\";\n DomesticTurnover: string = \"\";\n DomesticTurnoverYear: any = \"\";\n ExportTurnover: string = \"\";\n ExportTurnoverYear: any = \"\";\n ProjectedTurnover: string = \"\";\n ProjectedTurnoverYear: any = \"\";\n Noofemployees: number;\n GlobalParentsJVPartners: string = \"\";\n TechCollaboration: string = \"\";\n CustomersCustomer: string = \"\";\n CustomersKeyCompetitors: string = \"\";\n FocusSegment: string = \"\";\n CompanyStrategy: string = \"\";\n SalesofficeBranchoffice: string = \"\";\n ValueChainInformation: string = \"\";\n\n}\n\nexport class PlantInformationWithGSTNoModel {\n Id: number;\n CompanyName: string = \"\";\n Region: number = null;\n RegionName: string = \"\";\n Address: string = \"\";\n GSTNo: string = \"\";\n KeyAccountNo: string = \"\";\n ContactNo: string = \"\";\n Email: string = \"\";\n\n}\n\nexport class TopManagementModel {\n Id: number;\n Name: string = \"\";\n Designation: string = \"\";\n ContactNo: string = \"\";\n Email: string = \"\";\n \n}\n\nexport class WeissBusinessModel {\n Id: number;\n BusinesswithWINWSEA: string = \"\";\n BusinesswithWNA: string = \"\";\n BusinesswithChina: string = \"\";\n BusinesswithEMEA: string = \"\";\n\n}\n\nexport class OpportunitiesforWeissModel {\n Id: number;\n Indexer: string = \"\";\n HeavyDutyIndexer: string = \"\";\n LinearTransferSystem: string = \"\";\n PickandPlaceSystem: string = \"\";\n LinearSystem: string = \"\";\n Directdrives: string = \"\";\n DeltaRobot: string = \"\";\n Valueaddedsolution: string = \"\";\n AccessoriesSpareParts: string = \"\";\n Comments: string = \"\";\n\n}\n\nexport class AttachmentModel {\n \n KYC2Attachment: any;\n KYC3Attachment: any;\n OrganogramAttachment: any;\n CorporatePresentationAttachment: any;\n\n}\n\nexport class ProductImportExportModel{\n ProductIMPEXP:any;\n}\n\n\n\n","export class EmployeeGuestModel {\n Id: number;\n RegisterId: number;\n Employee_Id: number;\n Username: string = \"\";\n Name: string = '';\n EmpCode: string = '';\n Role: number = null;\n Email: string = '';\n ContactNumber: string = '';\n Region: number[] = [];\n Country: number = null;\n CountryName: string = '';\n RoleType: number;\n Password: string;\n ConfirmPassword: string;\n Status: boolean;\n GuestId: string = '';\n Address: string = '';\n RoleName: string = \"\";\n RegionName: string = \"\";\n ReportingManager:string=\"\";\n ReportingManagerEmail=\"\";\n \n ListRegion:string[];\n Fk_User_Id : string = '';\n AlternateEmployee : string = '';\n StartDate : any;\n EndDate : any;\n RegionForGuest : any;\n}\n\nexport class EmployeeRegion {\n FK_RegionId:number=null;\n}","import { NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { SingleFieldModel } from './SingleFieldModel';\nimport { string, array } from '@amcharts/amcharts4/core';\n\nexport class EnquiryDetailsModel {\n EnquiryDetails: EnquiryModel = new EnquiryModel();\n RFQObject: ProductDetails[] = Array();\n CustomerDetails: CustomerDetails = new CustomerDetails();\n EnqCustomerDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n Comments: Comments[] = Array();\n RemoveFiles: string[] = Array();\n TermsAndConditions: TermsAndCondition[] = Array();\n CustomerServiceComments_Quotation: CommentObj[] = Array();\n CustomerServiceComments_Order: CommentObj[] = Array();\n SalesDirectorComments_Quotation: CommentObj[] = Array();\n SalesDirectorComments_Order: CommentObj[] = Array();\n ActivityDetails: ActivityModel[] = Array();\n POValues: ProductModelPOValues[] = Array();\n CustomerSpecialDiscountdtls: SalesPriceDiscountforCutomerSpecialDiscount[] = Array();\n SalesPriceDiscountdtls: SalesPricediscountList[] = Array();\n DiscountFrom: number = 0;\n DiscountTo: number = 0;\n CustomTermsAndConditions: CustomTermsAndCondition[] = Array();\n CompetitorDetailObj: CompetitorDetails[] = Array();\n Fk_OppCloseReason: number;\n DynamicTCDetailObj: DynamicTermsAndCondition[] = Array();\n CustomerServiceDetails: CustomerServiceDetailModel = new CustomerServiceDetailModel();\n}\n\n\n\nexport class SalesPriceDiscountforCutomerSpecialDiscount {\n ProductDiscount: number = 0;\n Fk_ProductModel: number = 0;\n\n}\n\nexport class SalesPricediscountList {\n DiscountFrom: number = 0;\n DiscountTo: number = 0;\n}\n\nexport class ProductModelPOValues {\n ProductId: Number;\n ProductModelName: string;\n QUotationValue: string;\n // ProductModelPOValue: string;\n ProductModelPOValue: any;\n QuotationQuantity: string;\n QuotationDiscount: any = 0;\n Variant1_Discount: any = 0;\n Variant2_Discount: any = 0;\n Variant3_Discount: any = 0;\n Variant4_Discount: any = 0;\n POQuantity: any;\n POUnitPrice: any;\n PODiscount: any = 0;\n QUotationValueValidation: boolean;\n QuantityValidation: boolean = false;\n QuantityRangeValidation: boolean = false;\n PoUnitPriceValidation: boolean = false;\n PoQuantityValidation: boolean = false;\n Variant1Label: any;\n Variant2Label: any;\n Variant3Label: any;\n Variant4Label: any;\n Options: OptionsModel[] = new Array();\n ScheduledShipmentDate: any;\n Special_pkg_Discount : any = 0;\n}\n\nexport class EnquiryModel {\n UserId: number;\n EnquiryId: number;\n InitiatorName: string = \"\";\n RoleName: string = \"\";\n MngOrderApprovalComments: string = \"\";\n OrdAcknowledgeNumber: string = \"\";\n Comments: string = \"\";\n RFQNumber: string = \"\";\n RFQComments: string = \"\";\n KindAttention: string = \"\";\n KindAttEmailId: string = \"\";\n KindAttContactNo: string = \"\";\n YourReference: string = \"\";\n FinalAmount: any;\n Initiator_Id: any;\n EnquiryStatusDescription: any;\n\n //\n //\n //\n\n InvoiceAttachment: any[] = [];\n Invoice_filename: any;\n Invoice_filepath: any;\n InvoiceNumber: any;\n\n SupplyChainType: string = \"\";\n TentativeDeliveryDate: any;\n RequestedDeliveryDate: any;\n\n POValue: string = \"\";\n POAttchments: any[] = [];\n EnquiryConfirmStatus: string = \"\";\n EnquiryConfirmReason: any = null;\n POOtherAttachments: any[] = [];\n PO_filename: any;\n PO_filepath: any;\n\n EnquiryDescription: string = \"\";\n Status: number;\n EnquiryStatusDisplay: string = \"\";\n EnquiryNumber: string = \"\";\n EnquiryDate: any;\n FkCustomersCustomer_Id:number=null;\n QuotationPdf_filename: any;\n\n EnquiryDateISO: string = \"\";\n TentativeDeliveryDateISO: string = \"\";\n RequestedDeliveryDateISO: string = \"\";\n RFQTermsAndCondition: string = \"\";\n PreviousRFQTermsAndCondition: string;\n EstimatedProductValue: number = null;\n EnquirySourceId: number;\n IsQuotationPriceOnRequest: boolean = false;\n PendingAtRoleId: string;\n QuotationRevisionNo: number = null;\n QuotationNumber: string = \"\";\n\n TechnicalDiscardId: number;\n TechnicalDiscardBy: number;\n segment: number;\n subSegment: number;\n application: number;\n EndCustomer: string = \"\";\n Fk_OppCloseReason: any;\n IsActive: boolean = true;\n EnquiryDeletedBy: number;\n ApplicationDescription: string = \"\";\n IsFetchFromKYC: boolean = false;\n OA_filename: any;\n IsCompetitorRequired: boolean = false;\n\n PackageAndForward: number;\n TransferCharge: number;\n OtherTax: number;\n\n POSubmittedOn: any;\n PurchaseOrderNo: string = \"\";\n BillToAddress: string = \"\";\n ShipToAddress: string = \"\";\n IsIncludedAllSOCharges: boolean = false;\n POValueWithAllSOCharges: string = \"\";\n\n ReasonCategory : any;\n EnquiryConfirmReasonName : string = \"\";\n ReasonCategoryName : string = \"\";\n OrderAckDate : any;\n SalesOrderSpecialPkgDiscount : any =0;\n \n}\n\nexport class removefiles {\n ProductId: number;\n filetype: string;\n}\nexport class CommentObj {\n CommentDate: any;\n Comments: any;\n CommentsBy: any;\n DisplayStatus: any;\n EnquiryId: any;\n Id: any;\n Role: any;\n RoleName: any;\n Status: any;\n UserId: any;\n}\n\nexport class TermsAndCondition {\n Enquiry_TnCId: any;\n TnCId: any;\n TnCName: any;\n TnCValue: any;\n}\n\nexport class DynamicTermsAndCondition {\n Enquiry_TndCId: any;\n TndCId: any;\n TndCName: string = \"\";\n TndCValue: string = \"\";\n IsRowDeleted: boolean;\n TndCNameValidation: boolean = false;\n TndCValueValidation: boolean = false;\n}\n\nexport class CustomerDetails {\n CustomerId: number = 0;\n CustomerCode: string = \"\";\n IndustrySegmentId: number;\n CustomerTypeId: number;\n CustomerCategoryId: number;\n CustomerClassificationId: number;\n RegionId: number;\n CustomerName: string = \"\";\n Region: string = \"\";\n\n}\n\nexport class ProductDetails {\n ProductId: number;\n ProductLine: number;\n ProductModel: number;\n Quantity: number;\n MDSOption: number;\n MDSAttachment: any[] = [];\n ITCAttachment: any[] = [];\n CustomerAttachment: any[] = [];\n WeissAttachment: any[] = [];\n isMDSAttachment: boolean;\n isITCAttachment: boolean;\n isCustomerAttachment: boolean;\n isWeissAttachment: boolean;\n SalesPrice: number;\n EstimatedProductValue: number;\n SalesDiscount: string;\n IsRowDeleted: boolean;\n ProductModelList: any[] = [];\n isProductLineChangeClick: boolean = false;\n MDS_filename: string;\n MDS_filepath: string;\n ITC_filename: string;\n ITC_filepath: string;\n Customer_filename: string;\n Customer_filepath: string;\n Weiss_filename: string;\n Weiss_filepath: string;\n\n deleted_MDS_filename: string;\n deleted_MDS_filepath: string;\n deleted_ITC_filename: string;\n deleted_ITC_filepath: string;\n deleted_Customer_filename: string;\n deleted_Customer_filepath: string;\n deleted_Weiss_filename: string;\n deleted_Weiss_filepath: string;\n\n ProductLineValidation: boolean = false;\n ProductModelValidation: boolean = false;\n QuantityValidation: boolean = false;\n MDSOptionValidation: boolean = false;\n SalesPriceValidation: boolean = false;\n SalesDiscountValidation: boolean = false;\n DiscountFromrange: number;\n Discounttorange: number;\n\n}\n\nexport class CustomerDrpdnDetails {\n CustomerId: number;\n CustomerCode: string = \"\";\n IndustrySegment: string = \"\";\n CustomerType: string = \"\";\n CustomerCategory: string = \"\";\n CustomerClassification: string = \"\";\n Country: string = \"\";\n Region: string = \"\";\n EnquirySource: string = \"\";\n CustomerName: string = \"\";\n RegionId: number;\n Name: string = \"\";\n MailAddress: string = \"\";\n ContactNo: string = \"\";\n}\n\n\nexport class Comments {\n DisplayStatus: string;\n CommentsBy: string;\n RoleName: string;\n Comments: string;\n CommentDate: Date;\n showAttachments: boolean = false;\n}\n\n\nexport class ProductDrpdnDetails {\n ProductLine: SingleFieldModel[] = [];\n ProductModel: SingleFieldModel[] = [];\n MDSOptions: SingleFieldModel[] = [];\n SalesPrice: SingleFieldModel[] = [];\n EstimatedProductValue: SingleFieldModel[] = [];\n}\n\n\nexport class EnquiryGridModel {\n EnquiryId: number;\n EnquiryNumber: string = \"\";\n EnquiryDate: any;\n RegionName: string = \"\";\n CustomerName: string = \"\";\n CustomerCode: string = \"\";\n EnquiryDescription: string = \"\";\n EnquiryStatus: string = \"\";\n EnquiryConfirmStatus: string = \"\";\n EmployeeGuestName: string = \"\";\n EnquirySource: string = \"\";\n CustomerClass: string = \"\";\n CustomerClassification: string = \"\";\n IndustrySegment: string = \"\";\n QuotationNumber: string = \"\";\n}\n\n\nexport class EnquiryConfimrationDetails {\n POValue: any = \"\";\n EnquiryStatus: any;\n StandardReason: any = \"\";\n\n}\nexport class ActivityModel {\n Pk_Id: number;\n EnquiryId: number;\n Activity: string = \"\";\n ActivityDate: any;\n ActivityDateISO: string = \"\";\n Attachment: any[] = [];\n isActivityAttachment: boolean;\n IsRowDeleted: boolean;\n fileName: any;\n filePath: any;\n Updates: any;\n ActionPlan: any;\n WOWUpdates: any;\n ActivityValidation: boolean = false;\n ActivityDateValidation: boolean = false;\n uniqueid: string = \"\";\n ISNewActivityAdded: boolean = false;\n AddedByUserName: string = \"\";\n AddedBy: string = \"\";\n}\n\nexport class EnquiryPaginationGrid {\n pageNumber: number = 0;\n pageSize: number = 0;\n SearchText: string = \"\";\n direction: string = \"\";\n ColumnName: string = \"\";\n\n\n EnquiryDateFromFiter: string = null;\n EnquiryDateToFiter: string = null;\n EstimatedEnquiryValueFilter: string[] = [];\n SegmentFilter: string[] = [];\n MicroSegmentFilter: string[] = [];\n CusomterNameFilter: string[] = [];\n CusomterClassFilter: string[] = [];\n ProdcutFilter: string[] = [];\n QuotationValueToFilter: number = null;\n QuotationValueFromFilter: number = null;\n DiscountFromFilter: number = null;\n DiscounToFilter: number = null;\n QuotationStatusFilter: string[] = [];\n RegionFilter: string[] = [];\n InitiatorNameFilter: string[] = [];\n\n\n}\n\n\nexport class EnquiryGridFilterList {\n EstimatedEnquiryValue: EnquiryGridDropDown[] = [];\n Segment: EnquiryGridDropDown[] = [];\n MicroSegment: EnquiryGridDropDown[] = [];\n OrignaleMicroSegment: EnquiryGridDropDown[] = [];\n CusomterName: EnquiryGridDropDown[] = [];\n CusomterClass: EnquiryGridDropDown[] = [];\n ProductModels: EnquiryGridDropDown[] = [];\n Region: EnquiryGridDropDown[] = [];\n QuotationStatus: string[] = [\"Lost\", \"Open\", \"Won\"];\n InitiatorName: EnquiryGridDropDown[] = [];\n}\nexport class EnquiryGridDropDown {\n Fk_Name: string = \"\";\n Id: number = 0;\n Name: string = \"\";\n}\n\nexport class EnquiryExportToExcelModel {\n\n // EnquiryNumber:string = \"\";\n // EnquiryDate: any;\n // CustomerName:string = \"\"; \n // CustomerCode :string = \"\";\n // EstimatedEnquiryvalue :string = \"\";\n // Segment:string = \"\";\n // Micro_Segment :string = \"\";\n // Region :string = \"\";\n // CustomerClassification :string = \"\";\n // QuotationNumber :string = \"\";\n // Products :string = \"\";\n // Quotation_Amount :string = \"\";\n // Discount :string = \"\";\n // Quotation_Status :string = \"\";\n // Updates :string = \"\";\n // Action_Plan :string = \"\";\n // CRM_updates :string = \"\";\n EnquiryNumber: string = \"\";\n EnquiryDate: any;\n InitiatorName: string = \"\";\n CustomerName: string = \"\";\n CustomerCode: string = \"\";\n IndustrySegment: string = \"\";\n SubSegment: string = \"\";\n CustomerType: string = \"\";\n CustomerCategory: string = \"\";\n CustomerClassification: string = \"\";\n Country: string = \"\";\n Region: string = \"\";\n EnquirySource: string = \"\";\n EnquiryDescription: string = \"\";\n RFQNumber: string = \"\";\n RequestedDeliveryDate: any;\n KindAttentionPerName: string = \"\";\n YourRefPerName: string = \"\";\n RefDate: any;\n RFQRevisionNo: number = 0;\n EstimatedProductvalue: string = \"\";\n RFQTermsAndCondition: string = \"\";\n KindAttContactNo: string = \"\";\n KindAttEmailId: string = \"\";\n QuotationNumber: string = \"\";\n QuotationRevisionNo: number = 0;\n QuotationAmount: number = 0;\n QuotationDiscount: number = 0;\n QuotationFinalAmount: number = 0;\n QuotationSubmittedDate: any;\n POValue: number = 0;\n Quotation_Status: string = \"\";\n POSubmittedOn: any;\n OrdAcknowledgeNumber: string = \"\";\n SupplyChain_Type_Domestic_Export: string = \"\";\n TentativeDateOfDelivery: any;\n InvoiceNo: string = \"\";\n InvoiceSubmittedOn: any;\n EnquiryLostDate: any;\n WinLostReason: string = \"\";\n EnquiryStatus: string = \"\";\n\n ActivityType: string = \"\";\n Activity_Subject: string = \"\";\n ActivityStatus: string = \"\";\n ActivityPurpose: string = \"\";\n ActivityPurposeDesc: string = \"\";\n Activity_Outcome: string = \"\";\n Activity_OutcomeDesc: string = \"\";\n\n ProductLine: string = \"\";\n ProductFamily: string = \"\";\n ProductSeries: string = \"\";\n ProductModel: string = \"\";\n ProductModelPrice: number = 0;\n ProductVariant_1: string = \"\";\n ProductVariant_1Price: number = 0;\n ProductVariant_2: string = \"\";\n ProductVariant_2Price: number = 0;\n ProductVariant_3: string = \"\";\n ProductVariant_3Price: number = 0;\n ProductVariant_4: string = \"\";\n ProductVariant_4Price: number = 0;\n Quantity: number = 0;\n TotalAmount: number = 0;\n Discount: number = 0;\n FinalAmount: number = 0;\n POAmount: number = 0;\n}\n\nexport class CustomTermsAndCondition {\n Enquiry_TnCId: any;\n StandardTC: number = null;\n StandardTCName: string = '';\n CustTCId: number = null;\n CustValue: string = '';\n CustomTCValidation: boolean = false;\n CustomValues: any[] = [];\n}\n\nexport class CompetitorDetails {\n EnquiryId: number = 0;\n CompetitorName: any = \"\";\n ModelName: string = \"\";\n Price: number = null;\n IsRowDeleted: boolean;\n CompetitorNameValidation: boolean = false;\n ModelNameValidation: boolean = false;\n PriceValidation: boolean = false;\n}\n\nexport class OptionsModel {\n ProductOptionId: any; //Quotation table primary key\n OptionId: any; // Options table primary key\n Name: any;\n Price: any;\n IsPriceOnRequest: boolean = false;\n optionValid: boolean = false;\n Option_Discount: any = 0;\n Option_FinalDiscount: any = 0;\n}\n\nexport class CustomerServiceDetailModel {\n CustomerServiceName: string = \"\";\n CustomerServiceEmail: string = \"\";\n CustomerServiceContactNo: string = \"\";\n}\n\n// export class ManagementApprovalDetails {\n// ManagementApprovalId: number;\n// MngApprovalAttachments: any[] = [];\n// MngApprovalCommnents: string = \"\";\n// }\n// export class QuoteGenetationDetails {\n// QuoteGenerationId: number;\n// QuoteGenComments: string = \"\";\n// QuoteGenAttachments: any[] = [];\n// BOMAttachment: any[] = []; //Bill of materials\n// }\n// export class EnquiryDetails {\n// EnquiryId: number;\n// EnquiryDescription: string = \"\";\n// Status: string = \"\";\n// EnquiryNumber: string = \"\";\n// EnquiryDate: Date;\n// }\n// export class SupplyChainDetails {\n// SupplyChainId: number;\n// SupplyChainType: number;\n// TentativeDeliveryDate: Date = new Date();\n// }\n\n","export class HeaderMenuModel{\n \n menuaccessinfo:Menuelement[]=Array();\n ElementKey:string;\n ElementValue:boolean;\n }\n\n export class Menuelement{\n ElementKey:string;\n ElementValue:boolean;\n }","\n\nexport class LeadModel {\n // LeadDetails: LeadModel = new LeadModel();\n Id: number;\n Lead_Id:number;\n CustomerName: string = \"\";\n CustomerAddress:string = \"\";\n KeyPersonName: string = \"\";\n IndustrySegment: string = \"\";\n CustomerType: string = \"\";\n Region: string = \"\";\n LeadDate:any;\n Description:string=\"\";\n Fk_LeadCloseReason: any;\n Status: number;\n IsActive:boolean = false;\n IsConvertToProspect:boolean=false;\n closeReason:any;\n FK_EnquirySourceId: string=\"\";\n FK_Enquiry_Id: string=\"\";\n FK_Customer_Id: string=\"\";\n Comments: any;\n CustomerCode: string=\"\";\n EnquiryNumber:string=\"\";\n }\n ","export class LoginPageImage {\n Id: number;\n ImageName: string = \"\";\n Comment: string = \"\";\n Active: boolean = false;\n}","\nexport class OutofOfficeActivityModel {\n Pk_Id : number;\n OutofOffice:boolean=false; \n StartDate : any;\n EndDate : any;\n //StartDateISO: string = \"\";\n //EndDateISO: string = \"\";\n AlternateUserId : string = \"\";\n AlternateUserName : string = \"\";\n Fk_UserId : string = \"\";\n // Role : any;\n}","export class ProductMatrixModel {\n productid: number = 0;\n productname: string = \"\";\n stationlist: productstation[] = [];\n\n}\n\nexport class productstation {\n stationid: number = 0;\n stationname: string = \"\";\n price: number;\n speedsteplist: productspeedstep[] = [];\n IsStationPOR: boolean = false;\n isStationValid: boolean = true; // Price On Request flag\n\n}\nexport class productspeedstep {\n stepid: number = 0;\n stepname: string = \"\";\n price: number;\n IsSpeedStepPOR: boolean = false; // Price On Request flag\n isSpeedstepValid: boolean = true;\n\n}","export class ProductLine {\n Id: number;\n Name: string = \"\";\n Status: boolean;\n}\n\nexport class ProductFamily {\n Id: number;\n ProductLine: number = null;\n ProductLineName: string = \"\";\n ProductFamilyName: string = \"\";\n Status: boolean;\n}\n\nexport class ProductSeries {\n Id:number;\n ProductLine: number = null;\n ProductLineName: string = \"\";\n ProductFamily: number = null;\n ProductFamilyName: string = \"\";\n SeriesName: string = \"\";\n Label_Variant1: string = '';\n Label_Variant2: string = '';\n Label_Variant3: string = '';\n Label_Variant4: string = '';\n IsLevel2DepOnLevel1: boolean = false;\n IsLevel3DepOnLevel2: boolean = false;\n IsLevel4DepOnLevel3: boolean = false;\n Status: boolean;\n CatlogName: string = '';\n}\n\nexport class ProductModel {\n Id: number;\n ProductSeries: number = null;\n SeriesName: string = \"\";\n ModelName: string = \"\";\n Price: string = \"\";\n ArticleNumber: string = \"\";\n Status: boolean;\n}\n\nexport class VariantLevel1 {\n Id: number;\n ProductSeries: number = null;\n SeriesName: string = \"\";\n ProductModel: number = null;\n ModelName: string = \"\";\n ArticleNumber: string = \"\";\n Level1: Level1Model[] = [];\n Level1arr: any[] = [];\n Price: number = 0;\n Status: boolean;\n otherType: string = '';\n IsPriceOnRequest: boolean = false;\n PrevIsPriceOnRequest: boolean = false;\n PrevPrice: number = 0;\n IsUnits: boolean = false;\n\n}\n\n//Model used for Level1 , Level2 get data with specific id \n//i.e Station-id with Station name\nexport class Level1Model {\n \n Id: number;\n Level1: string;\n}\n\nexport class VariantLevel2 {\n \n Id: number;\n ProductSeries: number = null;\n SeriesName: string = \"\";\n ProductModel: number = null;\n ModelName: string = \"\";\n Level1Id: number = null;\n Level1: string = \"\";\n Level1Price: number = 0;\n Level2: Level1Model[] = [];\n Level2Price: number = 0;\n Status: boolean;\n IsLevel2DepOnLevel1:boolean = false;\n Label_Variant1: string = '';\n Label_Variant2: string = '';\n otherType: string = '';\n Level1IsPriceOnRequest: boolean =false;\n IsPriceOnRequest: boolean = false;\n IsUnits: boolean = false;\n PrevIsPriceOnRequest: boolean = false;\n PrevPrice: number = 0;\n}\n\nexport class VariantLevel3 {\n Id: number;\n ProductSeries: number = null;\n SeriesName: string = \"\";\n ProductModel: number = null;\n ModelName: string = \"\";\n Level1Id:number = null;\n Level1Name:string = \"\";\n Level2Id:number = null;\n Level2:string = \"\";\n Level2Price:number = 0;\n Level3:Level1Model[] = [];\n Level3Price: number = 0;\n Level2IsPriceOnRequest: boolean =false;\n IsLevel3DepOnLevel2:boolean = false;\n IsLevel2DepOnLevel1:boolean = false;\n Label_Variant1: string = \"\";\n Label_Variant2: string = \"\";\n Label_Variant3: string = \"\";\n Status: boolean;\n IsPriceOnRequest: boolean = false;\n IsUnits: boolean = false;\n PrevIsPriceOnRequest: boolean = false;\n PrevPrice: number = 0;\n \n}\n\nexport class VariantLevel4 {\n Id: number;\n ProductSeries: number = null;\n SeriesName: string = \"\";\n ProductModel: number = null;\n ModelName: string = \"\";\n Level1Id:number = null;\n Level2Id:number = null;\n Level3Id:number = null;\n Level3:string = \"\";\n Level3Price:number = 0;\n Level4:Level1Model[] = [];\n Level4Price: number = 0;\n Level3IsPriceOnRequest: boolean =false;\n IsLevel2DepOnLevel1:boolean = false;\n IsLevel3DepOnLevel2:boolean = false;\n IsLevel4DepOnLevel3:boolean = false;\n Label_Variant1: string = \"\";\n Label_Variant2: string = \"\";\n Label_Variant3: string = \"\";\n Label_Variant4: string = \"\";\n Status: boolean;\n IsPriceOnRequest: boolean = false;\n IsUnits: boolean = false;\n PrevIsPriceOnRequest: boolean = false;\n PrevPrice: number = 0;\n \n}\n\nexport class Options {\n Id: number;\n ProductSeries: number = null;\n SeriesName: string = \"\";\n // ProductModel: number = null;\n ProductModelArr: number[] = [];\n ProductModelNameArr: string[] = [];\n ModelName: string = \"\";\n ArticleNumber: string = \"\";\n Option: string = \"\";\n Price: number;\n IsPriceOnRequest: boolean = false;\n}\n\n\n\nexport class Station {\n Id:number;\n Station:string = '';\n}\n\n","import { NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { SingleFieldModel } from './SingleFieldModel';\nimport { string } from '@amcharts/amcharts4/core';\n\nexport class QuotationDetailsModel {\n QuotationInfo: QuotationInfo = new QuotationInfo();\n QuotationObj: ProductDetailsModel[] = Array();\n allseriesmodel:any[];\n}\n\nexport class QuotationInfo {\n EnquiryId: any;\n QuotationNumber: any;\n QuotationDate:any;\n EnquiryStatus: any;\n KindAttention:any;\n KindAttEmailId:string = \"\";\n KindAttContactNo:string = \"\";\n PerUnitAmount :any = 0;\n TotalAmount :any = 0;\n Discount :any = 0;\n FinalAmount :any = 0;\n YourReference:any;\n ReferenceDate:any;\n ReferenceDateISO:any;\n IsPriceOnRequest:boolean = false;\n InitiatorName :string =\"\";\n InitiatorContactNo :string =\"\";\n FinalDiscountres:any=0;\n QuotationComments:string = \"\";\n DiscountforOneOrAll: string = \"\";\n SalesContactPerson:string=\"\";\n ContactNumber:string=\"\";\n SalesContactPersonName:string=\"\";\n}\n\nexport class ProductDetailsModel {\n \n ProductId: any;\n ProductFamily: any;\n ProductSeries: any = undefined;\n ProductModel: any = undefined;\n ProductModelPrice: any = 0;\n Variant1Label: any;\n Variant1: any;\n Variant1Price: any = 0;\n Variant2Label: any;\n Variant2: any;\n Variant2Price: any = 0;\n Variant3Label: any;\n Variant3: any;\n Variant3Price: any = 0;\n Variant4Label: any;\n Variant4: any;\n Variant4Price: any = 0;\n Options: OptionsModel[] = new Array();\n OptionSelected:any[]=[];\n OptionsPrice:any = 0;\n\n\n //for varient and option discount fields\n Varient1_Discount:any =0;\n Varient2_Discount:any =0;\n Varient3_Discount:any =0;\n Varient4_Discount:any =0;\n Model_Discount:any=0;\n Varient1_FinalPrice:any=0;\n Varient2_FinalPrice:any=0;\n Varient3_FinalPrice:any=0;\n Varient4_FinalPrice:any=0;\n Model_FinalPrice:any=0;\n \n Option_Discount:any=0;\n Option_FinalDiscount:any=0;\n\n TotalAmountBySpecialDiscount:any=0;\n\n Special_pkg_Discount:any=0;\n\n //for check box functionality\n\n showVariantOptionPrice:boolean=false;\n showVariantOptionDiscount:boolean=false;\n showSpecialPrice:boolean=false;\n\n Quantity :any = 1;\n PerUnitAmount :any=0;\n TotalforRfqdiscount:any=0;\n TotalforIndividualdiscount:any=0;\n TotalAfterDiscount:any=0;\n TotalAmount: any = 0;\n Discount: any = 0;\n \n FinalAmount: any = 0;\n RevisionNo: any;\n SubmittedDate: Date;\n showTechnicalSpecifications:boolean = false;\n TechnicalSpecifications:TechnicalSpecifications[] = new Array();\n separatedTechSpecs:any[]=[];\n\n IsPriceOnRequest_Variant1:boolean; \n IsPriceOnRequest_Variant2:boolean;\n IsPriceOnRequest_Variant3:boolean;\n IsPriceOnRequest_Variant4:boolean;\n IsUnits_Variant1:boolean; \n IsUnits_Variant2:boolean;\n IsUnits_Variant3:boolean;\n IsUnits_Variant4:boolean;\n Units_Variant1:any = 1; \n Units_Variant2:any = 1;\n Units_Variant3:any = 1;\n Units_Variant4:any = 1;\n\n IsLevel2DepOnLevel1: boolean;\n IsLevel3DepOnLevel2: boolean;\n IsLevel4DepOnLevel3: boolean;\n\n colspan1:any;\n colspan2:any;\n colspan3:any;\n colspan4:any;\n\n //validationVariables\n ProductFamilyValidation:boolean = false;\n ProductSeriesValidation:boolean = false;\n ProductModelValidation:boolean = false;\n ProductModelPriceValidation:boolean = false;\n Variant1Validation:boolean = false;\n Variant1PriceValidation:boolean = false;\n Variant2Validation:boolean = false;\n Variant2PriceValidation:boolean = false;\n Variant3Validation:boolean = false;\n Variant3PriceValidation:boolean = false;\n Variant4Validation:boolean = false;\n Variant4PriceValidation:boolean = false;\n OptionsValidation:boolean = false;\n OptionsPriceValidation:boolean = false;\n QuantityValidation:boolean = false;\n QuantityRangeValidation:boolean = false;\n DiscountValidation:boolean = false;\n \n var1_POR_Validation:boolean = false;\n var2_POR_Validation:boolean = false;\n var3_POR_Validation:boolean = false;\n var4_POR_Validation:boolean = false;\n\n var1_Unit_Validation:boolean = false;\n var2_Unit_Validation:boolean = false;\n var3_Unit_Validation:boolean = false;\n var4_Unit_Validation:boolean = false;\n\n productmodeldata:any;\n selectedProductSeries:any[]=[];\n selectedProductModel:any[]=[];\n selectedVariant1:any[]=[];\n selectedVariant2:any[]=[];\n selectedVariant3:any[]=[];\n selectedVariant4:any[]=[];\n selectedOptions:any[]=[];\n\n IsPriceOnRequest_Option:boolean;\n Options_POR_Validation:boolean = false;\n ShowOptionPriceOnRequestGrid:boolean = false;\n\n\n ///Array for checkbox\n checkboxactive: any[] = [1,2,3];\n}\n\nexport class TechnicalSpecifications {\n Id:Number;\n ProductId:Number;\n value:string;\n uniqueid:string;\n}\n\nexport class OptionsModel {\n ProductOptionId :any; //Quotation table primary key\n OptionId :any; // Options table primary key\n Name:any;\n Price:any;\n IsPriceOnRequest: boolean = false;\n optionValid: boolean = false;\n Option_Discount:any=0;\n Option_FinalDiscount:any=0;\n}\n\nexport class QuotationCustomerDetails{\n CustomerId:any;\n CustomerName:string = \"\";\n City:string=\"\";\n State:string=\"\";\n KindAttention:string=\"\";\n YourReference:any;\n ReferenceDate:any;\n}\n\nexport class ProductDrpdnDetails {\n ProductFamily: any[] = [];\n ProductSeries: any[] = [];\n ProductModel: any[] = [];\n Variant1: any[] = [];\n Variant2: any[] = [];\n Variant3: any[] = [];\n Variant4: any[] = [];\n Options: any[] = [];\n IsLevel2DepOnLevel1: boolean;\n IsLevel3DepOnLevel2: boolean;\n IsLevel4DepOnLevel3: boolean;\n\n}\n\n\nexport class QuotationProductLineViewModel {\n public ProductLine: any;\n ProductModels: QuotationProductViewModel[] = Array();\n}\nexport class QuotationProductViewModel {\n public Id: any;\n public Name: any;\n public Price: any;\n Variant1: VariantViewModel[] = Array();\n Variant2: VariantViewModel[] = Array();\n Variant3: VariantViewModel[] = Array();\n Variant4: VariantViewModel[] = Array();\n}\nexport class VariantViewModel {\n public Id: any;\n public Name: any;\n public Price: any;\n public LabelName: any;\n public IsPriceOnRequest: any;\n public IsUnits: any;\n}\n","export class RegisterModel {\n Id: number;\n Name: string = \"\";\n Username:string = \"\";\n FirstName: string = \"\";\n LastName: string = \"\";\n Email: string = \"\";\n Password: string = \"\";\n ConfirmPassword: string = \"\";\n}","export class ReportFilterViewModel {\n EnqType:string=\"\";\n ReportValueType:string=\"\";\n Year:any;\n Region:any = 0;\n ProductLine:any = 0;\n ProductSeries:any = 0;\n Productmodal:any = 0;\n CustomerClass:any = 0;\n CustomerType:any = 0;\n Segment:any = 0;\n reporttype:any;\n curency:number;\n CustomerId:number = 0;\n CustomerName: string = \"\";\n currencyLable:string = \"\";\n currencycode : string = \"\";\n}","\nexport class SalesOrderBusinesPlan {\n UserName:string = \"\";\n TargetFor: string = \"\";\n Year:string = \"\";\n Month:number;\n Units:number;\n Amount:number;\n Fk_UserId_Target:string;\n}","export class SingleFieldModel {\n \n\n customerSpecialDiscountInfo:CustomerSpecialDiscountDetails[]= Array();\n tranisitionrulesobj:tranisitionruledetails[]=Array();\n \n\n Id: number;\n Name: string = \"\";\n Value: string = \"\";\n \n RoleType: number;\n Status: boolean;\n \n RoleArr: any[] = [];\n\n //for Sales Price \n DiscountFrom:number=0;\n DiscountTo:number=0;\n App_Level1:number=0;\n App_Level2:number=0;\n App_Level3:number=0;\n \n ///Subsegment\n SegmentId:number = null;\n SegmentName:string = '';\n SubSegmentName:string = '';\n SubSegmentId:number = null;\n\n ///TermsConditionsCustomized\n StandardTCId:number = null;\n StandardTCName:string = '';\n CustomTCValue:string = '';\n CustomTCId:number = null;\n\n ///Application\n Application: string = \"\";\n\n ///CustomerSpecialDiscount\n ModelName:string = \"\";\n CompanyName:string=\"\";\n Fk_Customer:number=0;\n Fk_ProductModel:number=0;\n ProductDiscount:number=0;\n UnapprovedProductDiscount:number=0;\n \n IsRowDeleted: boolean;\n //singleFieldComponent: SingleFieldModel[]=[];\n ProductModelRequired:boolean=false;\n productDiscountrequired:boolean=false;\n\n IsCompetitorRequired : boolean;\n action_id:number;\n Comment : string= \"\";\n ReasonCategoryId : number;\n \n}\n\nexport class CustomerSpecialDiscountDetails\n{\n Id: number;\n Name: string = \"\";\n Value: string = \"\";\n Status: boolean;\n \n ModelName:string = \"\";\n CompanyName:string=\"\";\n Fk_Customer:number=0;\n Fk_ProductModel:number=0;\n ProductDiscount:number=0;\n UnapprovedProductDiscount:number=0;\n IsRowDeleted: boolean; \n ProductModelRequired:boolean=false;\n productDiscountrequired:boolean=false;\n action_id:number;\n Comment : string=\"\";\n\n}\n\nexport class SingleFieldComponent {\n Heading: string = \"\";\n RoutingParam: string = \"\";\n ConfirmationText: string = \"\";\n SuccessText: string = \"\";\n SuccessText2: string = \"\";\n ButtonText: string = \"\";\n ActionName: string = \"\";\n ControllerName: string = \"\"; \n isDoubleField: boolean = false;\n isExtraFields:boolean=false;\n isthirdfielddropdown:boolean = false;\n isvariablediscountfield:boolean = false;\n isSalespriceDiscountFields:boolean=false;\n issecondfielddropdown:boolean = false;\n firstFiledLabel: string = \"\";\n secondFiledLabel: string = \"\";\n thirdFiledLabel:string =\"\";\n firstFieldValidationMsg: string = \"\";\n SecondFieldValidationMsg: string = \"\";\n ThirdFieldValidationMsg: string = \"\";\n isDropdownrequird: boolean = false;\n Pattern:any;\n FirstFieldMaxLen:number = 0;\n SecondFieldMaxLen:number = 0;\n ThirdFieldMaxLen:number = 0;\n TableHeader1: string = \"\";\n TableHeader2: string = \"\";\n TableHeader3: string = \"\";\n FirstFiledPattern :string = \"\";\n FirstFiledPatternValidationMessage :string = \"\";\n\n /////////////////////////////\n isTripleField: boolean = false;\n thirdFieldLabel: string = \"\";\n thirdFieldValidationMsg: string = \"\";\n //ThirdFieldMaxLen:number = 0;\n \n SecondFieldPattern :string = \"\";\n SecondFieldPatternValidationMessage :string = \"\";\n ThirdFieldPattern :string = \"\";\n ThirdFieldPatternValidationMessage :string = \"\";\n Companyname:string=\"\";\n isCompanynamerequired:boolean=false;\n ismultiplerecords:boolean=false;\n\n \n}\n\nexport class tranisitionruledetails\n{\n transition_rule_id:number;\n workflow_id:number;\n current_state_id:number;\n action_id:number;\n next_state_id:number;\n action_by_role_id:any;\n condition_code:string;\n pending_at_role_id:any;\n actionname:string;\n Comment : string=\"\";\n}","export class SiteActivityLogModel {\n Pk_LogId: number;\n User_Id: string = '';\n User_Name: string = '';\n Name: string = '';\n Http_Method: string = \"\";\n Browser_Info: string = '';\n EmpCode: string = '';\n Ip_Address: string = '';\n Route: string = '';\n Payload: string = '';\n CreatedOn: any;\n}\n\nexport class SiteActivityLogGridFilterList {\n InitiatorName: SiteActivityGridDropDown[] = [];\n}\nexport class SiteActivityGridDropDown {\n User_Name: string = \"\";\n Id: string = \"\";\n Name: string = \"\";\n}\n\nexport class SiteActivityPaginationGrid {\n pageNumber: number = 0;\n pageSize: number = 0;\n //SearchText: string = \"\";\n direction: string = \"\";\n ColumnName: string = \"\";\n\n EnquiryDateFromFiter: string = null;\n EnquiryDateToFiter: string = null;\n InitiatorNameFilter: string[] = [];\n\n}","export class StockInventoryModel {\n Id:number;\n StockDate:any;\n StockDateISO: string = '';\n StockFileName:string = '';\n StockFilePath:string = '';\n\n}","import { string } from \"@amcharts/amcharts4/core\";\nimport { UserRoles } from \"../UserRoles\";\n\nexport class WorkFlowScreenAccessModel {\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n elementTypeObj:ElementTypeList[]=Array();\n\n Id: number = 0;\n RoleId: string = \"\";\n RoleName: string = \"\";\n isEnquiryForm: boolean = false;\n isRFQ: boolean = false;\n isQuoteGeneration: boolean = false;\n isManagementApproval: boolean = false;\n isCEOApproval: boolean = false;\n isEnquiryConfirmation: boolean = false;\n isSOGeneration: boolean = false;\n isOrderAcknowledgement: boolean = false;\n isSupplyChain: boolean = false;\n isAccounts: boolean = false;\n\n\n\n //////////\n isEnquiryForm_Default: boolean = false;\n isRFQ_Default: boolean = false;\n isQuoteGeneration_Default: boolean = false;\n isManagementApproval_Default: boolean = false;\n isCEOApproval_Default: boolean = false;\n isEnquiryConfirmation_Default: boolean = false;\n isSOGeneration_Default: boolean = false;\n isOrderAcknowledgement_Default: boolean = false;\n isSupplyChain_Default: boolean = false;\n isAccounts_Default: boolean = false;\n}\n\n\nexport class DefaultViewModel {\n\n\nWorkflowDefaultViewAccessArray:any[]= [\n //Admin\n {\n role: UserRoles.Admin, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: true, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n\n // SalesEngineer \n {\n role: UserRoles.SalesEngineer, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // RegionalSalesManager\n {\n role: UserRoles.RegionalSalesManager, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // AreaSalesManager \n {\n role: UserRoles.AreaSalesManager, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // Marketing \n {\n role: UserRoles.Marketing, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: false, isCEOApproval_Default: false,\n isEnquiryConfirmation_Default: false, isSOGeneration_Default: false, isOrderAcknowledgement_Default: false,\n isSupplyChain_Default: false, isAccounts_Default: false\n },\n // L1 \n {\n role: UserRoles.L1, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: true, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // L2 \n {\n role: UserRoles.L2, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // L3\n {\n role: UserRoles.L3, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // BusinessDevelopment\n {\n role: UserRoles.BusinessDevelopment, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // SalesDirector\n {\n role: UserRoles.SalesDirector, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // CEO\n {\n role: UserRoles.CEO, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // FinanceAccounts\n {\n role: UserRoles.FinanceAccounts, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // SupplyChain\n {\n role: UserRoles.SupplyChain, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: false, isSOGeneration_Default: false, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // CustomerService \n {\n role: UserRoles.CustomerService, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: true, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: true, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // ProductManager \n {\n role: UserRoles.ProductManager, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: true, isCEOApproval_Default: true,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: true,\n isSupplyChain_Default: true, isAccounts_Default: true\n },\n // ChannelPartner \n {\n role: UserRoles.ChannelPartner, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: false, isCEOApproval_Default: false,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: false,\n isSupplyChain_Default: false, isAccounts_Default: false\n },\n // Distributor\n {\n role: UserRoles.Distributor, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: false, isCEOApproval_Default: false,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: false,\n isSupplyChain_Default: false, isAccounts_Default: false\n },\n // Agent \n {\n role: UserRoles.Agent, isEnquiryForm_Default: true, isRFQ_Default: true,\n isQuoteGeneration_Default: false, isManagementApproval_Default: false, isCEOApproval_Default: false,\n isEnquiryConfirmation_Default: true, isSOGeneration_Default: false, isOrderAcknowledgement_Default: false,\n isSupplyChain_Default: false, isAccounts_Default: false\n },\n]\n\n}\n\nexport class AccessPermissionModel\n{\n Id? :number;\n Fk_RoleId? :string;\n RoleName?:string;\n Fk_ElementId? :number;\n IsVisible? :boolean;\n IsEditable? :boolean; \n ElementName?:string; \n ElementKey?:any; \n ElementType?:any; \n CanCreate?:boolean;\n CanList?:boolean; \n}\n\nexport class ElementTypeList\n{\n ElementType?:string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'indianCurrency'})\nexport class IndianCurrency implements PipeTransform {\n transform(value: any): any {\n\n if (! isNaN(value)) {\n // var currencySymbol = '₹';\n //var output = Number(input).toLocaleString('en-IN'); <-- This method is not working fine in all browsers! \n var result = value?.toString().split('.');\n var res = this.transformtValue(result);\n \n result=res?.toString().split('.');\n var lastThree = result[0].substring(result[0].length - 3);\n var otherNumbers = result[0].substring(0, result[0].length - 3);\n if (otherNumbers != '')\n lastThree = ',' + lastThree;\n var output = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree;\n\n if (result.length > 1) {\n output += \".\" + result[1];\n \n } \n else{\n output += \".00\";\n } \n\n return output;\n }\n }\n transformtValue(value){\n return Math.abs(value)\n }\n}","import { map } from '@amcharts/amcharts4/.internal/core/utils/Iterator';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { Menuelement } from '../Model/HeaderMenuModel';\nimport { AccessPermissionModel } from '../Model/WorkFlowScreenAccessModel';\nimport { CommonService } from './common.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccessPermissionService {\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n menuaccessinfo:Menuelement[]=Array();\n constructor(private commonService: CommonService) { }\n\n GetAll(): Observable\n {\n return this.commonService.GetData('AccessPermission','GetPermissionsForCurrentUser', null);\n }\n\n GetWorkFlowAccessScreen()\n {\n \n } \n\n}\n","\n\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { Activity, ActivityLinkageEntityType, ActivityOutcome, ActivityParticipants, ActivityPurpose, ActivityStatusByType, ActivityType, EntityRecord, User } from '../Model/ActivityModel';\nimport { CommonService } from './common.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityService {\n private readonly apiUrl = 'https://my-api.com/activities';\n\n\n // private mockActivities: Activity[] = [\n // {\n // ActivityId: 1,\n // Subject: 'Meeting with client',\n // ActivityOwner: 'John Doe',\n // ActivityOwnerRoleId: 1,\n // Priority: 'High',\n // Address: '123 Main St.',\n // ActivityTypeId: 1,\n // ActivitySubType: 'Sales Meeting',\n // ActivityPurposeId: 1,\n // PurposeDesc: 'Discuss new product line',\n // ActivityOutcomeId: 1,\n // OutcomeDesc: 'Agreed to move forward with purchase',\n // ActivityStatusId: 1,\n // Comment: 'Follow up next week',\n // PlannedStartDatetime: new Date(),\n // PlannedDueDatetime: new Date(),\n // ActualStartDatetime: new Date(),\n // ActualCompletionDatetime: new Date(),\n // CreatedOn: new Date(),\n // CreatedBy: 'Jane Smith',\n // ModifiedOn: new Date(),\n // ModifiedBy: 'Jane Smith',\n // InEditMode: false,\n\n // },\n // {\n // ActivityId: 2,\n // Subject: 'Phone call with prospect',\n // ActivityOwner: 'John Doe',\n // ActivityOwnerRoleId: 1,\n // Priority: 'Low',\n // ActivityTypeId: 2,\n // ActivityPurposeId: 2,\n // ActivityOutcomeId: 2,\n // ActivityStatusId: 2,\n // PlannedStartDatetime: new Date(),\n // PlannedDueDatetime: new Date(),\n // CreatedOn: new Date(),\n // CreatedBy: 'Jane Smith',\n // ModifiedOn: new Date(),\n // ModifiedBy: 'Jane Smith',\n // InEditMode: false\n // },\n // // {\n // // ActivityId: 2,\n // // Subject: 'Phone call with prospect',\n // // ActivityOwner: 'John Doe',\n // // ActivityOwnerRoleId: 1,\n // // Priority: 'Medium',\n // // ActivityTypeId: 2,\n // // ActivityPurposeId: 2,\n // // ActivityOutcomeId: 2,\n // // ActivityStatusId: 2,\n // // PlannedStartDatetime: new Date(),\n // // PlannedDueDatetime: new Date(),\n // // CreatedOn: new Date(),\n // // CreatedBy: 'Jane Smith',\n // // ModifiedOn: new Date(),\n // // ModifiedBy: 'Jane Smith',\n // // InEditMode:false\n // // }, {\n // // ActivityId: 2,\n // // Subject: 'Phone call with prospect',\n // // ActivityOwner: 'John Doe',\n // // ActivityOwnerRoleId: 1,\n // // Priority: 'Low',\n // // ActivityTypeId: 2,\n // // ActivityPurposeId: 2,\n // // ActivityOutcomeId: 2,\n // // ActivityStatusId: 2,\n // // PlannedStartDatetime: new Date(),\n // // PlannedDueDatetime: new Date(),\n // // CreatedOn: new Date(),\n // // CreatedBy: 'Jane Smith',\n // // ModifiedOn: new Date(),\n // // ModifiedBy: 'Jane Smith',\n // // InEditMode:false\n // // }, {\n // // ActivityId: 3,\n // // Subject: 'Phone call with prospect',\n // // ActivityOwner: 'John Doe',\n // // ActivityOwnerRoleId: 1,\n // // Priority: 'Low',\n // // ActivityTypeId: 2,\n // // ActivityPurposeId: 2,\n // // ActivityOutcomeId: 2,\n // // ActivityStatusId: 2,\n // // PlannedStartDatetime: new Date(),\n // // PlannedDueDatetime: new Date(),\n // // CreatedOn: new Date(),\n // // CreatedBy: 'Jane Smith',\n // // ModifiedOn: new Date(),\n // // ModifiedBy: 'Jane Smith',\n // // InEditMode:false\n // // }, {\n // // ActivityId: 3,\n // // Subject: 'Phone call with prospect',\n // // ActivityOwner: 'John Doe',\n // // ActivityOwnerRoleId: 1,\n // // Priority: 'High',\n // // ActivityTypeId: 2,\n // // ActivityPurposeId: 2,\n // // ActivityOutcomeId: 2,\n // // ActivityStatusId: 2,\n // // PlannedStartDatetime: new Date(),\n // // PlannedDueDatetime: new Date(),\n // // CreatedOn: new Date(),\n // // CreatedBy: 'Jane Smith',\n // // ModifiedOn: new Date(),\n // // ModifiedBy: 'Jane Smith',\n // // InEditMode:false\n // // }\n // ];\n\n constructor(private http: HttpClient, private commonService: CommonService) { }\n\n\n getAllActivities(): Observable {\n return this.commonService.GetData(\"Activity\", \"Getall\", null);\n }\n\n\n // getActivity(activityId: number): Observable {\n // return of({ ...this.mockActivities[0] });\n // }\n\n\n addOrUpdateActivity(activity: Activity): Observable {\n if (activity.ActivityId) {\n return this.commonService.PostDataForCustomerEnagement(\"Activity\", \"Update\", activity, null);\n } else {\n\n if (isNaN(activity.ActivityId) || activity.ActivityId < 1) {\n return this.commonService.PostDataForCustomerEnagement(\"Activity\", \"Add\", activity, null);\n }\n return of(activity);\n\n }\n //console.log(activity)\n\n // const index = this.mockActivities.findIndex((a) => a.ActivityId === activity.ActivityId);\n // if (index !== -1) {\n // // return this.commonService.PostData(\"Activity\", \"Update\", activity,null,null);\n // // return this.updateActivity(activity);\n // } else {\n // return this.addActivity(activity);\n // }\n\n // return this.commonService.PostData(\"Activity\", \"Update\", activity,null);\n\n }\n\n\n editActivity(activity: Activity): Observable {\n return of(activity);\n }\n\n\n deleteActivity(activity: Activity): Observable {\n return of(activity);\n }\n\n\n\n\n addActivity(activity) {\n if (isNaN(activity.ActivityId) || activity.ActivityId < 1) {\n return this.commonService.PostDataForCustomerEnagement(\"Activity\", \"Add\", activity, null);\n }\n return of(activity);\n }\n\n\n // updateActivity(activity: Activity) {\n\n // const index = this.mockActivities.findIndex((a) => a.ActivityId === activity.ActivityId);\n\n // if (activity.ActivityId > 0) {\n // this.mockActivities[index] = activity;\n // }\n // return of(activity);\n // }\n\n\n\n // ----Dropdowns ActivityType, Status, Outcome, Purpose-----\n\n\n private mockActivityTypeMaster: ActivityType[] = [\n ]\n\n private mockActivityStatusByTypeMaster: ActivityStatusByType[] = [\n {\n StatusCode: 'Pending',\n ActivityStatusId: 1,\n ActivityStatusDesc: 'Pending',\n ActivityStatusCode: 'Pending',\n ActivityTypeId: 1,\n IsActive: true,\n }, {\n StatusCode: 'Inprocess',\n ActivityStatusId: 2,\n ActivityStatusDesc: 'Inprocess',\n ActivityStatusCode: 'Inprocess',\n ActivityTypeId: 2,\n IsActive: false,\n }, {\n StatusCode: 'Done',\n ActivityStatusId: 3,\n ActivityStatusDesc: 'Done',\n ActivityStatusCode: 'Done',\n ActivityTypeId: 3,\n IsActive: false,\n },\n\n\n ]\n\n private mockActivityOutcomeMaster: ActivityOutcome[] = [\n\n {\n ActivityOutcomeId: 1,\n ActivityOutcomeCode: \"AAA\",\n ActivityOutcomeDesc: \"Final\",\n IsActive: false,\n CreatedOn: new Date(),\n CreatedBy: \"assdf\",\n ModifiedOn: new Date(),\n ModifiedBy: 'fefe'\n }, {\n ActivityOutcomeId: 2,\n ActivityOutcomeCode: \"BBB\",\n ActivityOutcomeDesc: \"Final\",\n IsActive: false,\n CreatedOn: new Date(),\n CreatedBy: \"assdf\",\n ModifiedOn: new Date(),\n ModifiedBy: 'fefe'\n }, {\n ActivityOutcomeId: 3,\n ActivityOutcomeCode: \"CCC\",\n ActivityOutcomeDesc: \"Final\",\n IsActive: false,\n CreatedOn: new Date(),\n CreatedBy: \"assdf\",\n ModifiedOn: new Date(),\n ModifiedBy: 'fefe'\n }\n ]\n\n\n private mockActivityPurposeMaster: ActivityPurpose[] = [\n {\n ActivityPurposeId: 1,\n ActivityPurposeCode: 'wee',\n ActivityPurposeDesc: 'add',\n IsActive: true,\n },\n {\n ActivityPurposeId: 2,\n ActivityPurposeCode: 'wee',\n ActivityPurposeDesc: 'vrrtrt',\n IsActive: true,\n },\n {\n ActivityPurposeId: 3,\n ActivityPurposeCode: 'wee',\n ActivityPurposeDesc: 'vgtfd',\n IsActive: true,\n }\n ]\n\n\n\n getActivityById(activityId): Observable {\n let queryString = \"id=\" + activityId;\n\n return this.commonService.GetData(\"Activity\", \"Getbyid\", queryString);\n }\n\n\n\n getActivityTypeMaster(): Observable {\n return this.commonService.GetData(\"ActivityType\", \"GetAll\", null);\n }\n\n getActivityStatusMaster(activityTypeId) {\n let queryString;\n if (activityTypeId == null) {\n queryString = null;\n }\n else {\n queryString = \"activityTypeId=\" + activityTypeId;\n }\n return this.commonService.GetData(\"ActivityStatus\", queryString == null ? \"GetAll\" : \"GetAllByType\", queryString);\n // return of([...this.mockActivityStatusByTypeMaster]);\n }\n\n\n getActivityOutcomeMaster(activityTypeId) {\n let queryString = \"activityTypeId=\" + activityTypeId;\n return this.commonService.GetData(\"ActivityOutcome\", \"GetAllByType\", queryString);\n //return of ([...this.mockActivityOutcomeMaster])\n }\n\n\n getActivityPurposeMaster(activityTypeId) {\n let queryString = \"activityTypeId=\" + activityTypeId;\n return this.commonService.GetData(\"ActivityPurpose\", \"GetAllByType\", queryString);\n // return of ([...this.mockActivityPurposeMaster]);\n }\n\n getallEntityTypesMaster() {\n // return of ([...this.allEntityTypesMaster])\n return this.commonService.GetData(\"ActivityLinkEntityType\", \"GetAll\", null);\n\n }\n\n getrelatedEntityRecords(entityTypeId,entityIds) {\n\n if(!entityIds || !Array.isArray(entityIds)){\n entityIds=[];//initialize with blank in case its null or not an array\n }\n\n let queryString = \"EntityTypeId=\" + entityTypeId + \"&EntityIds=\"+encodeURIComponent(entityIds.join(\",\"));\n\n // console.log(queryString);\n\n return this.commonService.GetData(\"Activity\", \"EntityData\", queryString);\n }\n\n\n getallUserMaster() {\n return this.commonService.GetData(\"Account\", \"GetAllUsers\", null);\n }\n getActivityByFilter(reqBody: any) {\n return this.commonService.PostDataForCustomerEnagement(\"Activity\", \"GetDataPagination\", reqBody, null);\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { AppConfig } from 'src/assets/constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppConfigService {\n\n constructor() { }\n\n private config = AppConfig;\n\n getConfig() {\n return this.config;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\nimport { AppGlobals } from '../app.global';\nimport { BehaviorSubject, Observable, of, Subscription } from 'rxjs';\nimport { Action } from 'rxjs/internal/scheduler/Action';\nimport { query } from '@angular/animations';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonService {\n RefreshHeader = new EventEmitter(); \n subsVar: Subscription; \n private previousUrl: BehaviorSubject = new BehaviorSubject(null);\n public previousUrl$: Observable = this.previousUrl.asObservable();\n \n constructor(private http: HttpClient) { }\n\n \n GetData(ControllerName: string, ActionName: string, queryString: any) { \n let userToken = localStorage.getItem(\"userToken\");\n\n var reqHeader = new HttpHeaders().set(\"Authorization\", \"Bearer \" + userToken);\n if (queryString != null) {\n return this.http.get(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName + '?' + queryString, { headers: reqHeader })\n }\n else {\n return this.http.get(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName, { headers: reqHeader });\n }\n }\n\n getpdf(ControllerName: string, ActionName: string, model: any): Observable {\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n //headers = headers.set('Accept', 'application/pdf');\n return this.http.post(AppGlobals.baseAppUrl + \"/api/\" + ControllerName + \"/\" + ActionName,\n model, httpOptions);\n }\n\n getPrintPreview(ControllerName: string, ActionName: string, queryString: any): Observable {\n let userToken = localStorage.getItem(\"userToken\");\n\n var reqHeader = new HttpHeaders().set(\"Authorization\", \"Bearer \" + userToken);\n if (queryString != null) {\n return this.http.get(AppGlobals.baseAppUrl + ControllerName + \"/\" + ActionName + '?' + queryString, { headers: reqHeader ,responseType:\"text\"})\n }else{\n return of(\"\");\n }\n \n }\n\n\n PostData(ControllerName: string, ActionName: string, data: any, queryString: any,pk_cutomer_id:number=0) {\n let userToken = localStorage.getItem(\"userToken\");\n var reqHeader = new HttpHeaders().set(\"Authorization\", \"Bearer \" + userToken);\n \n var url = AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName + (queryString != null ? \"?\" + queryString : \"\")\n if (data != null) {\n return this.http.post(url, data, { headers: reqHeader });\n }\n else {\n return this.http.post(url, \"\", { headers: reqHeader });\n }\n }\n GetUserProfileData(ControllerName: string, ActionName: string) {\n let userToken = localStorage.getItem(\"userToken\");\n var reqHeader = new HttpHeaders().append(\"Authorization\", \"Bearer \" + userToken);\n return this.http.get(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName, { headers: reqHeader });\n }\n\n RefreshHeaderFun() { \n this.RefreshHeader.emit(); \n }\n\n gereatePDF(ControllerName: string, ActionName: string, filename: any) {\n let userToken = localStorage.getItem(\"userToken\");\n var reqHeader = new HttpHeaders().set(\"Authorization\", \"Bearer \" + userToken);\n return this.http.get(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName+\"?filename=\"+filename, { headers: reqHeader,responseType: 'blob' }); \n }\n\n getImageName(ControllerName: string, ActionName: String) {\n\n return this.http.get(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName); \n }\n\n\n setPreviousUrl(previousUrl: string) {\n this.previousUrl.next(previousUrl);\n }\n\n PostDataForCustomerEnagement(ControllerName: string, ActionName: string, data: any, queryString: any,cutomerid:number=0) {\n let userToken = localStorage.getItem(\"userToken\");\n var reqHeader = new HttpHeaders().set(\"Authorization\", \"Bearer \" + userToken);\n if (data != null && queryString == null) {\n if(cutomerid!=0)\n {\n queryString=\"pk_cutomer_id=\"+cutomerid;\n return this.http.post(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName + '?' + queryString, data, { headers: reqHeader });\n }\n return this.http.post(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName, data, { headers: reqHeader }); \n \n }\n else {\n return this.http.post(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName + '?' + queryString, \"\", { headers: reqHeader });\n }\n\n }\n\n PostStatus(ControllerName: string, ActionName: string, queryString: any,Customerid:number=0) {\n let userToken = localStorage.getItem(\"userToken\");\n var reqHeader = new HttpHeaders().set(\"Authorization\", \"Bearer \" + userToken);\n var url = AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName + (queryString != null ? \"?\" + queryString : \"\")+(Customerid != null ? \"&Customerid=\" + Customerid : \"\");\n return this.http.post(url, \"\", { headers: reqHeader });\n }\n\n convertArrayToObject(data: []): Observable {\n const result = {};\n data.forEach(accesspermission => {\n const key = `${accesspermission['RoleName']}`;\n if (!result[key]) {\n result[key] = {};\n }\n if (!result[key][accesspermission['ElementName']]) {\n if(!result[key][accesspermission['ElementType']])\n {\n result[key][accesspermission['ElementType']] = [];\n }\n }\n \n result[key][accesspermission['ElementType']].push(accesspermission);\n });\n return of(result);\n\n }\n\n \n GetAllAccesspermission(): Observable {\n return this.GetData('AccessPermission', 'GetPermissionsForCurrentUser', null);\n //return null;\n }\n\n GetPdfInCurrency(ControllerName: string, ActionName: string, queryString: any): Observable { \n \n return this.http.get(AppGlobals.baseAppUrl + \"api/\" + ControllerName + \"/\" + ActionName + '?' + queryString, { responseType: 'blob' })\n \n }\n \n\n}","import { Injectable } from \"@angular/core\";\nimport { of } from \"rxjs\";\nimport { CommonService } from \"./common.service\";\n@Injectable({\n providedIn: 'root'\n})\nexport class EngagementReportServiceService {\n constructor(private commonService: CommonService) {}\n\n dataSet = [\n {\n Id: 1,\n currentWorkflowId:4,\n previousWorkflowId:3, \n Status:1 \n },\n {\n Id: 2,\n currentWorkflowId:7,\n previousWorkflowId:4, \n Status:3\n },\n {\n Id: 3,\n currentWorkflowId:9,\n previousWorkflowId:7, \n Status:35\n },\n {\n Id: 4,\n currentWorkflowId:10,\n previousWorkflowId:9, \n Status:38\n },\n ]\n // {\n // type: \"Call\",\n // \"Not Started\": 10,\n // \"In progress\": 16,\n // Completed: 24,\n // },\n // {\n // type: \"Visit\",\n // \"Not Started\": 12,\n // \"In progress\": 9,\n // Completed: 15,\n // },\n // ];\n\n // dataSet2 = [\n // {\n // month: \"January\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"February\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"March\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"April\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"May\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"June\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"July\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"August\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"September\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"October\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"November\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // {\n // month: \"December\",\n // meeting: 20,\n // call: 60,\n // visit: 15,\n // },\n // ];\n\n // getReportByTypeStatus() {\n // return of(this.dataSet1);\n // }\n // getReportByTypeMonth() {\n // return of(this.dataSet2);\n // }\n\n getSendbackRules() {\n // return this.commonService.PostData(\"Activity\", \"GetChartData\", data, null)\n return this.dataSet;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CommonService } from './common.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EngagementReportService {\n constructor(private commonService: CommonService) { }\n\n seriesColors: string[] = [\n \"#FF0000\",\n \"#097969\",\n \"#800080\",\n \"#0080FE\",\n \"#8B4513\",\n \"#808080\",\n \"#6F00FF\",\n \"#FFFF00\",\n \"#32CD32\",\n \"#C1E1C1\",\n \"#00308F\"\n ]\n\n getReportData(data: any) {\n return this.commonService.PostData(\"Activity\", \"GetChartData\", data, null)\n }\n\n\n transformChartData(xCategory, yCategory, seriesCategory, chartData) {\n let transformedChartData = {};\n\n let allSeriesNames = this.getAllSeriesName(seriesCategory, chartData);\n\n // console.log('allSeriesNames');\n // console.log(allSeriesNames);\n\n for (let item of chartData) {\n\n let category = item[xCategory];\n let seriesCat = item[seriesCategory];\n\n if (!transformedChartData[category]) {\n transformedChartData[category] = {};\n transformedChartData[category][xCategory] = item[xCategory];\n\n for (let seriesName of allSeriesNames) {\n transformedChartData[category][seriesName] = 0;\n }\n }\n\n if (!transformedChartData[category][seriesCat]) {\n transformedChartData[category][seriesCat] = 0;\n }\n\n transformedChartData[category][seriesCat] += item[yCategory];\n }\n\n // console.log('transformed chart data in key values');\n // console.log(transformedChartData);\n\n let arrayformat = this.convertToArray(transformedChartData);\n\n return arrayformat;\n\n }\n\n getAllSeriesName(seriesCategory, chartData) {\n let seriesNames = new Array();\n\n for (let item of chartData) {\n // console.log(item);\n let seriesCat = item[seriesCategory];\n if (seriesNames.indexOf(seriesCat) < 0) {\n seriesNames.push(seriesCat);\n }\n }\n\n return seriesNames;\n }\n\n convertToArray(data: any) {\n let result = Array.from(\n Object.keys(data),\n (k) => data[k]\n );\n // console.log(data);\n\n return result;\n }\n\n\n convertArrayToObject(data: []): any {\n const result = {};\n\n data.forEach(activity => {\n const key = `${activity['ActivityYear']}-${activity['ActivityMonth']}-${activity['ActivityDay']}`;\n\n if (!result[key]) {\n result[key] = {};\n }\n\n if (!result[key][activity['PlanType']]) {\n result[key][activity['PlanType']] = [];\n }\n result[key][activity['PlanType']].push(activity);\n });\n\n return result;\n }\n\n}","\nimport { Injectable } from '@angular/core';\n\nimport * as Excel from 'exceljs/dist/exceljs'\nimport * as fs from 'file-saver';\nimport * as XLSX from 'xlsx';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\nconst EXCEL_EXTENSION = '.xlsx';\n@Injectable({\n providedIn: 'root'\n})\n\n\nexport class ExportToExcelService {\n constructor() {\n }\n \n\n generateExcelwithdata(data1: any, quotationheader: any, excelFileName: string) {\n\n let workbook = new Excel.Workbook();\n\n workbook = this.getQuotationWorksheet(data1, quotationheader, workbook);\n // workbook = this.getBomworkSheet(sheet2, workbook);\n\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n this.saveAsExcelFile(data, excelFileName);\n })\n\n\n }\n\n saveAsExcelFile(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n //var currentdate = this.datePipe.transform(new Date(), \"dd-MM-yyyy\");\n fs.saveAs(data, fileName + EXCEL_EXTENSION);\n }\n\n getQuotationWorksheet(data1: any, quotationheader: any, workbook: Excel.WorkBook) {\n \n let Quotationworksheet = workbook.addWorksheet('Region wise - Product Data',{\n pageSetup:{\n paperSize: 9,\n orientation:'landscape',\n fitToPage: true, \n fitToHeight: 5, \n fitToWidth: 7}\n });\n \n // const imageId1 = workbook.addImage({\n // filename: 'https://assemblysolutionsinc.com/wp-content/uploads/2017/05/weiss-logo.png',\n // extension: 'png',\n // });\n // Quotationworksheet.addBackgroundImage(imageId1);\n \n let QuotaionheaderRow = Quotationworksheet.addRow(quotationheader);\n QuotaionheaderRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: 'FFFFFF00' },\n bgColor: { argb: 'FF0000FF' }\n }\n let value = cell.value;\n cell.value = value;\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n\n })\n for (let key of Object.keys(data1)) {\n let tmparray = [];\n let tmpobj = data1[key];\n\n for (let key of Object.keys(tmpobj)) {\n let tmpobj1 = tmpobj[key];\n\n tmparray.push(tmpobj1)\n }\n let row = Quotationworksheet.addRow(tmparray);\n row.eachCell((cell, number) => {\n // let color = cell.value.color;\n let value = cell.value;\n // cell.fill = {\n // type: 'pattern',\n // pattern: 'solid',\n // fgColor: { argb: color }\n // }\n cell.value = value;\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n\n })\n }\n\n return workbook;\n }\n getBomworkSheet(sheet2: any[], workbook: Excel.WorkBook) {\n\n let Bomworksheet = workbook.addWorksheet('BOM');\n let Bomheader = ['FiguerNumber', 'ItemCode', 'PartName', 'Qty', 'Weight', 'Area', 'RatePerKG', 'UnitMC', 'TotalMC', 'Machining_Cost', 'IncoTerm_value']\n let BomheaderRow = Bomworksheet.addRow(Bomheader);\n\n BomheaderRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: 'FFFFFF00' },\n bgColor: { argb: 'FF0000FF' }\n }\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n\n })\n for (let key of Object.keys(sheet2)) {\n let tmparray = [];\n let tmpobj = sheet2[key];\n\n for (let key of Object.keys(tmpobj)) {\n let tmpobj1 = tmpobj[key];\n tmparray.push(tmpobj1)\n }\n Bomworksheet.addRow(tmparray);\n }\n return workbook;\n\n }\n}\n\n","import { Injectable, Input } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { AppGlobals } from 'src/app/app.global';\nimport { RegisterModel } from '../Model/RegisterModel';\nimport { throwError, Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { LoaderComponent } from '../loader/loader.component';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RegisterService {\n\n constructor(private http: HttpClient) { }\n\n login(data: RegisterModel): any {\n var logindata = \"username=\" + data.Email + \"&password=\" + data.Password + \"&grant_type=password\";\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/x-www-urlencoded', 'No-Auth': 'True' });\n return this.http.post(AppGlobals.baseAppUrl + 'Token', logindata, { headers: reqHeader });\n }\n\n forgotPassword(Username) {\n const reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\n return this.http.post(AppGlobals.baseAppUrl + 'api/Account/ForgotPassword', {\"Username\":Username} ,{ headers: reqHeader });\n }\n\n getImageName(ControllerName: string, ActionName: String) {\n const reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\n return this.http.get(AppGlobals.baseAppUrl+\"api/\"+ControllerName+\"/\"+ActionName,{ headers: reqHeader });\n\n }\n \n\n}\n","export enum UserRoles {\n //Employee\n Admin = \"1\",\n SalesEngineer = \"2\",\n RegionalSalesManager = \"16\",\n AreaSalesManager = \"17\",\n Marketing = \"18\",\n L1 = \"3\",\n L2 = \"4\",\n L3 = \"5\",\n BusinessDevelopment = \"6\",\n SalesDirector = \"7\",\n CEO = \"8\",\n FinanceAccounts = \"9\",\n SupplyChain = \"10\",\n CustomerService = \"14\",\n ProductManager = \"15\",\n ExecutiveBusinessAssistant = \"19\",\n ManagerSolutionsFactoryAndLocalization = \"20\",\n //Guest\n ChannelPartner = \"11\",\n Distributor = \"12\",\n Agent = \"13\",\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RegisterComponent } from './register/register.component';\nimport { AppComponent } from './app.component';\nimport { DashboardComponent } from './sub-component/dashboard/dashboard.component';\nimport { ProfileComponent } from './profile/profile.component';\nimport { EnquiryComponent } from './sub-component/enquiry/enquiry/enquiry.component';\nimport { AddEnquiryComponent } from './sub-component/enquiry/add-enquiry/add-enquiry.component';\nimport { EditViewEnquiryComponent } from './sub-component/enquiry/edit-view-enquiry/edit-view-enquiry.component';\nimport { AddCustomerComponent } from './sub-component/masters/customer/add-customer/add-customer.component';\nimport { EditViewCustomerComponent } from './sub-component/masters/customer/edit-view-customer/edit-view-customer.component';\nimport { CustomerDetailsComponent } from './sub-component/masters/customer/customer-details/customer-details.component';\nimport { ConfigurationDetailsComponent } from './sub-component/masters/configuration/configuration-details/configuration-details.component';\nimport { AddConfigurationComponent } from './sub-component/masters/configuration/add-configuration/add-configuration.component';\nimport { EditViewConfigurationComponent } from './sub-component/masters/configuration/edit-view-configuration/edit-view-configuration.component';\nimport { AddProductLineComponent } from './sub-component/masters/product/product-line/add-product-line/add-product-line.component';\nimport { ProductLineDetailsComponent } from './sub-component/masters/product/product-line/product-line-details/product-line-details.component';\nimport { AddProductFamilyComponent } from './sub-component/masters/product/product-family/add-product-family/add-product-family.component';\nimport { ProductFamilyDetailsComponent } from './sub-component/masters/product/product-family/product-family-details/product-family-details.component';\nimport { ProductSeriesDetailsComponent } from './sub-component/masters/product/product-series/product-series-details/product-series-details.component';\nimport { AddProductSeriesComponent } from './sub-component/masters/product/product-series/add-product-series/add-product-series.component';\nimport { ProductModelDetailsComponent } from './sub-component/masters/product/product-model/product-model-details/product-model-details.component';\nimport { AddProductModelComponent } from './sub-component/masters/product/product-model/add-product-model/add-product-model.component';\nimport { OptionsDetailsComponent } from './sub-component/masters/product/options/options-details/options-details.component';\nimport { AddOptionsComponent } from './sub-component/masters/product/options/add-options/add-options.component';\nimport { EditViewProductFamilyComponent } from './sub-component/masters/product/product-family/edit-view-product-family/edit-view-product-family.component';\nimport { EditViewOptionsComponent } from './sub-component/masters/product/options/edit-view-options/edit-view-options.component';\nimport { EditViewProductSeriesComponent } from './sub-component/masters/product/product-series/edit-view-product-series/edit-view-product-series.component';\nimport { EditViewProductModelComponent } from './sub-component/masters/product/product-model/edit-view-product-model/edit-view-product-model.component';\nimport { EditViewProductLineComponent } from './sub-component/masters/product/product-line/edit-view-product-line/edit-view-product-line.component';\nimport { AddVariantLevel1Component } from './sub-component/masters/product/variant-level-1/add-variant-level1/add-variant-level1.component';\nimport { EditViewVariantLevel1Component } from './sub-component/masters/product/variant-level-1/edit-view-variant-level1/edit-view-variant-level1.component';\nimport { VariantLevel1DetailsComponent } from './sub-component/masters/product/variant-level-1/variant-level1-details/variant-level1-details.component';\nimport { AddVariantLevel2Component } from './sub-component/masters/product/variant-level-2/add-variant-level2/add-variant-level2.component';\nimport { EditViewVariantLevel2Component } from './sub-component/masters/product/variant-level-2/edit-view-variant-level2/edit-view-variant-level2.component';\nimport { VariantLevel2DetailsComponent } from './sub-component/masters/product/variant-level-2/variant-level2-details/variant-level2-details.component';\nimport { AddVariantLevel3Component } from './sub-component/masters/product/variant-level-3/add-variant-level3/add-variant-level3.component';\nimport { EditViewVariantLevel3Component } from './sub-component/masters/product/variant-level-3/edit-view-variant-level3/edit-view-variant-level3.component';\nimport { VariantLevel3DetailsComponent } from './sub-component/masters/product/variant-level-3/variant-level3-details/variant-level3-details.component';\nimport { AddVariantLevel4Component } from './sub-component/masters/product/variant-level-4/add-variant-level4/add-variant-level4.component';\nimport { EditViewVariantLevel4Component } from './sub-component/masters/product/variant-level-4/edit-view-variant-level4/edit-view-variant-level4.component';\nimport { VariantLevel4DetailsComponent } from './sub-component/masters/product/variant-level-4/variant-level4-details/variant-level4-details.component';\nimport { PendingEnquiryComponent } from './sub-component/enquiry/pending-enquiry/pending-enquiry.component';\nimport { ProductMatrixComponent } from './sub-component/masters/product-matrix/product-matrix.component';\nimport { BusinessPlanForSalesAndOrderComponent } from './sub-component/masters/BusinessPlan/business-plan-for-sales-and-order/business-plan-for-sales-and-order.component';\nimport { BusinessPlanDetailsComponent } from './sub-component/masters/BusinessPlan/business-plan-details/business-plan-details.component';\nimport { RoleGuard } from './auth/role.guard';\nimport { AppGlobals } from './app.global';\nimport { EditBusinessPlanComponent } from './sub-component/masters/BusinessPlan/edit-business-plan/edit-business-plan.component';\nimport { RegionwiseReportComponent } from './sub-component/reports/regionwise-report/regionwise-report.component';\nimport { ProductwiseReportComponent } from './sub-component/reports/productwise-report/productwise-report.component';\nimport { CustomerwiseReportComponent } from './sub-component/reports/customerwise-report/customerwise-report.component';\nimport { SegmentwiseReportComponent } from './sub-component/reports/segmentwise-report/segmentwise-report.component';\nimport { StockInventoryDetailsComponent } from './sub-component/masters/StockInventory/stock-inventory-details/stock-inventory-details.component';\nimport { AddStockInventoryComponent } from './sub-component/masters/StockInventory/add-stock-inventory/add-stock-inventory.component';\nimport { ViewStockInventoryComponent } from './sub-component/masters/StockInventory/view-stock-inventory/view-stock-inventory.component';\nimport { EditViewWorkFlowScreenAccessComponent } from './sub-component/masters/WorkFlowScreenAccess/edit-view-work-flow-screen-access/edit-view-work-flow-screen-access.component';\nimport { PowerBIReportsComponent } from './sub-component/reports/power-bireports/power-bireports.component';\nimport { AlertsDetailsComponent } from './sub-component/masters/Alerts/alerts-details/alerts-details.component';\nimport { EditViewAlertsComponent } from './sub-component/masters/Alerts/edit-view-alerts/edit-view-alerts.component';\nimport { AddCustomerOpportunityComponent } from './sub-component/enquiry/add-customer-opportunity/add-customer-opportunity.component';\nimport { AddLoginPageDynamicImageComponent } from './sub-component/masters/login-page-dynamic-image/add-login-page-dynamic-image/add-login-page-dynamic-image.component';\nimport { DetailsLoginPageDynamicImageComponent } from './sub-component/masters/login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image.component';\nimport { SiteActivityComponent } from './sub-component/reports/site-activity/site-activity/site-activity.component';\nimport { LeadDetailsComponent } from './sub-component/masters/Lead/lead-details/lead-details/lead-details.component';\nimport { AddLeadComponent } from './sub-component/masters/Lead/add-lead/add-lead/add-lead.component';\nimport { EditViewLeadComponent } from './sub-component/masters/Lead/edit-view-lead/edit-view-lead/edit-view-lead.component';\nimport { EditViewLoginPageDynamicImageComponent } from './sub-component/masters/login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image.component';\nimport { PriceconfiguratorComponent } from './sub-component/masters/priceconfigurator/priceconfigurator.component';\nimport { MyActivityComponent } from './sub-component/customer-engagement/my-activity/my-activity.component';\nimport { AddActivityComponent } from './sub-component/customer-engagement/activity/add-activity/add-activity.component';\nimport { ViewActivityComponent } from './sub-component/customer-engagement/activity/view-activity/view-activity.component';\nimport { BulkEditActivityComponent } from './sub-component/customer-engagement/activity/bulk-edit-activity/bulk-edit-activity.component';\nimport { EditActivityComponent } from './sub-component/customer-engagement/activity/edit-activity/edit-activity.component';\nimport { EngagementReportsComponent } from './sub-component/customer-engagement/engagement-reports/engagement-reports.component';\nimport { GuestDetailsComponent } from './sub-component/masters/guest/guest-details/guest-details.component';\nimport { AddEmployeeComponent } from './sub-component/masters/employee/add-employee/add-employee.component';\nimport { EditViewEmployeeComponent } from './sub-component/masters/employee/edit-view-employee/edit-view-employee.component';\nimport { EmployeeDetailsComponent } from './sub-component/masters/employee/employee-details/employee-details.component';\nimport { AddGuestComponent } from './sub-component/masters/guest/add-guest/add-guest.component';\nimport { EditViewGuestComponent } from './sub-component/masters/guest/edit-view-guest/edit-view-guest.component';\nimport { AddContractFrameAgreementComponent } from './sub-component/masters/configuration/ContractFrameAgreement/add-contract-frame-agreement/add-contract-frame-agreement.component';\nimport { EditViewContractFrameAgreementComponent } from './sub-component/masters/configuration/ContractFrameAgreement/edit-view-contract-frame-agreement/edit-view-contract-frame-agreement.component';\nimport { CustomerFrameAgreementDetailsComponent } from './sub-component/masters/configuration/ContractFrameAgreement/customer-frame-agreement-details/customer-frame-agreement-details.component';\nimport { CalenderViewComponent } from './sub-component/customer-engagement/activity/calender-view/calender-view.component';\nimport { PlannedVsActualActivityComponent } from './sub-component/customer-engagement/planned-vs-actual-activity/planned-vs-actual-activity.component';\nimport { CustomerEngagementDetailsComponent } from './sub-component/customer-engagement/customer-engagement-details/customer-engagement-details.component';\nimport { CustomerEngagementComponent } from './sub-component/customer-engagement/customer-engagement/customer-engagement.component';\n\n\n\nconst routes: Routes = [\n {\n path: \"Login\",\n component: AppComponent,\n data: { title: 'Login' }\n // canActivate: [RoleGuard],\n // data: {\n // permissions: {\n // only: AppGlobals.AllRolesArray,\n // redirectTo: '/Login'\n // }\n // }\n },\n {\n path: \"Register\", component: RegisterComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n redirectTo: '/Login'\n },\n Element: 'CanAccessRegister',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'Register'\n }\n },\n {\n path: \"Profile\", component: ProfileComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n redirectTo: '/Login'\n },\n Element: 'CanAccessProfile',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'Profile'\n }\n },\n {\n path: \"Dashboard\", component: DashboardComponent,\n //canActivate: [RoleGuard],\n canActivateChild: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n except: ['GUEST'],\n redirectTo: '/Login'\n },\n Element: 'CanAccessDashboard',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'Dashboard'\n }\n },\n {\n path: \"Enquiry\", component: EnquiryComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n redirectTo: '/Login'\n },\n Element: 'isAllEnquiry',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'Enquiry'\n }\n },\n {\n path: \"PendingEnquiry\", component: PendingEnquiryComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n redirectTo: '/Login'\n },\n Element: 'isAllEnquiry',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'PendingEnquiry'\n }\n },\n //To merge the add and edit component\n {\n path: \"AddEnquiry\", component: AddEnquiryComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n redirectTo: '/Login'\n },\n Element: 'isAllEnquiry',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddEnquiry'\n }\n },\n //To merge the add and edit component\n {\n path: \"AddEnquiryLimitedField\", component: AddCustomerOpportunityComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isAllEnquiry',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddEnquiryLimitedField'\n }\n },\n //{ path: \"AddEnquiry\", component: EditViewEnquiryComponent },\n {\n path: \"EditViewEnquiry\", component: EditViewEnquiryComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.AllRolesArray,\n redirectTo: '/Login'\n },\n Element: 'isAllEnquiry',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'Edit Enquiry'\n\n }\n },\n {\n path: \"EditViewEnquiry/:id\", component: EditViewEnquiryComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isAllEnquiry',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewEnquiry'\n }\n },\n //Master\n {\n path: \"Guest\", component: GuestDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.GuestVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isGuest',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'Guest'\n }\n },\n {\n path: \"AddGuest\", component: AddGuestComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.GuestEditArray,\n redirectTo: '/Login'\n },\n Element: 'isGuest',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddGuest'\n }\n },\n {\n path: \"EditViewGuest/:id\", component: EditViewGuestComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.GuestVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isGuest',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewGuest'\n }\n },\n {\n path: \"Employee\", component: EmployeeDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.EmployeeVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isEmployee',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'AddEmployee'\n }\n },\n {\n path: \"AddEmployee\", component: AddEmployeeComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.EmployeeEditArray,\n redirectTo: '/Login'\n },\n Element: 'isEmployee',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddEmployee'\n }\n },\n {\n path: \"EditViewEmployee/:id\", component: EditViewEmployeeComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.EmployeeVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isEmployee',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewEmployee'\n }\n },\n\n\n /****************************************************************** */\n\n\n {\n path: \"AddCustomer/:type/:id\", component: AddCustomerComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.CustomerEditArray,\n redirectTo: '/Login'\n },\n Element: 'isCustomer',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddCustomer'\n }\n },\n {\n path: \"EditViewCustomer/:id\", component: EditViewCustomerComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.CustomerVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isCustomer',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewCustomer'\n }\n },\n {\n path: \"Customer\", component: CustomerDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.CustomerVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isCustomer',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'Customer'\n }\n },\n {\n path: \"ConfigureMasters/:heading\", component: ConfigurationDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.COnfigureVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isConfigureMasters',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ConfigureMasters'\n }\n },\n {\n path: \"ConfigureMasters\", component: ConfigurationDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.COnfigureVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isConfigureMasters',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ConfigureMasters'\n }\n },\n {\n path: \"AddConfiguration/:heading\", component: AddConfigurationComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.COnfigureEditArray,\n redirectTo: '/Login'\n },\n Element: 'isConfigureMasters',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddConfiguration'\n }\n },\n //for single case only\n {\n path: \"AddConfiguration/:heading/:id\", component: AddConfigurationComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isConfigureMasters',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddConfiguration'\n }\n },\n {\n path: \"EditViewConfiguration/:id/:heading\", component: EditViewConfigurationComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.COnfigureVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isConfigureMasters',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewConfiguration'\n }\n },\n\n {\n path: \"AddLoginImage\", component: AddLoginPageDynamicImageComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isLoginPageImage',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddLoginImage'\n }\n },\n {\n path: \"LoginPageImage\", component: DetailsLoginPageDynamicImageComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isLoginPageImage',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'LoginPageImage'\n }\n },\n\n {\n path: \"ViewLoginPageImage/:id\", component: EditViewLoginPageDynamicImageComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isLoginPageImage',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'ViewLoginPageImage'\n }\n },\n {\n path: \"Lead\", component: LeadDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isLead',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'Lead'\n }\n },\n\n {\n path: \"AddLead\", component: AddLeadComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isLead',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddLead'\n }\n },\n {\n path: \"EditViewLead/:id\", component: EditViewLeadComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isLead',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewLead'\n }\n },\n\n //ProductLine Master\n {\n path: \"AddProductLine\", component: AddProductLineComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddProductLine'\n }\n },\n {\n path: \"EditViewProductLine/:id\", component: EditViewProductLineComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewProductLine'\n }\n },\n {\n path: \"ProductLine\", component: ProductLineDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ProductLine'\n }\n },\n {\n path: \"AddProductFamily\", component: AddProductFamilyComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddProductFamily'\n }\n },\n {\n path: \"EditViewProductFamily/:id\", component: EditViewProductFamilyComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewProductFamily'\n }\n },\n {\n path: \"ProductFamily\", component: ProductFamilyDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ProductFamily'\n }\n },\n {\n path: \"AddProductSeries\", component: AddProductSeriesComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddProductSeries'\n }\n },\n {\n path: \"EditViewProductSeries/:id\", component: EditViewProductSeriesComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewProductSeries'\n }\n },\n {\n path: \"ProductSeries\", component: ProductSeriesDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ProductSeries'\n }\n },\n {\n path: \"AddProductModel/:id\", component: AddProductModelComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddProductModel'\n }\n },\n {\n path: \"EditViewProductModel/:id\", component: EditViewProductModelComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewProductModel'\n }\n },\n {\n path: \"ProductModel/:id\", component: ProductModelDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ProductModel'\n }\n },\n {\n path: \"AddVariantLevel1/:id\", component: AddVariantLevel1Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddVariantLevel1'\n }\n },\n {\n path: \"EditViewVariantLevel1/:label/:ProductModel/:Price/:Status/:IsPriceOnRequest\", component: EditViewVariantLevel1Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel1'\n }\n },\n {\n path: \"EditViewVariantLevel1/:label/:id\", component: EditViewVariantLevel1Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel1'\n }\n },\n {\n path: \"VariantLevel1/:id/:Label\", component: VariantLevel1DetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'VariantLevel1'\n }\n },\n {\n path: \"AddVariantLevel2/:Seriesid\", component: AddVariantLevel2Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddVariantLevel2'\n }\n },\n {\n path: \"EditViewVariantLevel2/:Level/:Model/:Price/:Status/:IsPriceOnRequest\", component: EditViewVariantLevel2Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel2'\n }\n },\n {\n path: \"EditViewVariantLevel2/:Id\", component: EditViewVariantLevel2Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel'\n }\n },\n {\n path: \"VariantLevel2/:Seriesid/:Variant1/:Variant2\", component: VariantLevel2DetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'VariantLevel2Details'\n }\n },\n {\n path: \"AddVariantLevel3/:Seriesid\", component: AddVariantLevel3Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddVariantLevel3'\n }\n },\n {\n path: \"EditViewVariantLevel3/:Model/:Price/:Status/:IsPriceOnRequest\", component: EditViewVariantLevel3Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel3'\n }\n },\n {\n path: \"EditViewVariantLevel3/:id\", component: EditViewVariantLevel3Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel3'\n }\n },\n {\n path: \"VariantLevel3/:Seriesid/:Variant2/:Variant3\", component: VariantLevel3DetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'VariantLevel3Details'\n }\n },\n {\n path: \"AddVariantLevel4/:Seriesid\", component: AddVariantLevel4Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddVariantLevel4'\n }\n },\n {\n path: \"EditViewVariantLevel4/:Model/:Price/:Status/:IsPriceOnRequest\", component: EditViewVariantLevel4Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel4'\n }\n },\n {\n path: \"EditViewVariantLevel4/:id\", component: EditViewVariantLevel4Component,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewVariantLevel4'\n }\n },\n {\n path: \"VariantLevel4/:Seriesid/:Variant3/:Variant4\", component: VariantLevel4DetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'VariantLevel4Details'\n }\n },\n {\n path: \"AddOptions/:Seriesid\", component: AddOptionsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterEditArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddOptions'\n }\n },\n {\n path: \"EditViewOptions/:id\", component: EditViewOptionsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewOptions'\n }\n },\n {\n path: \"Options/:Seriesid\", component: OptionsDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'OptionsDetails'\n }\n },\n {\n path: \"ProductMatrix\", component: ProductMatrixComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.ProductMasterVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isProductLine',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'ProductMatrix'\n }\n },\n {\n path: \"AddBusinessPlan\", component: BusinessPlanForSalesAndOrderComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.BusinessPlanVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isBusinessPlanforSalesandOrder',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'BusinessPlan'\n }\n },\n {\n path: \"EditBusinessPlan\", component: EditBusinessPlanComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.BusinessPlanVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isBusinessPlanforSalesandOrder',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditBusinessPlan'\n }\n },\n {\n path: \"BusinessPlanDetails\", component: BusinessPlanDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.BusinessPlanVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isBusinessPlanforSalesandOrder',\n Access: 'CanList',\n redirectTo: '/Login',\n title: ' BusinessPlanDetails'\n }\n },\n\n {\n path: \"StockInventory\", component: StockInventoryDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.StockInventoryVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isStockInventory',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'StockInventoryDetails'\n }\n\n },\n {\n path: \"ViewStockInventory/:id\", component: ViewStockInventoryComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.StockInventoryVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isStockInventory',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'ViewStockInventory'\n }\n\n },\n {\n path: \"AddStockInventory\", component: AddStockInventoryComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.StockInventoryVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isStockInventory',\n Access: 'CanCreate',\n redirectTo: '/Login',\n title: 'AddStockInventory'\n }\n\n },\n {\n path: \"WorkFlowScreenAccess\", component: EditViewWorkFlowScreenAccessComponent,\n canActivate: [RoleGuard],\n data: {\n permissions: {\n only: AppGlobals.WorkFlowScreenAccessVisibleArray,\n redirectTo: '/Login'\n },\n Element: 'isWorkflowScreenAccess',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewWorkFlowScreenAccess'\n }\n },\n {\n path: \"Reminders-config\", component: AlertsDetailsComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isAlertsManagement',\n Access: 'CanList',\n redirectTo: '/Login',\n title: 'AlertsDetails'\n }\n },\n {\n path: \"Reminders-config/:id\", component: EditViewAlertsComponent,\n canActivate: [RoleGuard],\n data: {\n Element: 'isAlertsManagement',\n Access: 'IsVisible',\n redirectTo: '/Login',\n title: 'EditViewAlerts'\n }\n },\n // event instanceof NavigationEnd),\n // ).subscribe(() => {\n // const rt = this.getChild(this.activatedRoute);\n // rt.data.subscribe(data => {\n // this.titleService.setTitle(\"ECOTECH\")\n // });\n // });\n\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n ).subscribe(() => {\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(appConfig.titleName);\n });\n\n }\n\n ngOnInit() {\n\n this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n this.previousUrl = this.currentUrl;\n this.currentUrl = event.url;\n\n // Set the title dynamically based on titleName from AppConfig\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(appConfig.titleName);\n this.logoImageUrlPresentAboveLogin = appConfig.logoImageUrlPresentAboveLogin;\n this.backroundImagePath = appConfig.backroundImagePath;\n\n this.commonService.setPreviousUrl(this.previousUrl);\n this.redirectTo(this.currentUrl);\n\n });\n\n }\n\n redirectTo(currentUrl){\n // this.BackroundImagePath =\"assets/images/login-bg.jpg\";\n // this.BackroundImagePath =\"assets/images/eco_bg.png\";\n this.BackroundImagePath = this.backroundImagePath;\n\n this.commonService.RefreshHeaderFun();\n //this.showLoader = true;\n this.isHeaderShowed = false;\n let loginDetails = JSON.parse(localStorage.getItem(\"loginDetails\"));\n let userToken = localStorage.getItem(\"userToken\");\n this.getLoginImageDetails();\n \n let navigateTo = \"\";\n let currentPath = currentUrl;//this.route.url.value[0].path;\n\n // just the fragment of the current route. i.e. CurrentRoute\n if( currentPath == \"\" || currentPath == null || currentPath.toLowerCase() ==\"/login\"){\n navigateTo = '/Dashboard';\n }else{\n navigateTo = currentPath;\n \n }\n\n //ensure navigateTo is decodeded first before we use router to navigate\n navigateTo = decodeURI(navigateTo);\n\n if (loginDetails != null && userToken != null) {\n this.isHeaderShowed = true;\n this.router.navigate([navigateTo]);\n this.commonService.RefreshHeaderFun();\n }else{\n this.isHeaderShowed = false;\n this.router.navigate(['/Login']);\n }\n\n }\n\n getChild(activatedRoute: ActivatedRoute) {\n if (activatedRoute.firstChild) {\n return this.getChild(activatedRoute.firstChild);\n } else {\n return activatedRoute;\n }\n }\n\n /* localStorage.removeItem('userToken');\n localStorage.clear();\n this.location.replaceState('Login');\n this.showLoader = false;\n window.location.reload();\n */\n\n onActivate(event) {\n window.scroll(0, 0);\n }\n\n onSubmit() {\n this.showLoader = true;\n this.registerService.login(this.login).subscribe(data => {\n let result = data;\n localStorage.setItem(\"loginDetails\", JSON.stringify(result));\n localStorage.setItem(\"userToken\", result.access_token);\n localStorage.setItem(\"UserRole\", data.role);\n localStorage.setItem(\"UserID\", data.userId);\n localStorage.setItem(\"WorkFlowRoleWiseScreenAccess\", data.WorkFlowRoleWiseScreenAccess);\n \n this.toastr.success('Login successfully!');\n this.showLoader = false;\n\n let loginDetails = JSON.parse(localStorage.getItem(\"loginDetails\"));\n let userToken = localStorage.getItem(\"userToken\");\n if (loginDetails != null && userToken != null) {\n\n let ActivatedURL = localStorage.getItem(\"ActivatedURL\");\n localStorage.removeItem(\"ActivatedURL\");\n if (ActivatedURL != null && ActivatedURL != \"\" && ActivatedURL != undefined) {\n let EnquiryId = ActivatedURL.split(\"/\").pop();\n this.router.navigate(['/EditViewEnquiry', EnquiryId]);\n }\n else { \n this.router.navigate(['/Dashboard']); \n this.cd.detectChanges(); \n }\n this.isHeaderShowed = true;\n }\n else {\n this.isHeaderShowed = false;\n this.router.navigate(['/Login']);\n }\n\n }, error => {\n this.toastr.error(error.error.error_description);\n this.showLoader = false;\n });\n\n }\n\n\n openDialog() {\n // Opening the dialog component\n const dialogWithForm = this.dialog.open(ForgotPasswordComponent, {\n width: '450px',\n height: '200px'\n });\n\n // When user close the dialog\n dialogWithForm.afterClosed().subscribe(result => {\n if (result) {\n this.forgotPassword.Username = result.Username;\n this.showLoader = true;\n this.registerService.forgotPassword(this.forgotPassword.Username).subscribe((data: any) => {\n var res = data;\n if (res.ResponseCode == 1) {\n this.toastr.success('Password reset successfully! Please check your mail account!');\n }\n if (res.ResponseCode == 0) {\n this.toastr.warning('Please enter valid Username!');\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Please enter valid Username!\");\n this.showLoader = false;\n });\n\n }\n });\n }\n\n @HostListener('document:click', ['$event'])\n documentClick(event: any) {\n var screenWidth = window.innerWidth;\n if (screenWidth < 1024)\n if (event.target.className == \"m-menu__link-text mngMaster\" || event.target.className == \"m-menu__hor-arrow la la-angle-down mngMasterArrow\") {\n let x = document.getElementById(\"manageMasterDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"activityDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n\n } else {\n x.style.display = \"none\";\n }\n }\n else if (event.target.className == \"m-menu__link-text ProductLineMain\" || event.target.className == \"m-menu__hor-arrow la la-angle-down ProductLineArrow\") {\n let x = document.getElementById(\"ProductLineMainDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n }\n else if (event.target.className == \"m-menu__link-text enqDrDn\" || event.target.className == \"m-menu__hor-arrow la la-angle-down enqDrDnArrow\") {\n let x = document.getElementById(\"enquiryDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n }\n\n else if (event.target.className == \"m-menu__link-text activityqDrDn\" || event.target.className == \"m-menu__hor-arrow la la-angle-down activityDrDnArrow\") {\n \n let x = document.getElementById(\"activityDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n }\n else if (event.target.className == \"m-menu__link-text reportDrDn\" || event.target.className == \"m-menu__hor-arrow la la-angle-down reportDrDnArrow\") {\n let x = document.getElementById(\"reportDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n\n }\n else if (event.target.className == \"flaticon-more\" || event.target.className == \"m-topbar__username\" || event.target.className == \"m-dropdown__dropoff\") {\n let x = document.getElementById(\"m_header_topbar\");\n if (event.target.className == \"m-topbar__username\" || event.target.className == \"m-dropdown__dropoff\") {\n x.style.display = \"table\";\n }\n\n }\n else if (event.target.className == \"m-menu__link-text reportDrDn toggle\" || event.target.className == \"m-menu__link-text enqDrDn toggle\") {\n let x = document.getElementById(\"m_header_menu\");\n {\n x.style.display = \"none\";\n if (event.target.className == \"m-menu__link-text reportDrDn toggle\") {\n document.getElementById(\"reportDiv\").style.display = \"none\";\n\n }\n else if (event.target.className == \"m-menu__link-text enqDrDn toggle\") {\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n\n }\n\n }\n }\n else if (event.target.className == \"form-control ng-untouched ng-pristine ng-valid\" || event.target.className == \"m-content\" ||\n event.target.className == \"col-sm-6\" || event.target.className == \"toggle\" || event.target.className == \"m-menu__link-text mngMaster toggle\"\n || event.target.className == \"m-brand__icon m-brand__toggler m--visible-tablet-and-mobile-inline-block\") {\n let x = document.getElementById(\"m_header_menu\");\n if (event.target.className == \"toggle\" || event.target.className == \"m-brand__icon m-brand__toggler m--visible-tablet-and-mobile-inline-block\") {\n x.style.display === \"block\"\n document.getElementById(\"ProductLineDiv\").style.display = \"none\";\n document.getElementById(\"seriesDiv\").style.display = \"none\";\n // document.getElementById(\"modelDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n }\n else {\n if (x.style.display === \"block\") {\n x.style.display = \"none\";\n document.getElementById(\"ProductLineDiv\").style.display = \"none\";\n document.getElementById(\"seriesDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n }\n }\n }\n else if (event.target.className == \"m-menu__link-text PL\" || event.target.className == \"m-menu__link-text PS\" ||\n event.target.className == \"m-menu__link-text mngMaster SN\" || event.target.className == \"m-menu__link m-menu__toggle SN\") {\n if (event.target.className == \"m-menu__link-text PL\") {\n let x = document.getElementById(\"ProductLineDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n document.getElementById(\"ProductLineDiv\").style.display = \"block\";\n }\n else {\n document.getElementById(\"ProductLineDiv\").style.display = \"none\";\n }\n }\n else if (event.target.className == \"m-menu__link-text PS\") {\n let x = document.getElementById(\"seriesDiv\");\n x.style.display === \"block\"\n if (x.style.display === \"none\" || x.style.display === \"\") {\n document.getElementById(\"seriesDiv\").style.display = \"block\";\n }\n else {\n document.getElementById(\"seriesDiv\").style.display = \"none\";\n }\n }\n else if (event.target.className == \"m-menu__link-text mngMaster SN\") {\n // let x = document.getElementById(\"modelDiv\");\n // if(x.style.display === \"block\")\n // {\n // document.getElementById(\"modelDiv\").style.display = \"none\";\n // }\n // if (x.style.display === \"none\" || x.style.display === \"\") {\n // document.getElementById(\"modelDiv\").style.display = \"block\";\n // }\n\n }\n\n }\n\n else {\n let x = document.getElementById(\"manageMasterDiv\");\n if (x != null && x.style.display === \"block\") {\n x.style.display = \"none\";\n }\n let y = document.getElementById(\"enquiryDiv\");\n if (y != null && y.style.display === \"block\") {\n y.style.display = \"none\";\n }\n let z = document.getElementById(\"reportDiv\");\n if (z != null && z.style.display === \"block\") {\n z.style.display = \"none\";\n }\n let p = document.getElementById(\"m_header_topbar\");\n if (p != null && p.style.display === \"table\") {\n p.style.display = \"none\";\n }\n\n let q = document.getElementById(\"m_header_menu\");\n if (q != null && q.style.display === \"block\") {\n q.style.display = \"none\";\n }\n let r = document.getElementById(\"ProductLineDiv\");\n if (r != null && r.style.display === \"block\") {\n r.style.display = \"none\";\n }\n let s = document.getElementById(\"seriesDiv\");\n if (s != null && s.style.display === \"block\") {\n s.style.display = \"none\";\n }\n // let t = document.getElementById(\"modelDiv\");\n // if (t != null && t.style.display === \"block\") {\n // t.style.display = \"none\";\n // }\n\n }\n\n else {\n if (event.target.className == \"m-menu__link-text mngMaster\" || event.target.className == \"m-menu__hor-arrow la la-angle-down mngMasterArrow\") {\n let x = document.getElementById(\"manageMasterDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"activityDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n\n\n }\n else if (event.target.className == \"m-menu__link-text ProductLineMain\" || event.target.className == \"m-menu__hor-arrow la la-angle-down ProductLineArrow\") {\n let x = document.getElementById(\"ProductLineMainDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"activityDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n }\n\n else if (event.target.className == \"m-menu__link-text enqDrDn\" || event.target.className == \"m-menu__hor-arrow la la-angle-down enqDrDnArrow\") {\n let x = document.getElementById(\"enquiryDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n document.getElementById(\"activityDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n }\n else if (event.target.className == \"m-menu__link-text activityqDrDn\" || event.target.className == \"m-menu__hor-arrow la la-angle-down activityDrDnArrow\") {\n\n let x = document.getElementById(\"activityDiv\");\n \n if (x.style.display === \"none\" || x.style.display === \"\") {\n \n x.style.display = \"block\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n \n \n document.getElementById(\"reportDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n \n } else {\n \n x.style.display = \"none\";\n \n }\n }\n else if (event.target.className == \"m-menu__link-text reportDrDn\" || event.target.className == \"m-menu__hor-arrow la la-angle-down reportDrDnArrow\") {\n let x = document.getElementById(\"reportDiv\");\n if (x.style.display === \"none\" || x.style.display === \"\") {\n x.style.display = \"block\";\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"ProductLineMainDiv\").style.display = \"none\";\n document.getElementById(\"activityDiv\").style.display = \"none\";\n } else {\n x.style.display = \"none\";\n }\n }\n else {\n let x = document.getElementById(\"manageMasterDiv\");\n if (x != null && x.style.display === \"block\") {\n x.style.display = \"none\";\n }\n let y = document.getElementById(\"enquiryDiv\");\n if (y != null && y.style.display === \"block\") {\n y.style.display = \"none\";\n }\n let z = document.getElementById(\"reportDiv\");\n if (z != null && z.style.display === \"block\") {\n z.style.display = \"none\";\n }\n let p = document.getElementById(\"ProductLineMainDiv\");\n if (p != null && p.style.display === \"block\") {\n p.style.display = \"none\";\n }\n let q = document.getElementById(\"activityDiv\");\n if (q != null && q.style.display === \"block\") {\n q.style.display = \"none\";\n }\n }\n }\n }\n getLoginImageDetails() \n { \n this.showLoader=true; \n this.registerService.getImageName('LoginPageImage', 'GetActiveImage').subscribe((data: any) => \n { \n if(data!=null)\n {\n this.BackroundImagePath = AppGlobals.baseAppUrl + \"uploads/LoginPageImage/\" + encodeURIComponent(data.ImageName); \n }\n else{\n //this.BackroundImagePath =\"assets/images/login-bg.jpg\";\n // this.BackroundImagePath =\"assets/images/eco_bg.png\";\n this.BackroundImagePath = this.backroundImagePath;\n } \n this.showLoader=false; \n }, error => \n { \n // this.toastr.error(\"Failed to load data!\"); \n // this.BackroundImagePath =\"assets/images/login-bg.jpg\";\n // this.BackroundImagePath =\"assets/images/eco_bg.png\";\n this.BackroundImagePath = this.backroundImagePath;\n this.showLoader = false; \n }); }\n} \n","\n\n\n\n\n\n
\n\n
\n
\n\n
\n
\n
\n \n
\n\n
\n
\n
\n\n\n\n \n \n \n","import { UserRoles } from './UserRoles';\nimport { EnquiryStatus } from './EnquiryStatus';\n\nexport const AppGlobals = {\n\n //SEA URLs\n // baseAppUrl: 'http://sea-crm.weiss-world.com/api/',\n // baseFileDownloadUrl: 'http://sea-crm.weiss-world.com/api/Uploads/',\n // QuotationFileDownloadUrl: 'http://sea-crm.weiss-world.com/api/Uploads/pdf/',\n // ZipDownloadUrl: 'http://sea-crm.weiss-world.com/api/Uploads/Zip/',\n // catlogDownloadPath: 'http://sea-crm.weiss-world.com/api/Uploads/Catlog/',\n // OADownloadPath:'http://sea-crm.weiss-world.com/api/Uploads/OAFiles/',\n // loginImagePath:'http://sea-crm.weiss-world.com/api/Uploads/LoginPageImage/',\n \n // \n\n // baseAppUrl: 'http://localhost:64591/',\n // baseFileDownloadUrl: 'http://localhost:64591/Uploads/',\n // QuotationFileDownloadUrl: 'http://localhost:64591/Uploads/pdf/',\n // ZipDownloadUrl: 'http://localhost:64591/Uploads/Zip/',\n // catlogDownloadPath: 'http://localhost:64591/Uploads/Catalog/',\n // OADownloadPath:'http://localhost:64591/Uploads/OAFiles/',\n // loginImagePath:\"http://localhost:64591/Uploads/LoginPageImage/\",\n\n\n //Dev URLs\n\n // baseAppUrl: 'http://devweiss.ecotechservices.com/api/',\n // baseFileDownloadUrl: 'http://devweiss.ecotechservices.com/api/Uploads/',\n // QuotationFileDownloadUrl: 'http://devweiss.ecotechservices.com/api/Uploads/pdf/',\n // ZipDownloadUrl: 'http://devweiss.ecotechservices.com/api/Uploads/Zip/',\n // catlogDownloadPath: 'http://devweiss.ecotechservices.com/api/Uploads/Catlog/',\n // OADownloadPath:'http://devweiss.ecotechservices.com/api/Uploads/OAFiles/',\n // loginImagePath:\"http://devweiss.ecotechservices.com/api/Uploads/LoginPageImage/\",\n\n \n //Demo Ecotech CRM URLs\n\n // baseAppUrl: 'http://democrm.ecotechservices.com/api/',\n // baseFileDownloadUrl: 'http://democrm.ecotechservices.com/api/Uploads/',\n // QuotationFileDownloadUrl: 'http://democrm.ecotechservices.com/api/Uploads/pdf/',\n // ZipDownloadUrl: 'http://democrm.ecotechservices.com/api/Uploads/Zip/',\n // catlogDownloadPath: 'http://democrm.ecotechservices.com/api/Uploads/Catlog/',\n // OADownloadPath:'http://democrm.ecotechservices.com/api/Uploads/OAFiles/',\n // loginImagePath:\"http://democrm.ecotechservices.com/api/Uploads/LoginPageImage/\",\n\n baseAppUrl: '/api/',\n baseFileDownloadUrl: '/api/Uploads/',\n QuotationFileDownloadUrl: '/api/Uploads/pdf/',\n ZipDownloadUrl: '/api/Uploads/Zip/',\n catlogDownloadPath: '/api/Uploads/Catalog/',\n OADownloadPath:'/api/Uploads/OAFiles/',\n loginImagePath:\"/api/Uploads/LoginPageImage/\",\n \n //\n\n // baseAppUrl: 'https://uatcrm.ecotechinfra.com/api/',\n // baseFileDownloadUrl: 'https://uatcrm.ecotechinfra.com/api/Uploads/',\n // QuotationFileDownloadUrl: 'https://uatcrm.ecotechinfra.com/api/Uploads/pdf/',\n // ZipDownloadUrl: 'https://uatcrm.ecotechinfra.com/api/Uploads/Zip/',\n // catlogDownloadPath: 'https://uatcrm.ecotechinfra.com/api/Uploads/Catalog/',\n // OADownloadPath:'https://uatcrm.ecotechinfra.com/api/Uploads/OAFiles/',\n // loginImagePath:\"https://uatcrm.ecotechinfra.com/api/Uploads/LoginPageImage/\",\n\n //\n \n // baseAppUrl: 'https://crm.weiss-india.com/api/',\n // baseFileDownloadUrl: 'https://crm.weiss-india.com/api/Uploads/',\n // QuotationFileDownloadUrl: 'https://crm.weiss-india.com/api/Uploads/pdf/',\n // ZipDownloadUrl: 'https://crm.weiss-india.com/api/Uploads/Zip/',\n // catlogDownloadPath: 'https://crm.weiss-india.com/api//Uploads/Catlog/',\n // OADownloadPath:'https://crm.weiss-india.com/api/Uploads/OAFiles/',\n // loginImagePath:\"https://crm.weiss-india.com/api/Uploads/LoginPageImage/\",\n \n title: 'Global Title',\n supportedFileFormatForImage: '[Image Format: .jpeg, .bmp, .jpg, .png] [Max 5 MB]',\n supportedFileFormatsForOtherAttachments: '[File Format: .bmp, .jpeg, .jpg, .png, .xls, .xlsx, .pdf, .xml, .txt, .doc, .docx, .zip, .csv] [Max 5 MB]',\n supportedFileFormatsForOtherMultipleAttachments: '[File Format: .bmp, .jpeg, .jpg, .png, .xls, .xlsx, .pdf, .xml, .txt, .doc, .docx, .zip, .csv] [Max 5 MB]',\n YearsConstant: [\"2018\", \"2019\", \"2020\", \"2021\", \"2022\", \"2023\", \"2024\", \"2025\", \"2026\", \"2027\", \"2028\", \"2029\", \"2030\",\n \"2031\", \"2032\", \"2033\", \"2034\", \"2035\", \"2036\", \"2037\", \"2038\", \"2039\", \"2040\",\n \"2041\", \"2042\", \"2043\", \"2044\", \"2045\", \"2046\", \"2047\", \"2048\", \"2049\", \"2050\"],\n AllRolesArray: [\n UserRoles.SalesEngineer\n , UserRoles.RegionalSalesManager\n , UserRoles.AreaSalesManager\n , UserRoles.L1\n , UserRoles.L2\n , UserRoles.L3\n , UserRoles.CustomerService\n , UserRoles.SalesDirector\n , UserRoles.CEO\n , UserRoles.ExecutiveBusinessAssistant\n , UserRoles.SupplyChain\n , UserRoles.FinanceAccounts\n , UserRoles.BusinessDevelopment\n , UserRoles.Marketing\n , UserRoles.ChannelPartner\n , UserRoles.Distributor\n , UserRoles.Agent\n , UserRoles.Admin\n , UserRoles.ProductManager\n , UserRoles.ManagerSolutionsFactoryAndLocalization\n ],\n\n //\n //\n\n //<\n ProductMastersEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: true },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: true },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: true },\n { role: UserRoles.L1, isEditable: false, isVisible: true },\n { role: UserRoles.L2, isEditable: false, isVisible: true },\n { role: UserRoles.L3, isEditable: false, isVisible: true },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: true },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: true },\n { role: UserRoles.CEO, isEditable: true, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: true },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: true },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: true },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: true },\n { role: UserRoles.ProductManager, isEditable: true, isVisible: true },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n CustomerMastersEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: true, isVisible: true },\n { role: UserRoles.RegionalSalesManager, isEditable: true, isVisible: true },\n { role: UserRoles.AreaSalesManager, isEditable: true, isVisible: true },\n { role: UserRoles.L1, isEditable: true, isVisible: true },\n { role: UserRoles.L2, isEditable: true, isVisible: true },\n { role: UserRoles.L3, isEditable: true, isVisible: true },\n { role: UserRoles.BusinessDevelopment, isEditable: true, isVisible: true },\n { role: UserRoles.Marketing, isEditable: true, isVisible: true },\n { role: UserRoles.SalesDirector, isEditable: true, isVisible: true },\n { role: UserRoles.CEO, isEditable: true, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: true, isVisible: true },\n { role: UserRoles.FinanceAccounts, isEditable: true, isVisible: true },\n { role: UserRoles.SupplyChain, isEditable: true, isVisible: true },\n { role: UserRoles.ChannelPartner, isEditable: true, isVisible: true },\n { role: UserRoles.Distributor, isEditable: true, isVisible: true },\n { role: UserRoles.Agent, isEditable: true, isVisible: true },\n { role: UserRoles.CustomerService, isEditable: true, isVisible: true },\n { role: UserRoles.ProductManager, isEditable: true, isVisible: true },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n EmployeeMastersEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: true },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: true },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: true },\n { role: UserRoles.L1, isEditable: false, isVisible: true },\n { role: UserRoles.L2, isEditable: false, isVisible: true },\n { role: UserRoles.L3, isEditable: false, isVisible: true },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: true },\n { role: UserRoles.Marketing, isEditable: false, isVisible: true },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: true },\n { role: UserRoles.CEO, isEditable: false, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: true },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: true },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: true },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: true },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: true },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n GuestMastersEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n ConfigureMastersEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n\n CustomerFrameAgreementWorkFlowEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector,isEditable: true, isVisible: true },\n { role: UserRoles.CEO, isEditable: true, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n BusinessPlanEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: true, isVisible: true },\n { role: UserRoles.CEO, isEditable: true, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n StockInventoryEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: false, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: true },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: true },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: true },\n { role: UserRoles.L1, isEditable: false, isVisible: true },\n { role: UserRoles.L2, isEditable: false, isVisible: true },\n { role: UserRoles.L3, isEditable: false, isVisible: true },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: true },\n { role: UserRoles.Marketing, isEditable: false, isVisible: true },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: true },\n { role: UserRoles.CEO, isEditable: false, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: true },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: true },\n { role: UserRoles.SupplyChain, isEditable: true, isVisible: true },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: true },\n { role: UserRoles.Distributor, isEditable: false, isVisible: true },\n { role: UserRoles.Agent, isEditable: false, isVisible: true },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: true },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: true },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n WorkFlowScreenAccessEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n AlertsAccessEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n\n PriceConfiguratorEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: false, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: true, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: false, isVisible: true }\n ],\n \n LeadMasterEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: true, isVisible: true },\n { role: UserRoles.RegionalSalesManager, isEditable: true, isVisible: true },\n { role: UserRoles.AreaSalesManager, isEditable: true, isVisible: true },\n { role: UserRoles.L1, isEditable: true, isVisible: true },\n { role: UserRoles.L2, isEditable: true, isVisible: true },\n { role: UserRoles.L3, isEditable: true, isVisible: true },\n { role: UserRoles.BusinessDevelopment, isEditable: true, isVisible: true },\n { role: UserRoles.Marketing, isEditable: true, isVisible: true },\n { role: UserRoles.SalesDirector, isEditable: true, isVisible: true },\n { role: UserRoles.CEO, isEditable: true, isVisible: true },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: true, isVisible: true },\n { role: UserRoles.FinanceAccounts, isEditable: true, isVisible: true },\n { role: UserRoles.SupplyChain, isEditable: true, isVisible: true },\n { role: UserRoles.ChannelPartner, isEditable: true, isVisible: true },\n { role: UserRoles.Distributor, isEditable: true, isVisible: true },\n { role: UserRoles.Agent, isEditable: true, isVisible: true },\n { role: UserRoles.CustomerService, isEditable: true, isVisible: true },\n { role: UserRoles.ProductManager, isEditable: true, isVisible: true },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n\n SiteActivityEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n \n QuoteGenearation_Enquiry_TechnicalDiscardArray: [\n { role: UserRoles.Admin, isEditable: true,isVisible: true },\n { role: UserRoles.SalesEngineer,isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: true, isVisible: true },\n { role: UserRoles.L2, isEditable: true, isVisible: true },\n { role: UserRoles.L3, isEditable: true, isVisible: true },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: false, isVisible: false },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: false, isVisible: false },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n\n ProductPriceEditableAccessArray: [\n { role: UserRoles.Admin, isEditable: true, isVisible: true },\n { role: UserRoles.SalesEngineer, isEditable: false, isVisible: false },\n { role: UserRoles.RegionalSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.AreaSalesManager, isEditable: false, isVisible: false },\n { role: UserRoles.L1, isEditable: false, isVisible: false },\n { role: UserRoles.L2, isEditable: false, isVisible: false },\n { role: UserRoles.L3, isEditable: false, isVisible: false },\n { role: UserRoles.BusinessDevelopment, isEditable: false, isVisible: false },\n { role: UserRoles.SalesDirector, isEditable: false, isVisible: false },\n { role: UserRoles.CEO, isEditable: false, isVisible: false },\n { role: UserRoles.ExecutiveBusinessAssistant, isEditable: false, isVisible: false },\n { role: UserRoles.FinanceAccounts, isEditable: true, isVisible: true },\n { role: UserRoles.SupplyChain, isEditable: false, isVisible: false },\n { role: UserRoles.ChannelPartner, isEditable: false, isVisible: false },\n { role: UserRoles.Distributor, isEditable: false, isVisible: false },\n { role: UserRoles.Marketing, isEditable: false, isVisible: false },\n { role: UserRoles.Agent, isEditable: false, isVisible: false },\n { role: UserRoles.CustomerService, isEditable: false, isVisible: false },\n { role: UserRoles.ProductManager, isEditable: true, isVisible: true },\n { role: UserRoles.ManagerSolutionsFactoryAndLocalization, isEditable: true, isVisible: true }\n ],\n //>\n\n ////#region Variable for Screens to Visible\n EnquiryForm_SubmitBySalesEngg: false,\n RFQ_SaveasDraftBySalesEngg: false,\n RFQ_SubmitBySalesEngg: false,\n QuoteGenearationAcceptByL1: false,\n QuoteGenearation_RemorkByL1: false,\n QuoteGenearation_EditRFQ: false,\n QuoteGenearation_GenerateQuote: false,\n QuoteGenearation_ForwardtoL2ByL1: false,\n QuoteGenearation_ForwardtoL3ByL2: false,\n QuoteGenearation_SaveasDraftByL1: false,\n QuoteGenearation_SaveasDraftByL2: false,\n QuoteGenearation_SaveasDraftByL3: false,\n QuoteGenearation_GenerateQuoteByL1: false,\n QuoteGenearation_GenerateQuoteByL2: false,\n QuoteGenearation_GenerateQuoteByL3: false,\n QuoteGenearation_SendtoL2ByL3: false,\n QuoteGenearation_SendtoL1ByL2: false,\n QuoteGenearation_SendtoCustomerServiceByL1: false,\n QuoteGenearation_SendforApprovalByCustomerService: false,\n ManagementApproval_RejectBySalesDirector: false,\n ManagementApproval_ApproveBySalesDirector: false,\n ManagementApproval_HoldBySalesDirector: false,\n ManagementApproval_SendQuotationforApprovalBySalesDirector: false,\n ManagementApproval_SendOrderforApprovalBySalesDirector: false,\n ManagementApproval_RejectByCEO: false,\n ManagementApproval_ApproveByCEO: false,\n ManagementApproval_HoldByCEO: false,\n QuoteGenearation_SendBOMProposalByL1: false,\n EnquiryConfirmation_QuoteRevision: false,\n EnquiryConfirmation_ConfimrOrderBySalesEngg: false,\n EnquiryConfirmation_SbmitBySalesEngg: false,\n ManagementApproval_SendOrderforApprovalByCustomerService: false,\n ManagementApproval_ReworkBySalesDirector: false,\n ManagementApproval_Order_ApproveBySalesDirector: false,\n ManagementApproval_Order_RejectBySalesDirector: false,\n ManagementApproval_SendforApprovalBySalesDirector: false,\n ManagementApproval_ReworkByCEO: false,\n ManagementApproval_Order_ApproveByCEO: false,\n ManagementApproval_Order_RejectByCEO: false,\n SO_SendtoSupplyChainByCustomerService: false,\n OrderAcknowledmentNo: false,\n MaterialReadyForDispatch: false,\n SupplyChain_SubmitBySupplyChain: false,\n Accounts_ConfimrOrderByAccounts: false,\n QuoteGenearation_Enquiry_TechnicalDiscard: false,\n QuoteGenearation_Enquiry_TechnicalDiscardbyL1: false,\n QuoteGenearation_Enquiry_TechnicalDiscardbyL2: false,\n QuoteGenearation_Enquiry_TechnicalDiscardbyL3: false,\n //#endregion\n ////#region Variables for Buttons to be Enable/Disable\n disable_EnquiryForm_SubmitBySalesEngg: false,\n disable_RFQ_SaveasDraftBySalesEngg: false,\n disable_RFQ_SubmitBySalesEngg: false,\n disable_QuoteGenearationAcceptByL1: false,\n disable_QuoteGenearation_RemorkByL1: false,\n disable_QuoteGenearation_EditRFQ: false,\n disable_QuoteGenearation_GenerateQuote: false,\n disable_QuoteGenearation_ForwardtoL2ByL1: false,\n disable_QuoteGenearation_ForwardtoL3ByL2: false,\n disable_QuoteGenearation_SaveasDraftByL1: false,\n disable_QuoteGenearation_SaveasDraftByL2: false,\n disable_QuoteGenearation_SaveasDraftByL3: false,\n disable_QuoteGenearation_GenerateQuoteByL1: false,\n disable_QuoteGenearation_GenerateQuoteByL2: false,\n disable_QuoteGenearation_GenerateQuoteByL3: false,\n disable_QuoteGenearation_SendtoL2ByL3: false,\n disable_QuoteGenearation_SendtoL1ByL2: false,\n disable_QuoteGenearation_SendtoCustomerServiceByL1: false,\n disable_QuoteGenearation_SendforApprovalByCustomerService: false,\n disable_ManagementApproval_RejectBySalesDirector: false,\n disable_ManagementApproval_ApproveBySalesDirector: false,\n disable_ManagementApproval_HoldBySalesDirector: false,\n disable_ManagementApproval_SendQuotationforApprovalBySalesDirector: false,\n disable_ManagementApproval_SendOrderforApprovalBySalesDirector: false,\n disable_ManagementApproval_RejectByCEO: false,\n disable_ManagementApproval_ApproveByCEO: false,\n disable_ManagementApproval_HoldByCEO: false,\n disable_QuoteGenearation_SendBOMProposalByL1: false,\n disable_EnquiryConfirmation_ConfimrOrderBySalesEngg: false,\n disable_EnquiryConfirmation_QuoteRevision: false,\n disable_EnquiryConfirmation_SbmitBySalesEngg: false,\n disable_ManagementApproval_SendOrderforApprovalByCustomerService: false,\n disable_ManagementApproval_ReworkBySalesDirector: false,\n disable_ManagementApproval_Order_ApproveBySalesDirector: false,\n disable_ManagementApproval_Order_RejectBySalesDirector: false,\n disable_ManagementApproval_SendforApprovalBySalesDirector: false,\n disable_ManagementApproval_ReworkByCEO: false,\n disable_ManagementApproval_Order_ApproveByCEO: false,\n disable_ManagementApproval_Order_RejectByCEO: false,\n disable_SO_SendtoSupplyChainByCustomerService: false,\n disable_OrderAcknowledmentNo: false,\n disable_SupplyChain_SubmitBySupplyChain: false,\n disable_Accounts_ConfimrOrderByAccounts: false,\n disable_QuoteGenearation_Enquiry_TechnicalDiscard: false,\n disable_QuoteGenearation_Enquiry_TechnicalDiscardbyL1: false,\n disable_QuoteGenearation_Enquiry_TechnicalDiscardbyL2: false,\n disable_QuoteGenearation_Enquiry_TechnicalDiscardbyL3: false,\n\n //#endregion\n\n isEnquiryFormEditable: false,\n isRFQEditable: false,\n isQuoteGenerationEditable: false,\n isManagementApprovalEditable: false,\n isCEOApprovalEditable: false,\n isOrderAcknowledgementEditable: false,\n isEnquiryConfirmationEditable: false,\n isSOEditable: false,\n isSupplychainEditable: false,\n isAccountsEditable: false,\n isOAGenerateEditable: false,\n\n\n appRoles: ['Admin', 'Supply Chain', 'Channel Partner', 'Distributor', 'Agent', 'Sales Engineer', 'Customer Service',\n 'L1', 'L2', 'L3', 'Business Development', 'Sales Director', 'CEO', 'Finance/Accounts',\n ],\n\n screensVisibleAccordingtoEnquiryStatus: [\n //Admin\n {\n role: UserRoles.Admin, \n screensForStatus: [\n\n /****************************************Add Edit Access to Admin for all screens************************************************* */\n //Sales Engg and Guest\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n \n //--------- changes ------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n ///L1\n\n {\n status: EnquiryStatus.RFQSubmittedbySalesEngg,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQSubmittedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQAcceptedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ',],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n \n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL2', 'QuoteGenearation_RemorkByL2', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL3', 'QuoteGenearation_RemorkByL3', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationsentbyL2toL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoCustomerServiceByL1'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQsentbyL1toL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n // --------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form','RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n \n //L2\n {\n status: EnquiryStatus.RFQSubmittedbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationsentbyL3toL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL1ByL2'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQsentbyL2toL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: [, 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n \n // ----------- changes --------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n \n ///L3\n {\n status: EnquiryStatus.RFQSubmittedbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ'],\n selectedIndex: 2\n },\n \n // ------------------------ changes ------------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form','RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n \n ///CustomerService\n {\n status: EnquiryStatus.RFQSubmittedbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n // UPdate for workflow new screens\n {\n status: EnquiryStatus.QuotationSentForPriceDiscountApprovalToLevel1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountApprovedByL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountApprovedByL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountApprovedByL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSentForPriceDiscountApprovalToLevel3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSentForPriceDiscountApprovalToLevel2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountRejectedByL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountRejectedByL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n }, \n {\n status: EnquiryStatus.PriceDiscountRejectedByL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n// ============================================TILL HERE ========================\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n \n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL2', 'QuoteGenearation_RemorkByL2', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL3', 'QuoteGenearation_RemorkByL3', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSenttoCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendBOMProposalByL1'],\n visibleButtons: ['QuoteGenearation_SendBOMProposalByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendBOMProposalByL1'],\n visibleButtons: ['QuoteGenearation_SendBOMProposalByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: ['ManagementApproval_SendOrderforApprovalByCustomerService', 'SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderApprovedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n /////Sales SalesDirector\n {\n status: EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n buttons: ['ManagementApproval_Order_ApproveBySalesDirector', 'ManagementApproval_Order_RejectBySalesDirector', 'ManagementApproval_SendforApprovalBySalesDirector', 'ManagementApproval_SendOrderforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_Order_ApproveBySalesDirector', 'ManagementApproval_Order_RejectBySalesDirector', 'ManagementApproval_SendforApprovalBySalesDirector', 'ManagementApproval_SendOrderforApprovalBySalesDirector'],\n selectedIndex: 5\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 5\n },\n ////CEO\n {\n status: EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n visibleButtons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO'],\n visibleButtons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n selectedIndex: 4\n },\n // {\n // status: EnquiryStatus.OrdersentforMngmtApproval_CEO,\n // screens: ['Enquiry Form', 'RFQ', 'Quote Generation','Enquiry Confirmation','Sales Order','Management Approval' , 'CEO Approval'],\n // disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation','Enquiry Confirmation','Sales Order','Management Approval'],\n // buttons: ['ManagementApproval_Order_ApproveByCEO', 'ManagementApproval_Order_RejectByCEO'],\n // visibleButtons: ['ManagementApproval_Order_ApproveByCEO', 'ManagementApproval_Order_RejectByCEO'],\n // selectedIndex: 6\n // }\n\n\n\n ////FINANCE ACCOUNTS\n {\n status: EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n buttons: ['OrderAcknowledmentNo'],\n visibleButtons: ['OrderAcknowledmentNo'],\n selectedIndex: 5\n },\n\n {\n status: EnquiryStatus.MaterialReadyForDispatch,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain', 'Accounts'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n buttons: ['Accounts_ConfimrOrderByAccounts'],\n visibleButtons: ['Accounts_ConfimrOrderByAccounts'],\n selectedIndex: 7\n },\n\n\n //SUPPLY CHAIN\n\n // {\n // status: EnquiryStatus.OANoGenerated,\n // screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation','Sales Order', 'OAGenerate','Supply Chain'],\n // disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation','Sales Order', 'OAGenerate'],\n // buttons: ['SupplyChain_SubmitBySupplyChain'],\n // visibleButtons: ['SupplyChain_SubmitBySupplyChain'],\n // selectedIndex: 6\n // },\n {\n status: EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n buttons: ['MaterialReadyForDispatch'],\n visibleButtons: ['MaterialReadyForDispatch'],\n selectedIndex: 6\n },\n\n /***************************************************************************************** */\n ]\n },\n //SALES ENGINEER\n {\n role: UserRoles.SalesEngineer,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n ]\n },\n\n //REGIONAL SALES MANAGER\n {\n role: UserRoles.RegionalSalesManager,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n\n ]\n },\n //AREA SALES MANAGER\n {\n role: UserRoles.AreaSalesManager,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n ]\n },\n // Executive Business Assistant\n {\n role: UserRoles.ExecutiveBusinessAssistant,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n ]\n },\n\n //CHANNEL PARTNER\n {\n role: UserRoles.ChannelPartner,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n ]\n },\n //DISTRIBUTOR\n {\n role: UserRoles.Distributor,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n ]\n },\n //AGENT\n {\n role: UserRoles.Agent,\n screensForStatus: [\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryLost,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: [],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n //---------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n //------- completed ----------------\n ]\n },\n //L1\n {\n role: UserRoles.L1,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n //----------------- changes --------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n /////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.RFQSubmittedbySalesEngg,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQSubmittedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQAcceptedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ',],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n \n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL2', 'QuoteGenearation_RemorkByL2', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL3', 'QuoteGenearation_RemorkByL3', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus.QuotationsentbyL2toL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoCustomerServiceByL1'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1'],\n selectedIndex: 2\n },\n\n\n ]\n },\n //L2\n {\n role: UserRoles.L2,\n screensForStatus: [\n\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n // --------------- changes ---------------------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n ///////////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.RFQsentbyL1toL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQSubmittedbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationsentbyL3toL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL1ByL2'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2'],\n selectedIndex: 2\n }\n ]\n },\n //L3\n {\n role: UserRoles.L3,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n // -------------------- changes ---------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n\n /////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.RFQsentbyL2toL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: [, 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQSubmittedbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ'],\n selectedIndex: 2\n }\n ]\n },\n //CUSTOMER SERVICE\n {\n role: UserRoles.CustomerService,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n /////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.RFQSubmittedbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSenttoCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n \n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL2', 'QuoteGenearation_RemorkByL2', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL3', 'QuoteGenearation_RemorkByL3', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendBOMProposalByL1'],\n visibleButtons: ['QuoteGenearation_SendBOMProposalByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendBOMProposalByL1'],\n visibleButtons: ['QuoteGenearation_SendBOMProposalByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: ['ManagementApproval_SendOrderforApprovalByCustomerService', 'SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderApprovedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.QuotationSentForPriceDiscountApprovalToLevel1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountApprovedByL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountApprovedByL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountApprovedByL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSentForPriceDiscountApprovalToLevel3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSentForPriceDiscountApprovalToLevel2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountRejectedByL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.PriceDiscountRejectedByL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n }, \n {\n status: EnquiryStatus.PriceDiscountRejectedByL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n ]\n },\n //SALES DIRECTOR\n {\n role: UserRoles.SalesDirector,\n screensForStatus: [\n \n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n \n {\n status: EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n buttons: ['ManagementApproval_Order_ApproveBySalesDirector', 'ManagementApproval_Order_RejectBySalesDirector', 'ManagementApproval_SendforApprovalBySalesDirector', 'ManagementApproval_SendOrderforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_Order_ApproveBySalesDirector', 'ManagementApproval_Order_RejectBySalesDirector', 'ManagementApproval_SendforApprovalBySalesDirector', 'ManagementApproval_SendOrderforApprovalBySalesDirector'],\n selectedIndex: 5\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 5\n }\n\n ]\n },\n //CEO\n {\n role: UserRoles.CEO,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n /////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n visibleButtons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO'],\n visibleButtons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n buttons: ['ManagementApproval_Order_ApproveByCEO', 'ManagementApproval_Order_RejectByCEO'],\n visibleButtons: ['ManagementApproval_Order_ApproveByCEO', 'ManagementApproval_Order_RejectByCEO'],\n selectedIndex: 6\n }\n ]\n },\n //SUPPLY CHAIN\n {\n role: UserRoles.SupplyChain,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n /////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.OANoGenerated,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n buttons: ['SupplyChain_SubmitBySupplyChain'],\n visibleButtons: ['SupplyChain_SubmitBySupplyChain'],\n selectedIndex: 6\n },\n {\n status: EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n buttons: ['MaterialReadyForDispatch'],\n visibleButtons: ['MaterialReadyForDispatch'],\n selectedIndex: 6\n },\n\n ]\n },\n //FINANCE ACCOUNTS\n {\n role: UserRoles.FinanceAccounts,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n /////////////////////////////////////////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n buttons: ['OrderAcknowledmentNo'],\n visibleButtons: ['OrderAcknowledmentNo'],\n selectedIndex: 5\n },\n\n {\n status: EnquiryStatus.MaterialReadyForDispatch,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain', 'Accounts'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n buttons: ['Accounts_ConfimrOrderByAccounts'],\n visibleButtons: ['Accounts_ConfimrOrderByAccounts'],\n selectedIndex: 7\n },\n\n ]\n },\n\n //Business Development\n {\n role: UserRoles.BusinessDevelopment,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n /////////////////////////////////////////////////////////////////////////////////////////////\n\n ]\n },\n\n //Product Manager\n {\n role: UserRoles.ProductManager,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n /////////////////////////////////////////////////////////////////////////////////////////////\n\n ]\n },\n\n //Marketing\n {\n role: UserRoles.Marketing,\n screensForStatus: [\n //////////////////////////Changes//////////////////////////////////////////////////////////\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 2\n },\n /////////////////////////////////////////////////////////////////////////////////////////////\n\n ]\n },\n\n //Manager Solutions Factory & Localization\n {\n role: UserRoles.ManagerSolutionsFactoryAndLocalization, \n screensForStatus: [\n\n /****************************************Add Edit Access to Admin for all screens************************************************* */\n //Sales Engg and Guest\n {\n status: EnquiryStatus.EnquiryAdded,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQSaveAsDraft,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n\n {\n status: EnquiryStatus.QuotationRevision,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.RFQReworkbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.SendBOMandProposal,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg', 'EnquiryConfirmation_ConfimrOrderBySalesEngg', 'EnquiryConfirmation_QuoteRevision'],\n selectedIndex: 3\n },\n \n //--------- changes ------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n ///L1\n\n {\n status: EnquiryStatus.RFQSubmittedbySalesEngg,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQSubmittedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQAcceptedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ',],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n \n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL2', 'QuoteGenearation_RemorkByL2', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL3', 'QuoteGenearation_RemorkByL3', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationsentbyL2toL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoCustomerServiceByL1'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQsentbyL1toL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n // --------- changes ----------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n \n //L2\n {\n status: EnquiryStatus.RFQSubmittedbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2', 'QuoteGenearation_EditRFQ'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationsentbyL3toL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL1ByL2'],\n visibleButtons: ['QuoteGenearation_SendtoL1ByL2', 'QuoteGenearation_ForwardtoL3ByL2'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.RFQsentbyL2toL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: [, 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n \n // ----------- changes --------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n \n ///L3\n {\n status: EnquiryStatus.RFQSubmittedbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote', 'QuoteGenearation_Enquiry_TechnicalDiscard'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendtoL2ByL3', 'QuoteGenearation_EditRFQ'],\n selectedIndex: 2\n },\n \n // ------------------------ changes ------------\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n \n ///CustomerService\n {\n status: EnquiryStatus.RFQSubmittedbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSaveAsDraftbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationPriceOnRequestbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationGeneratedbyCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL1,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL1', 'QuoteGenearation_RemorkByL1', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL1', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n \n },\n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL2,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL2', 'QuoteGenearation_RemorkByL2', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL2', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n \n {\n status: EnquiryStatus. QuotationSendtoCustomerServicebyL3,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form'],\n buttons: [ 'QuoteGenearation_EditRFQ','QuoteGenearation_GenerateQuote'],\n visibleButtons: ['QuoteGenearationAcceptByL3', 'QuoteGenearation_RemorkByL3', 'QuoteGenearation_ForwardtoL2ByL1',\n 'QuoteGenearation_SendtoCustomerServiceByL3', 'QuoteGenearation_EditRFQ', 'QuoteGenearation_GenerateQuote',\n ],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationSenttoCustomerService,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1',\n 'ManagementApproval_SendOrderforApprovalByCustomerService', 'QuoteGenearation_SendBOMProposalByL1', 'QuoteGenearation_EditRFQ',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendBOMProposalByL1'],\n visibleButtons: ['QuoteGenearation_SendBOMProposalByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n disableScreen: ['Enquiry Form', 'RFQ'],\n buttons: ['QuoteGenearation_SendBOMProposalByL1'],\n visibleButtons: ['QuoteGenearation_SendBOMProposalByL1'],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation'],\n buttons: ['ManagementApproval_SendOrderforApprovalByCustomerService', 'SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrderApprovedbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Sales Order'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['SO_SendtoSupplyChainByCustomerService'],\n visibleButtons: ['QuoteGenearation_SendforApprovalByCustomerService',\n 'ManagementApproval_SendOrderforApprovalByCustomerService',\n 'SO_SendtoSupplyChainByCustomerService'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL1,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL2,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n {\n status: EnquiryStatus.EnquiryTechnicalDiscardbyL3,\n screens: ['Enquiry Form', 'RFQ'],\n disableScreen: ['Enquiry Form'],\n buttons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n visibleButtons: ['RFQ_SaveasDraftBySalesEngg', 'RFQ_SubmitBySalesEngg'],\n selectedIndex: 1\n },\n // ----------------------------------\n /////Sales SalesDirector\n {\n status: EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation'],\n buttons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_RejectBySalesDirector', 'ManagementApproval_ApproveBySalesDirector', 'ManagementApproval_HoldBySalesDirector', 'ManagementApproval_SendQuotationforApprovalBySalesDirector'],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n buttons: ['ManagementApproval_Order_ApproveBySalesDirector', 'ManagementApproval_Order_RejectBySalesDirector', 'ManagementApproval_SendforApprovalBySalesDirector', 'ManagementApproval_SendOrderforApprovalBySalesDirector'],\n visibleButtons: ['ManagementApproval_Order_ApproveBySalesDirector', 'ManagementApproval_Order_RejectBySalesDirector', 'ManagementApproval_SendforApprovalBySalesDirector', 'ManagementApproval_SendOrderforApprovalBySalesDirector'],\n selectedIndex: 5\n },\n {\n status: EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 2\n },\n {\n status: EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 3\n },\n\n {\n status: EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 3\n },\n {\n status: EnquiryStatus.OrdersentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'Management Approval'],\n buttons: [],\n visibleButtons: [],\n selectedIndex: 5\n },\n ////CEO\n {\n status: EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n visibleButtons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n selectedIndex: 4\n },\n {\n status: EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval', 'CEO Approval'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Management Approval'],\n buttons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO'],\n visibleButtons: ['ManagementApproval_RejectByCEO', 'ManagementApproval_ApproveByCEO', 'ManagementApproval_HoldByCEO'],\n selectedIndex: 4\n },\n // {\n // status: EnquiryStatus.OrdersentforMngmtApproval_CEO,\n // screens: ['Enquiry Form', 'RFQ', 'Quote Generation','Enquiry Confirmation','Sales Order','Management Approval' , 'CEO Approval'],\n // disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation','Enquiry Confirmation','Sales Order','Management Approval'],\n // buttons: ['ManagementApproval_Order_ApproveByCEO', 'ManagementApproval_Order_RejectByCEO'],\n // visibleButtons: ['ManagementApproval_Order_ApproveByCEO', 'ManagementApproval_Order_RejectByCEO'],\n // selectedIndex: 6\n // }\n\n\n\n ////FINANCE ACCOUNTS\n {\n status: EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order'],\n buttons: ['OrderAcknowledmentNo'],\n visibleButtons: ['OrderAcknowledmentNo'],\n selectedIndex: 5\n },\n\n {\n status: EnquiryStatus.MaterialReadyForDispatch,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain', 'Accounts'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n buttons: ['Accounts_ConfimrOrderByAccounts'],\n visibleButtons: ['Accounts_ConfimrOrderByAccounts'],\n selectedIndex: 7\n },\n\n\n //SUPPLY CHAIN\n\n // {\n // status: EnquiryStatus.OANoGenerated,\n // screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation','Sales Order', 'OAGenerate','Supply Chain'],\n // disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation','Sales Order', 'OAGenerate'],\n // buttons: ['SupplyChain_SubmitBySupplyChain'],\n // visibleButtons: ['SupplyChain_SubmitBySupplyChain'],\n // selectedIndex: 6\n // },\n {\n status: EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n screens: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate', 'Supply Chain'],\n disableScreen: ['Enquiry Form', 'RFQ', 'Quote Generation', 'Enquiry Confirmation', 'Sales Order', 'OAGenerate'],\n buttons: ['MaterialReadyForDispatch'],\n visibleButtons: ['MaterialReadyForDispatch'],\n selectedIndex: 6\n },\n\n /***************************************************************************************** */\n ]\n },\n\n ],\n\n screensVisibleAfterPassed: [\n ///Admin\n {\n role: UserRoles.Admin,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //SalesEngineer\n {\n role: UserRoles.SalesEngineer,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n\n //AreaSalesManager\n {\n role: UserRoles.AreaSalesManager,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //RegionalSalesManager\n {\n role: UserRoles.RegionalSalesManager,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //Executive Business Assistant\n {\n role: UserRoles.ExecutiveBusinessAssistant,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //Agent\n {\n role: UserRoles.Agent,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //Distributor\n {\n role: UserRoles.Distributor,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //ChannelPartner\n {\n role: UserRoles.ChannelPartner,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //L1\n {\n role: UserRoles.L1,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n EnquiryStatus.RFQsentbyL1toL2,\n EnquiryStatus.RFQsentbyL2toL3,\n EnquiryStatus.QuotationSaveAsDraftbyL2,\n EnquiryStatus.QuotationSaveAsDraftbyL3,\n EnquiryStatus.QuotationSaveAsDraftbyCustomerService,\n EnquiryStatus.QuotationPriceOnRequestbyL2,\n EnquiryStatus.QuotationPriceOnRequestbyL3,\n EnquiryStatus.QuotationPriceOnRequestbyCustomerService,\n EnquiryStatus.QuotationGeneratedbyL2,\n EnquiryStatus.QuotationGeneratedbyL3,\n EnquiryStatus.QuotationGeneratedbyCustomerService,\n EnquiryStatus.QuotationsentbyL3toL2,\n EnquiryStatus.QuotationSenttoCustomerService,\n EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n ]\n },\n //L2\n {\n role: UserRoles.L2,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n EnquiryStatus.RFQsentbyL2toL3,\n EnquiryStatus.QuotationSaveAsDraftbyL1,\n EnquiryStatus.QuotationSaveAsDraftbyL3,\n EnquiryStatus.QuotationSaveAsDraftbyCustomerService,\n EnquiryStatus.QuotationPriceOnRequestbyL1,\n EnquiryStatus.QuotationPriceOnRequestbyL3,\n EnquiryStatus.QuotationPriceOnRequestbyCustomerService,\n EnquiryStatus.QuotationGeneratedbyL1,\n EnquiryStatus.QuotationGeneratedbyL3,\n EnquiryStatus.QuotationGeneratedbyCustomerService,\n EnquiryStatus.QuotationsentbyL2toL1,\n EnquiryStatus.QuotationSenttoCustomerService,\n EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n ]\n },\n //L3\n {\n role: UserRoles.L3,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n EnquiryStatus.QuotationsentbyL3toL2,\n EnquiryStatus.QuotationsentbyL2toL1,\n EnquiryStatus.QuotationSaveAsDraftbyCustomerService,\n EnquiryStatus.QuotationPriceOnRequestbyCustomerService,\n EnquiryStatus.QuotationGeneratedbyCustomerService,\n EnquiryStatus.QuotationSenttoCustomerService,\n EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n ]\n },\n //CustomerService\n {\n role: UserRoles.CustomerService,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n EnquiryStatus.QuotationOnHoldbyMngmt_SalesDirector,\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationSentforMngtApproval_SalesDirector,\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Sales Order',\n status: [\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n ]\n },\n //SalesDirector\n {\n role: UserRoles.SalesDirector,\n screens:\n [\n {\n screenName: 'Management Approval',\n status: [\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //CEO\n {\n role: UserRoles.CEO,\n screens:\n [\n {\n screenName: 'CEO Approval',\n status: [\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationRejectedbyMngmt_CEO,\n EnquiryStatus.QuotationRejectedbyMngmt_SalesDirector,\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n\n\n ]\n },\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.QuotationOnHoldbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n\n {\n screenName: 'Sales Order',\n status: [\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n ]\n },\n //SupplyChain\n {\n role: UserRoles.SupplyChain,\n screens:\n [\n\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //FinanceAccounts\n {\n role: UserRoles.FinanceAccounts,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n\n },\n //BusinessDevelopment\n {\n role: UserRoles.BusinessDevelopment,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //Marketing\n {\n role: UserRoles.Marketing,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n //ProductManager\n {\n role: UserRoles.ProductManager,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n\n //Manager Solutions Factory & Localization\n {\n role: UserRoles.ManagerSolutionsFactoryAndLocalization,\n screens:\n [\n {\n screenName: 'Quote Generation',\n status: [\n\n EnquiryStatus.SendBOMandProposal,\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrderRejectedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderRejectedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Management Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_SalesDirector,\n EnquiryStatus.QuotationSentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'CEO Approval',\n status: [\n\n EnquiryStatus.QuotationApprovedbyMngmt_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Enquiry Confirmation',\n status: [\n\n EnquiryStatus.EnquiryOrderConfirmedbySalesEngg,\n EnquiryStatus.EnquiryLost,\n EnquiryStatus.OrdersentforMngmtApproval_SalesDirector,\n EnquiryStatus.OrderApprovedbyMngmt_SalesDirector,\n EnquiryStatus.OrdersentforMngmtApproval_CEO,\n EnquiryStatus.OrderApprovedbyMngmt_CEO,\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n\n {\n screenName: 'Sales Order',\n status: [\n\n EnquiryStatus.OrderConfirmedbyCustomerServiceSendSO,\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'OAGenerate',\n status: [\n\n EnquiryStatus.OANoGenerated,\n EnquiryStatus.SupplyChainConfirmedDeliveryDate,\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Supply Chain',\n status: [\n EnquiryStatus.MaterialReadyForDispatch,\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n },\n {\n screenName: 'Accounts',\n status: [\n EnquiryStatus.AccountsConfirmInvoiceNo,\n ]\n }\n\n ]\n },\n ],\n\n successMessages: [\n { id: 1, status: 'EnquiryAdded', confirmmsg: '', successmsg: 'Enquiry details added successfully!', errormsg: 'Failed to add the Enquiry details!' },\n { id: 2, status: 'RFQSaveAsDraft', confirmmsg: 'Do you want to save RFQ as Draft?', successmsg: 'RFQ details saved successfully!', errormsg: 'Failed to saved the RFQ Details!' },\n { id: 3, status: 'RFQSubmittedbySalesEngg', confirmmsg: 'Do you want to submit RFQ details?', successmsg: 'RFQ Details submitted successfully!', errormsg: 'Failed to submit the RFQ Details!' },\n { id: 4, status: 'RFQAcceptedbyL1', confirmmsg: 'Do you want to accept the RFQ?', successmsg: 'RFQ Accepted successfully!', errormsg: 'Failed to Accept the RFQ!' },\n { id: 5, status: 'RFQReworkbyL1', confirmmsg: 'Do you want to send the Enquiry for Rework?', successmsg: 'Enquiry sent for rework successfully!', errormsg: 'Failed to send the enquiry for rework!' },\n { id: 6, status: 'RFQSubmittedbyL1', confirmmsg: 'Do you want to submit RFQ details?', successmsg: 'RFQ Details submitted successfully!', errormsg: 'Failed to submit the RFQ Details!' },\n { id: 7, status: 'RFQsentbyL1toL2', confirmmsg: 'Do you want to send the Enquiry to L2?', successmsg: 'Enquiry sent to L2 successfully!', errormsg: 'Failed to send the Enquiry to L2!' },\n { id: 8, status: 'RFQSubmittedbyL2', confirmmsg: 'Do you want to submit RFQ details?', successmsg: 'RFQ Details submitted successfully!', errormsg: 'Failed to submit the RFQ Details!' },\n { id: 9, status: 'RFQsentbyL2toL3 ', confirmmsg: 'Do you want to send the Enquiry to L3?', successmsg: 'Enquiry sent to L3 successfully!', errormsg: 'Failed to send the Enquiry to L3!' },\n { id: 10, status: 'RFQSubmittedbyL3', confirmmsg: 'Do you want to submit RFQ details?', successmsg: 'RFQ Details submitted successfully!', errormsg: 'Failed to submit the RFQ Details!' },\n { id: 11, status: 'QuotationSaveAsDraftbyL1', confirmmsg: 'Do you want to save Quotation as draft?', successmsg: 'Quotation saved successfully!', errormsg: 'Failed to save the quotation!' },\n { id: 12, status: 'QuotationSaveAsDraftbyL2', confirmmsg: 'Do you want to save Quotation as draft?', successmsg: 'Quotation saved successfully!', errormsg: 'Failed to save the quotation!' },\n { id: 13, status: 'QuotationSaveAsDraftbyL3', confirmmsg: 'Do you want to save Quotation as draft?', successmsg: 'Quotation saved successfully!', errormsg: 'Failed to save the quotation!' },\n { id: 14, status: 'QuotationPriceOnRequestbyL1 ', confirmmsg: 'Do you want to proceed for Price on Request?', successmsg: 'Prices are requested successfully!', errormsg: 'Failed to request the Prices!' },\n { id: 15, status: 'QuotationPriceOnRequestbyL2', confirmmsg: 'Do you want to proceed for Price on Request?', successmsg: 'Prices are requested successfully!', errormsg: 'Failed to request the Prices!' },\n { id: 16, status: 'QuotationPriceOnRequestbyL3', confirmmsg: 'Do you want to proceed for Price on Request?', successmsg: 'Prices are requested successfully!', errormsg: 'Failed to request the Prices!' },\n { id: 17, status: 'QuotationGeneratedbyL1', confirmmsg: 'Do you want to Generate the Quotation?', successmsg: 'Quotation Generated successfully!', errormsg: 'Failed to Generate the Quotation!' },\n { id: 18, status: 'QuotationGeneratedbyL2', confirmmsg: 'Do you want to Generate the Quotation?', successmsg: 'Quotation Generated successfully!', errormsg: 'Failed to Generate the Quotation!' },\n { id: 19, status: 'QuotationGeneratedbyL3', confirmmsg: 'Do you want to Generate the Quotation?', successmsg: 'Quotation Generated successfully!', errormsg: 'Failed to Generate the Quotation!' },\n { id: 20, status: 'QuotationsentbyL3toL2', confirmmsg: 'Do you want to send the Quotation to L2?', successmsg: 'Quotation sent to L2 successfully!', errormsg: 'Failed to send the Quotation to L2!' },\n { id: 21, status: 'QuotationsentbyL2toL1', confirmmsg: 'Do you want to send the Quotation to L1?', successmsg: 'Quotation sent to L1 successfully!', errormsg: 'Failed to send the Quotation to L1!' },\n { id: 22, status: 'QuotationSenttoCustomerService', confirmmsg: 'Do you want to send the Quotation to Customer Service?', successmsg: 'Quotation sent to Customer Service successfully!', errormsg: 'Failed to send the Quotation to Customer Service!' },\n { id: 23, status: 'RFQSubmittedbyCustomerService', confirmmsg: 'Do you want to submit RFQ details?', successmsg: 'RFQ Details submitted successfully!', errormsg: 'Failed to submit the RFQ Details!' },\n { id: 24, status: 'QuotationSaveAsDraftbyCustomerService', confirmmsg: 'Do you want to save Quotation as draft?', successmsg: 'Quotation saved successfully!', errormsg: 'Failed to save the quotation!' },\n { id: 25, status: 'QuotationPriceOnRequestbyCustomerService', confirmmsg: 'Do you want to proceed for Price on Request?', successmsg: 'Prices are requested successfully!', errormsg: 'Failed to request the Prices!' },\n { id: 26, status: 'QuotationGeneratedbyCustomerService', confirmmsg: 'Do you want to Generate the Quotation?', successmsg: 'Quotation Generated successfully!', errormsg: 'Failed to Generate the Quotation!' },\n { id: 27, status: 'QuotationSentforMngtApproval_SalesDirector', confirmmsg: 'Do you want to send the Quotation for management approval?', successmsg: 'Quotation sent for Approval successfully!', errormsg: 'Failed to send the Quotation for Approval!' },\n { id: 28, status: 'QuotationRejectedbyMngmt_SalesDirector', confirmmsg: 'Do you want to Reject this Quotation?', successmsg: 'Quotation rejected successfully!', errormsg: 'Failed to reject the Quotation!' },\n { id: 29, status: 'QuotationApprovedbyMngmt_SalesDirector', confirmmsg: 'Do you want to Approve this Quotation?', successmsg: 'Quotation Approved successfully!', errormsg: 'Failed to Approve the Quotation!' },\n { id: 30, status: 'QuotationOnHoldbyMngmt_SalesDirector', confirmmsg: 'Do you want to Hold this Quotation?', successmsg: 'Quotation put on Hold successfully!', errormsg: 'Failed to put the Quotation on Hold!' },\n { id: 31, status: 'QuotationSentforMngmtApproval_CEO ', confirmmsg: 'Do you want to send the Quotation for CEO approval?', successmsg: 'Quotation sent for Approval successfully!', errormsg: 'Failed to send the Quotation for Approval!' },\n { id: 32, status: 'QuotationRejectedbyMngmt_CEO', confirmmsg: 'Do you want to Reject this Quotation?', successmsg: 'Quotation rejected successfully!', errormsg: 'Failed to reject the Quotation!' },\n { id: 33, status: 'QuotationApprovedbyMngmt_CEO', confirmmsg: 'Do you want to Approve this Quotation?', successmsg: 'Quotation Approved successfully!', errormsg: 'Failed to Approve the Quotation!' },\n { id: 34, status: 'QuotationOnHoldbyMngmt_CEO', confirmmsg: 'Do you want to Hold this Quotation?', successmsg: 'Quotation put on Hold successfully!', errormsg: 'Failed to put the Quotation on Hold!' },\n { id: 35, status: 'SendBOMandProposal', confirmmsg: 'Do you want to send the BOM & Proposal?', successmsg: 'BOM & Proposal sent successfully!', errormsg: 'Failed to send the BOM & Proposal!' },\n { id: 36, status: 'QuotationRevision', confirmmsg: 'Do you want to proceed for quotation revision?', successmsg: 'Details saved successfully!', errormsg: 'Failed to saved teh details!' },\n { id: 37, status: 'EnquiryLost', confirmmsg: 'Do you want to Confirm the Enquiry as Lost?', successmsg: 'Enquiry Confirmed as Lost successfully!', errormsg: 'Failed to confirm the Enquiry!' },\n { id: 38, status: 'EnquiryOrderConfirmedbySalesEngg', confirmmsg: 'Do you want to Confirm the Enquiry?', successmsg: 'Enquiry Confirmed as Win successfully!', errormsg: 'Failed to confirm the Enquiry!' },\n { id: 39, status: 'OrdersentforMngmtApproval_SalesDirector', confirmmsg: 'Do you want to send the Order for management approval?', successmsg: 'Order sent for Approval successfully!', errormsg: 'Failed to send the order for Approval!' },\n { id: 40, status: 'OrderApprovedbyMngmt_SalesDirector', confirmmsg: 'Do you want to Approve this Order?', successmsg: 'Order Approved successfully!', errormsg: 'Failed to Approve the Order!' },\n { id: 41, status: 'OrderRejectedbyMngmt_SalesDirector ', confirmmsg: 'Do you want to Reject this Order?', successmsg: 'Order Rejected successfully!', errormsg: 'Failed to Reject the Order!' },\n { id: 42, status: 'OrdersentforMngmtApproval_CEO', confirmmsg: 'Do you want to send the Order for CEO approval?', successmsg: 'Order sent for Approval successfully!', errormsg: 'Failed to send the order for Approval!' },\n { id: 43, status: 'OrderApprovedbyMngmt_CEO', confirmmsg: 'Do you want to Approve this Order?', successmsg: 'Order Approved successfully!', errormsg: 'Failed to Approve the Order!' },\n { id: 44, status: 'OrderRejectedbyMngmt_CEO', confirmmsg: 'Do you want to Reject this Order?', successmsg: 'Order Rejected successfully!', errormsg: 'Failed to Reject the Order!' },\n { id: 45, status: 'OrderConfirmedbyCustomerServiceSendSO', confirmmsg: 'Do you want to send for Order Acknowledgement?', successmsg: 'Order Confirmed successfully!', errormsg: 'Failed to Confirm the Order' },\n { id: 46, status: 'OANoGenerated', confirmmsg: 'Once OA Number Generated, can not be altered. Do you want to continue?', successmsg: 'Order Acknowledgement No. successfully!', errormsg: 'Failed to generate the Order Acknowledgement No.!' },\n { id: 47, status: 'SupplyChainConfirmedDeliveryDate', confirmmsg: 'Do you want to Confirm the Delivery date?', successmsg: 'Delivery Date confirmed successfully!', errormsg: 'Failed to confirm Delivery Date!' },\n { id: 48, status: 'MaterialReadyForDispatch', confirmmsg: 'Do you want to proceed?', successmsg: 'Details saved Successfully!', errormsg: 'Failed to save the details!' },\n { id: 49, status: 'AccountsConfirmInvoiceNo', confirmmsg: 'Do you want to confirm the Invoice?', successmsg: 'Invoice confirmed Successfully!', errormsg: 'Failed to Cofirm the Invoice!' },\n { id: 51, status: 'EnquiryTechnicalDiscardbyL1', confirmmsg: 'Do you want to confirm the enquiry as technical discarded?', successmsg: 'Enquiry confirmed as technical discarded Successfully!', errormsg: 'Failed to confirm the enquiry as technical discarded!' },\n { id: 52, status: 'EnquiryTechnicalDiscardbyL2', confirmmsg: 'Do you want to confirm the enquiry as technical discarded?', successmsg: 'Enquiry confirmed as technical discarded Successfully!', errormsg: 'Failed to confirm the enquiry as technical discarded!' },\n { id: 53, status: 'EnquiryTechnicalDiscardbyL3', confirmmsg: 'Do you want to confirm the enquiry as technical discarded?', successmsg: 'Enquiry confirmed as technical discarded Successfully!', errormsg: 'Failed to confirm the enquiry as technical discarded!' },\n { id: 50, status: 'CloseEnquiry', confirmmsg: 'You want to close the Enquiry?', successmsg: 'Enquiry closed Successfully!', errormsg: 'Failed to close the Enquiry!'},\n\t {id: 54, status: 'QuotationsendtoCustomerServicebyL1', confirmmsg: 'Do you want to send this Quotation for review to Customer Service?', successmsg: 'Quotation is send to Customer Service Successfully!', errormsg: ' Failed to send the Quotation to Customer Service' },\n {id: 55, status: 'QuotationsendtoCustomerServicebyL2', confirmmsg: 'Do you want to send this Quotation for review to Customer Service?', successmsg: 'Quotation is send to Customer Service Successfully!', errormsg: ' Failed to send the Quotation to Customer Service' },\n {id: 56, status: 'QuotationsendtoCustomerServicebyL3', confirmmsg: 'Do you want to send this Quotation for review to Customer Service?', successmsg: 'Quotation is send to Customer Service Successfully!', errormsg: ' Failed to send the Quotation to Customer Service' },\n { id: 57, status: 'DeleteEnquiry', confirmmsg: 'You want to delete the enquiry?', successmsg: 'Enquiry deleted Successfully!', errormsg: 'Failed to delete the enquiry!'},\n { id: 58, status: 'CloseLead', confirmmsg: 'You want to close the Lead?', successmsg: 'Lead closed Successfully!', errormsg: 'Failed to close the Lead!'}\n\n \n ],\n\n excelCoulumns: ['Region', 'Product Line', 'series', 'model', 'station', 'units', 'amount'],\n\n dummyReportData: [\n { Region: 'North', ProductLine: 'Indexres', ProductSeries: 'TC', ProductModel: 'TC120G', ProductStation: '2', Price: 129, Amount: 1541 },\n { Region: 'North', ProductLine: 'Indexres', ProductSeries: 'TC', ProductModel: 'TC120G', ProductStation: '4', Price: 129, Amount: 1541 },\n { Region: 'North', ProductLine: 'Indexres', ProductSeries: 'TC', ProductModel: 'TC150G', ProductStation: '2', Price: 129, Amount: 1541 },\n { Region: 'North', ProductLine: 'Indexres', ProductSeries: 'TC', ProductModel: 'TC150G', ProductStation: '5', Price: 129, Amount: 1541 },\n\n ]\n\n\n}\n\nexport enum EnquiryStatus_old {\n EnquiryAdded = 1,\n RFQSaveAsDraft = 2,\n RFQSubmittedbySalesEngg = 3,\n RFQAcceptedbyL1 = 4,\n RFQReworkbyL1 = 5,\n RFQsentbyL1toL2 = 6,\n RFQsentbyL2toL3 = 7,\n QuotationSaveAsDraftbyL1 = 8,\n QuotationSaveAsDraftbyL2 = 9,\n QuotationSaveAsDraftbyL3 = 10,\n QuotationGeneratedbyL1 = 11,\n QuotationsendtoCustomerServicebyL1=54,\n QuotationsendtoCustomerServicebyL2=55,\n QuotationsendtoCustomerServicebyL3=56,\n\n QuotationGeneratedbyL2 = 12,\n QuotationGeneratedbyL3 = 13,\n QuotationsentbyL3toL2 = 14,\n QuotationsentbyL2toL1 = 15,\n QuotationSenttoCustomerService = 16,\n QuotationSentforMngtApproval_SalesDirector = 17,\n QuotationRejectedbyMngmt_SalesDirector = 18,\n QuotationApprovedbyMngmt_SalesDirector = 19,\n QuotationOnHoldbyMngmt_SalesDirector = 20,\n QuotationSentforMngmtApproval_CEO = 21,\n QuotationRejectedbyMngmt_CEO = 22,\n QuotationApprovedbyMngmt_CEO = 23,\n QuotationOnHoldbyMngmt_CEO = 24,\n SendBOMandProposal = 25,\n EnquiryOrderConfirmedbySalesEngg = 26,\n EnquiryLost = 27,\n OrdersentforMngmtApproval_SalesDirector = 28,\n OrderReworkMngmt_SalesDirector = 29,\n OrderApprovedbyMngmt_SalesDirector = 30,\n OrderRejectedbyMngmt_SalesDirector = 31,\n OrdersentforMngmtApproval_CEO = 32,\n OrderReworkMngmt_CEO = 33,\n OrderApprovedbyMngmt_CEO = 34,\n OrderRejectedbyMngmt_CEO = 35,\n OrderConfirmedbyL1 = 36,\n SupplyChainConfirmedDeliveryDate = 37,\n AccountsConfirmInvoiceNo = 38\n}\n","import { BrowserModule, Title } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { RegisterComponent } from './register/register.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { LoaderComponent } from './loader/loader.component';\nimport { ToastrModule } from 'ngx-toastr';\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\nimport { HeaderComponent } from './header/header.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { ChartsModalComponent } from './sub-component/charts-modal/charts-modal.component';\nimport { EnquiryDetailsModalChartComponent } from './sub-component/charts-modal/enquiry-details-modal-chart/enquiry-details-modal-chart.component';\nimport { ProfileComponent } from './profile/profile.component';\nimport { EnquiryComponent } from './sub-component/enquiry/enquiry/enquiry.component';\nimport { AddEnquiryComponent } from './sub-component/enquiry/add-enquiry/add-enquiry.component';\nimport { EditViewEnquiryComponent } from './sub-component/enquiry/edit-view-enquiry/edit-view-enquiry.component';\nimport { NgbModule, NgbActiveModal, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\nimport { EnquiryModalComponent } from './sub-component/enquiry/enquiry-modal/enquiry-modal.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { AddCustomerComponent } from './sub-component/masters/customer/add-customer/add-customer.component';\nimport { EditViewCustomerComponent } from './sub-component/masters/customer/edit-view-customer/edit-view-customer.component';\nimport { CustomerDetailsComponent } from './sub-component/masters/customer/customer-details/customer-details.component';\nimport { ConfigurationDetailsComponent } from './sub-component/masters/configuration/configuration-details/configuration-details.component';\nimport { AddConfigurationComponent } from './sub-component/masters/configuration/add-configuration/add-configuration.component';\nimport { EditViewConfigurationComponent } from './sub-component/masters/configuration/edit-view-configuration/edit-view-configuration.component';\nimport { AuthInterceptor } from './auth/auth.interceptor';\nimport { ActivityDetailsComponent } from './sub-component/enquiry/activity-details/activity-details.component';\nimport { AddProductLineComponent } from './sub-component/masters/product/product-line/add-product-line/add-product-line.component';\nimport { ProductLineDetailsComponent } from './sub-component/masters/product/product-line/product-line-details/product-line-details.component';\nimport { AddProductFamilyComponent } from './sub-component/masters/product/product-family/add-product-family/add-product-family.component';\nimport { ProductFamilyDetailsComponent } from './sub-component/masters/product/product-family/product-family-details/product-family-details.component';\nimport { ProductSeriesDetailsComponent } from './sub-component/masters/product/product-series/product-series-details/product-series-details.component';\nimport { AddProductSeriesComponent } from './sub-component/masters/product/product-series/add-product-series/add-product-series.component';\nimport { AddProductModelComponent } from './sub-component/masters/product/product-model/add-product-model/add-product-model.component';\nimport { ProductModelDetailsComponent } from './sub-component/masters/product/product-model/product-model-details/product-model-details.component';\nimport { AddOptionsComponent } from './sub-component/masters/product/options/add-options/add-options.component';\nimport { EditViewProductFamilyComponent } from './sub-component/masters/product/product-family/edit-view-product-family/edit-view-product-family.component';\nimport { EditViewProductSeriesComponent } from './sub-component/masters/product/product-series/edit-view-product-series/edit-view-product-series.component';\nimport { EditViewProductModelComponent } from './sub-component/masters/product/product-model/edit-view-product-model/edit-view-product-model.component';\nimport { EditViewProductLineComponent } from './sub-component/masters/product/product-line/edit-view-product-line/edit-view-product-line.component';\nimport { AddVariantLevel1Component } from './sub-component/masters/product/variant-level-1/add-variant-level1/add-variant-level1.component';\nimport { EditViewVariantLevel1Component } from './sub-component/masters/product/variant-level-1/edit-view-variant-level1/edit-view-variant-level1.component';\nimport { VariantLevel1DetailsComponent } from './sub-component/masters/product/variant-level-1/variant-level1-details/variant-level1-details.component';\nimport { VariantLevel2DetailsComponent } from './sub-component/masters/product/variant-level-2/variant-level2-details/variant-level2-details.component';\nimport { EditViewVariantLevel2Component } from './sub-component/masters/product/variant-level-2/edit-view-variant-level2/edit-view-variant-level2.component';\nimport { AddVariantLevel2Component } from './sub-component/masters/product/variant-level-2/add-variant-level2/add-variant-level2.component';\nimport { AddVariantLevel3Component } from './sub-component/masters/product/variant-level-3/add-variant-level3/add-variant-level3.component';\nimport { VariantLevel3DetailsComponent } from './sub-component/masters/product/variant-level-3/variant-level3-details/variant-level3-details.component';\nimport { VariantLevel4DetailsComponent } from './sub-component/masters/product/variant-level-4/variant-level4-details/variant-level4-details.component';\nimport { EditViewVariantLevel4Component } from './sub-component/masters/product/variant-level-4/edit-view-variant-level4/edit-view-variant-level4.component';\nimport { AddVariantLevel4Component } from './sub-component/masters/product/variant-level-4/add-variant-level4/add-variant-level4.component';\nimport { AvgDiscountMonthComponent } from './sub-component/dashboard/avg-discount-month-chart/avg-discount-month.component';\nimport { BPOrderIntakeComponent } from './sub-component/dashboard/bporder-intake-chart/bporder-intake.component';\nimport { QuatationOrderIntakeChartComponent } from './sub-component/dashboard/quatation-order-intake-chart/quatation-order-intake-chart.component';\nimport { OpportunityQuotationChartComponent } from './sub-component/dashboard/opportunity-quotation-chart/opportunity-quotation-chart.component';\nimport { OrderValuesChartComponent } from './sub-component/dashboard/order-values-chart/order-values-chart.component';\nimport { OrderWinLostChartComponent } from './sub-component/dashboard/order-win-lost-chart/order-win-lost-chart.component';\nimport { DashboardComponent } from './sub-component/dashboard/dashboard.component';\nimport { EnquiryDetailsChartComponent } from './sub-component/dashboard/enquiry-details-chart/enquiry-details-chart.component';\nimport { BusinessPlanChartComponent } from './sub-component/dashboard/business-plan-chart/business-plan-chart.component';\nimport { PendingEnquiryComponent } from './sub-component/enquiry/pending-enquiry/pending-enquiry.component';\nimport { ProductMatrixComponent } from './sub-component/masters/product-matrix/product-matrix.component';\nimport { FocusInvalidInputDirective } from './directive/focus-invalid-input.directive';\nimport { BusinessPlanDetailsComponent } from './sub-component/masters/BusinessPlan/business-plan-details/business-plan-details.component';\nimport { BusinessPlanForSalesAndOrderComponent } from './sub-component/masters/BusinessPlan/business-plan-for-sales-and-order/business-plan-for-sales-and-order.component';\nimport { RoleGuard } from './auth/role.guard';\nimport { EditBusinessPlanComponent } from './sub-component/masters/BusinessPlan/edit-business-plan/edit-business-plan.component';\nimport { RegionwiseReportComponent } from './sub-component/reports/regionwise-report/regionwise-report.component';\nimport { ProductwiseReportComponent } from './sub-component/reports/productwise-report/productwise-report.component';\nimport { CustomerwiseReportComponent } from './sub-component/reports/customerwise-report/customerwise-report.component';\nimport { SegmentwiseReportComponent } from './sub-component/reports/segmentwise-report/segmentwise-report.component';\nimport { ProductseriesColumnchartComponent } from './sub-component/reports/productwise-report/productseries-columnchart/productseries-columnchart.component';\nimport { ProductmodelColumnchartComponent } from './sub-component/reports/productwise-report/productmodel-columnchart/productmodel-columnchart.component';\nimport { ProductvariantColumnchartComponent } from './sub-component/reports/productwise-report/productvariant-columnchart/productvariant-columnchart.component';\nimport { AmChartsModule } from \"@amcharts/amcharts3-angular\";\nimport { OpportunityRfqChartComponent } from './sub-component/dashboard/opportunity-rfq-chart/opportunity-rfq-chart.component';\nimport { OrderbacklogSupplychainChartComponent } from './sub-component/dashboard/orderbacklog-supplychain-chart/orderbacklog-supplychain-chart.component';\nimport { StockInventoryDetailsComponent } from './sub-component/masters/StockInventory/stock-inventory-details/stock-inventory-details.component';\nimport { AddStockInventoryComponent } from './sub-component/masters/StockInventory/add-stock-inventory/add-stock-inventory.component';\nimport { ViewStockInventoryComponent } from './sub-component/masters/StockInventory/view-stock-inventory/view-stock-inventory.component';\nimport { EditViewOptionsComponent } from './sub-component/masters/product/options/edit-view-options/edit-view-options.component';\nimport { OptionsDetailsComponent } from './sub-component/masters/product/options/options-details/options-details.component';\nimport { EditViewVariantLevel3Component } from './sub-component/masters/product/variant-level-3/edit-view-variant-level3/edit-view-variant-level3.component';\nimport { ExportToExcelService } from './Service/exportToexcel.service';\nimport { PassOnComponent } from './sub-component/enquiry/pass-on/pass-on.component';\nimport { DynamicBGImageComponent } from './dynamic-bgimage/dynamic-bgimage.component';\nimport { CustomNgbDateParserFormatter } from './directive/CustomNgbDateParserFormatter';\nimport { IndianCurrency } from './Pipe/IndianCurrency.pipe';\nimport { EditViewWorkFlowScreenAccessComponent } from './sub-component/masters/WorkFlowScreenAccess/edit-view-work-flow-screen-access/edit-view-work-flow-screen-access.component';\nimport { EnquiryGridReportComponent } from './sub-component/reports/enquiry-grid-report/enquiry-grid-report.component';\nimport { PowerBIReportsComponent } from './sub-component/reports/power-bireports/power-bireports.component';\nimport { AlertsDetailsComponent } from './sub-component/masters/Alerts/alerts-details/alerts-details.component';\nimport { EditViewAlertsComponent } from './sub-component/masters/Alerts/edit-view-alerts/edit-view-alerts.component';\nimport { ProductSeriesUploadLogComponent } from './sub-component/masters/product/product-series/product-series-details/product-series-upload-log/product-series-upload-log.component';\nimport { TechnicalDiscardComponent } from './sub-component/enquiry/technical-discard/technical-discard.component';\nimport { AddCustomerOpportunityComponent } from './sub-component/enquiry/add-customer-opportunity/add-customer-opportunity.component';\nimport { CloseOppReasonComponent } from './sub-component/enquiry/close-opp-reason/close-opp-reason.component';\nimport { AddLoginPageDynamicImageComponent } from './sub-component/masters/login-page-dynamic-image/add-login-page-dynamic-image/add-login-page-dynamic-image.component';\nimport { DetailsLoginPageDynamicImageComponent } from './sub-component/masters/login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image/details-login-page-dynamic-image.component';\nimport { SiteActivityComponent } from './sub-component/reports/site-activity/site-activity/site-activity.component';\nimport { AddLeadComponent } from './sub-component/masters/Lead/add-lead/add-lead/add-lead.component';\nimport { EditViewLeadComponent } from './sub-component/masters/Lead/edit-view-lead/edit-view-lead/edit-view-lead.component';\nimport { LeadDetailsComponent } from './sub-component/masters/Lead/lead-details/lead-details/lead-details.component';\nimport { PriceconfiguratorComponent } from './sub-component/masters/priceconfigurator/priceconfigurator.component';\nimport { RfqComponent } from './sub-component/enquiry/rfq/rfq.component';\nimport { ManagementApprovalComponent } from './sub-component/enquiry/management-approval/management-approval.component';\nimport { OaGenerationComponent } from './sub-component/enquiry/oa-generation/oa-generation.component';\nimport { QuotationComponent } from './sub-component/enquiry/quotation/quotation.component';\nimport { CeoApprovalComponent } from './sub-component/enquiry/ceo-approval/ceo-approval.component';\nimport { OrderConfirmationComponent } from './sub-component/enquiry/order-confirmation/order-confirmation.component';\nimport { SoGenerationComponent } from './sub-component/enquiry/so-generation/so-generation.component';\nimport { SupplyChainComponent } from './sub-component/enquiry/supply-chain/supply-chain.component';\nimport { ConfirmInvoiceComponent } from './sub-component/enquiry/confirm-invoice/confirm-invoice.component';\nimport { CloseLeadComponent } from './sub-component/masters/Lead/close-lead/close-lead.component';\nimport { EditViewLoginPageDynamicImageComponent } from './sub-component/masters/login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image/edit-view-login-page-dynamic-image.component';\nimport { AddContractFrameAgreementComponent } from './sub-component/masters/configuration/ContractFrameAgreement/add-contract-frame-agreement/add-contract-frame-agreement.component';\nimport { EditViewContractFrameAgreementComponent } from './sub-component/masters/configuration/ContractFrameAgreement/edit-view-contract-frame-agreement/edit-view-contract-frame-agreement.component';\nimport { MyActivityComponent } from './sub-component/customer-engagement/my-activity/my-activity.component';\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\nimport { AddActivityComponent } from './sub-component/customer-engagement/activity/add-activity/add-activity.component';\nimport { EditActivityComponent } from './sub-component/customer-engagement/activity/edit-activity/edit-activity.component';\nimport { ListActivityComponent } from './sub-component/customer-engagement/activity/list-activity/list-activity.component';\nimport { ViewActivityComponent } from './sub-component/customer-engagement/activity/view-activity/view-activity.component';\nimport { CalenderViewComponent } from './sub-component/customer-engagement/activity/calender-view/calender-view.component';\nimport { ListActivityRowComponent } from './sub-component/customer-engagement/activity/list-activity-row/list-activity-row.component';\nimport { BulkEditActivityComponent } from './sub-component/customer-engagement/activity/bulk-edit-activity/bulk-edit-activity.component';\nimport { ActivityStatusByMonthComponent } from './sub-component/customer-engagement/engagement-reports/activity-status-by-month/activity-status-by-month.component';\nimport { ReportByActivityTypeMonthComponent } from './sub-component/customer-engagement/engagement-reports/report-by-activity-type-month/report-by-activity-type-month.component';\nimport { ReportByActivityTypeStatusComponent } from './sub-component/customer-engagement/engagement-reports/report-by-activity-type-status/report-by-activity-type-status.component';\nimport { EngagementReportsComponent } from './sub-component/customer-engagement/engagement-reports/engagement-reports.component';\nimport { MustMatchDirective } from './directive/MustMatch.directive';\nimport { GuestDetailsComponent } from './sub-component/masters/guest/guest-details/guest-details.component';\nimport { MaterialModule } from './material/material.module';\nimport { RegisterService } from './Service/register.service';\nimport { AddEmployeeComponent } from './sub-component/masters/employee/add-employee/add-employee.component';\nimport { EditViewEmployeeComponent } from './sub-component/masters/employee/edit-view-employee/edit-view-employee.component';\nimport { EmployeeDetailsComponent } from './sub-component/masters/employee/employee-details/employee-details.component';\nimport { AddGuestComponent } from './sub-component/masters/guest/add-guest/add-guest.component';\nimport { EditViewGuestComponent } from './sub-component/masters/guest/edit-view-guest/edit-view-guest.component';\nimport { CommonService } from './Service/common.service';\nimport { ReportByActivityStatusTypeComponent } from './sub-component/customer-engagement/engagement-reports/report-by-activity-status-type/report-by-activity-status-type.component';\nimport { ActivityListByEntityComponent } from './sub-component/enquiry/activity-list-by-entity/activity-list-by-entity.component';\nimport { CustomerFrameAgreementDetailsComponent } from './sub-component/masters/configuration/ContractFrameAgreement/customer-frame-agreement-details/customer-frame-agreement-details.component';\nimport { ShowPendingActivityComponent } from './sub-component/dashboard/show-pending-activity/show-pending-activity.component';\nimport { PlannedVsActualActivityComponent } from './sub-component/customer-engagement/planned-vs-actual-activity/planned-vs-actual-activity.component';\nimport { CustomerEngagementDetailsComponent } from './sub-component/customer-engagement/customer-engagement-details/customer-engagement-details.component';\nimport { CustomerEngagementComponent } from './sub-component/customer-engagement/customer-engagement/customer-engagement.component';\nimport { QuotationPreviewComponent } from './sub-component/enquiry/quotation-preview/quotation-preview.component';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport { SendBackCommentComponent } from './sub-component/enquiry/send-back-comment/send-back-comment.component';\nimport { AppConfigService } from './Service/app-config.service';\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n DashboardComponent,\n RegisterComponent,\n MustMatchDirective,\n LoaderComponent,\n ForgotPasswordComponent,\n HeaderComponent,\n EnquiryComponent,\n FooterComponent,\n GuestDetailsComponent,\n EditViewGuestComponent,\n AddGuestComponent,\n AddEmployeeComponent,\n EditViewEmployeeComponent,\n EmployeeDetailsComponent,\n ConfirmDialogComponent,\n ChartsModalComponent,\n EnquiryDetailsModalChartComponent,\n ProfileComponent,\n AddEnquiryComponent,\n EditViewEnquiryComponent,\n EnquiryModalComponent,\n EnquiryDetailsModalChartComponent,\n ProfileComponent,\n AddCustomerComponent,\n EditViewCustomerComponent,\n CustomerDetailsComponent,\n ConfigurationDetailsComponent,\n AddConfigurationComponent,\n EditViewConfigurationComponent,\n ActivityDetailsComponent,\n AddProductLineComponent,\n EditViewProductLineComponent,\n ProductLineDetailsComponent,\n AddProductFamilyComponent,\n EditViewProductFamilyComponent,\n ProductFamilyDetailsComponent,\n ProductSeriesDetailsComponent,\n AddProductSeriesComponent,\n EditViewProductSeriesComponent,\n EditViewProductModelComponent,\n AddProductModelComponent,\n ProductModelDetailsComponent,\n AddOptionsComponent,\n EditViewOptionsComponent,\n OptionsDetailsComponent,\n AddVariantLevel1Component,\n EditViewVariantLevel1Component,\n VariantLevel1DetailsComponent,\n VariantLevel2DetailsComponent,\n EditViewVariantLevel2Component,\n AddVariantLevel2Component,\n AddVariantLevel3Component,\n EditViewVariantLevel3Component,\n VariantLevel3DetailsComponent,\n VariantLevel4DetailsComponent,\n EditViewVariantLevel4Component,\n AddVariantLevel4Component,\n AvgDiscountMonthComponent,\n BPOrderIntakeComponent,\n QuatationOrderIntakeChartComponent,\n OpportunityQuotationChartComponent,\n OrderValuesChartComponent,\n OrderWinLostChartComponent,\n EnquiryDetailsChartComponent,\n BusinessPlanChartComponent,\n PendingEnquiryComponent,\n ProductMatrixComponent,\n FocusInvalidInputDirective,\n BusinessPlanDetailsComponent,\n BusinessPlanForSalesAndOrderComponent,\n EditBusinessPlanComponent,\n RegionwiseReportComponent,\n ProductwiseReportComponent,\n CustomerwiseReportComponent,\n SegmentwiseReportComponent,\n ProductseriesColumnchartComponent,\n ProductmodelColumnchartComponent,\n ProductvariantColumnchartComponent,\n OpportunityRfqChartComponent,\n OrderbacklogSupplychainChartComponent,\n StockInventoryDetailsComponent,\n AddStockInventoryComponent,\n ViewStockInventoryComponent,\n PassOnComponent,\n DynamicBGImageComponent,\n IndianCurrency,\n EditViewWorkFlowScreenAccessComponent,\n EnquiryGridReportComponent,\n PowerBIReportsComponent,\n AlertsDetailsComponent,\n EditViewAlertsComponent,\n ProductSeriesUploadLogComponent,\n TechnicalDiscardComponent,\n AddCustomerOpportunityComponent,\n CloseOppReasonComponent,\n PriceconfiguratorComponent,\n RfqComponent,\n AddLoginPageDynamicImageComponent,\n DetailsLoginPageDynamicImageComponent,\n SiteActivityComponent,\n AddLeadComponent,\n EditViewLeadComponent,\n LeadDetailsComponent,\n PriceconfiguratorComponent,\n ManagementApprovalComponent,\n OaGenerationComponent,\n QuotationComponent,\n CeoApprovalComponent,\n OrderConfirmationComponent,\n SoGenerationComponent,\n SupplyChainComponent,\n ConfirmInvoiceComponent,\n CloseLeadComponent,\n AddContractFrameAgreementComponent,\n EditViewContractFrameAgreementComponent,\n EditViewLoginPageDynamicImageComponent,\n MyActivityComponent,\n AddActivityComponent,\n EditActivityComponent,\n ListActivityComponent,\n ViewActivityComponent,\n CalenderViewComponent,\n ListActivityRowComponent,\n BulkEditActivityComponent,\n ActivityStatusByMonthComponent,\n ReportByActivityTypeMonthComponent,\n ReportByActivityTypeStatusComponent,\n EngagementReportsComponent,\n ReportByActivityStatusTypeComponent,\n ActivityListByEntityComponent,\n CustomerFrameAgreementDetailsComponent,\n ShowPendingActivityComponent,\n PlannedVsActualActivityComponent,\n CustomerEngagementDetailsComponent,\n CustomerEngagementComponent,\n QuotationPreviewComponent,\n SendBackCommentComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n FormsModule,\n HttpClientModule,\n BrowserAnimationsModule,\n MaterialModule,\n MatTabsModule,\n NgbModule,\n NgSelectModule,\n ToastrModule.forRoot({\n timeOut: 3000,\n positionClass: 'toast-top-center',\n preventDuplicates: true\n }),\n CommonModule,\n NgbModalModule,\n AmChartsModule,\n BrowserAnimationsModule,\n CalendarModule.forRoot({\n provide: DateAdapter,\n useFactory: adapterFactory,\n })\n ],\n providers: [Title, Location, RegisterService, ExportToExcelService, CommonService, NgbActiveModal, AppConfigService, { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, RoleGuard,\n { provide: NgbDateParserFormatter, useFactory: () => new CustomNgbDateParserFormatter('longDate') }],\n bootstrap: [AppComponent],\n entryComponents: [ConfirmDialogComponent]\n})\nexport class AppModule { }\n","import { HttpInterceptor, HttpRequest, HttpHandler, HttpUserEvent, HttpEvent, HttpErrorResponse } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { Observable, throwError } from 'rxjs';\nimport { map, catchError, retry } from 'rxjs/operators';\nimport { Location } from '@angular/common';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(private router: Router, private location: Location) { }\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n if (request.headers.get('No-Auth') == \"True\")\n return next.handle(request.clone());\n\n if (localStorage.getItem('userToken') != null) {\n const clonedreq = request.clone({\n headers: request.headers.set(\"Authorization\", \"Bearer \" + localStorage.getItem('userToken'))\n });\n return next.handle(request)\n .pipe(\n retry(1),\n catchError((error: HttpErrorResponse) => {\n let errorMessage = '';\n if (error.status === 401) {\n localStorage.removeItem('userToken');\n localStorage.clear();\n this.location.replaceState('Login');\n window.location.reload();\n }\n return throwError(errorMessage);\n })\n )\n }\n else {\n localStorage.removeItem('userToken');\n localStorage.clear();\n this.location.replaceState('Login');\n window.location.reload();\n }\n }\n}","import { ChangeDetectorRef, Injectable,NgZone} from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { resolve } from 'dns';\nimport { access } from 'fs';\nimport { Observable, of } from 'rxjs';\nimport { promise } from 'selenium-webdriver';\nimport { HeaderMenuModel, Menuelement } from '../Model/HeaderMenuModel';\nimport { AccessPermissionModel } from '../Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from '../Service/access-permission.service';\nimport { CommonService } from '../Service/common.service';\n\n\n@Injectable()\nexport class RoleGuard implements CanActivate {\n loginUser: any;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n menuaccessinfo:Menuelement[]=Array();\n map = new Map();\n mapedit=new Map();\n hasAccess:boolean=false;\n\n constructor(private router: Router,private NgZone:NgZone,private accessservice: AccessPermissionService) {\n }\n canActivate(route: ActivatedRouteSnapshot): Observable| Promise | boolean {\n const Element = route.data.Element;\n const Access = route.data.Access;\n const redirectTo=route.data.redirectTo;\n const userRole: any = localStorage.getItem(\"UserRole\");\n return new Promise((resolve) => { \n if(Element && Access)\n {\n \n if(this.accesspermissionobj.length==0)\n {\n this.accessservice.GetAll().subscribe((data:any)=>\n {\n this.accesspermissionobj=data;\n localStorage.setItem(\"accesspermissionobj\", JSON.stringify(this.accesspermissionobj));\n \n resolve(this.hasAccessPermission(route));\n });\n }\n else{\n resolve(this.hasAccessPermission(route));\n \n }\n \n }\n else\n {\n resolve(this.hasRequiredPermission(route));\n }\n });\n\n \n // if(Element!=null)\n // {\n // this.accessservice.GetAll().toPromise((data:any)=>{\n // this.accesspermissionobj=data;\n // const userRole: any = localStorage.getItem(\"UserRole\");\n // this.AccesspermissionForRole = this.accesspermissionobj.filter(x => x.Fk_RoleId == userRole && x.ElementKey==Element);\n // console.log(\"Rules\",this.AccesspermissionForRole)\n // resolve(this.hasAccessPermission(this.AccesspermissionForRole,Access,redirectTo));\n // });\n // }\n // else{\n // // return of(this.hasRequiredPermission(route));\n // return of(true);\n // }\n \n }\n \n protected hasAccessPermission(route: ActivatedRouteSnapshot): boolean {\n // If user’s permissions already retrieved from the API\n // const role: string = localStorage.getItem('role');\n const accessToken: any = localStorage.getItem(\"userToken\");\n const Element = route.data.Element;\n const Access = route.data.Access;\n const redirectTo=route.data.redirectTo;\n const userRole: any = localStorage.getItem(\"UserRole\");\n let AccesspermissionForRole = this.accesspermissionobj.filter(x => x.ElementKey==Element);\n // return true;\n if (!accessToken) {\n // this.router.navigate(['/login']);\n this.router.navigateByUrl('/');\n } else if (userRole != null && accessToken != null) {\n \n if(Access==\"IsVisible\")\n {\n const hasPermission = AccesspermissionForRole.filter(x=>x.Fk_RoleId == userRole)[0]?.IsVisible;\n \n if (hasPermission) {\n return true;\n \n } else {\n alert('You do not have rights to access this page.');\n //this.router.navigate([next.data.permissions.redirectTo])\n return false;\n }\n }else if(Access==\"IsEditable\")\n {\n const hasPermission = AccesspermissionForRole.filter(x=>x.Fk_RoleId == userRole)[0]?.IsEditable;\n \n if (hasPermission) {\n return true;\n \n } else {\n alert('You do not have rights to access this page.');\n //this.router.navigate([next.data.permissions.redirectTo])\n return false;\n }\n }\n else if(Access==\"CanList\")\n {\n const hasPermission = AccesspermissionForRole.filter(x=>x.Fk_RoleId == userRole)[0]?.CanList;\n \n if (hasPermission) {\n return true;\n \n } else {\n alert('You do not have rights to access this page.');\n //this.router.navigate([next.data.permissions.redirectTo])\n return false;\n }\n }\n else if(Access==\"CanCreate\")\n {\n const hasPermission = AccesspermissionForRole.filter(x=>x.Fk_RoleId == userRole)[0]?.CanCreate;\n \n if (hasPermission) {\n return true;\n \n } else {\n alert('You do not have rights to access this page.');\n //this.router.navigate([next.data.permissions.redirectTo])\n return false;\n }\n }\n \n \n \n } else {\n this.router.navigate([redirectTo]);\n return false;\n }\n }\n\n\n protected hasRequiredPermission(next: any): Promise | boolean {\n // If user’s permissions already retrieved from the API\n // const role: string = localStorage.getItem('role');\n const accessToken: any = localStorage.getItem(\"userToken\");\n const userRole: any = localStorage.getItem(\"UserRole\");\n if (!accessToken) {\n // this.router.navigate(['/login']);\n this.router.navigateByUrl('/');\n } else if (userRole != null && accessToken != null) {\n \n if (next.data.permissions.only.filter(x => x == userRole).length > 0) {\n return true;\n \n } else {\n alert('You do not have rights to access this page.');\n //this.router.navigate([next.data.permissions.redirectTo])\n return false;\n }\n } else {\n this.router.navigate([next.data.permissions.redirectTo]);\n return false;\n }\n }\n\n}","import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Component, OnInit, Inject } from '@angular/core';\nimport { CommonService } from '../Service/common.service';\n\n\nexport interface DialogData {\n title: string;\n message: string;\n}\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\n\nexport class ConfirmDialogComponent implements OnInit {\n\n dialogData: DialogData;\n title: string;\n message: string;\n\n constructor(\n public dialogRef: MatDialogRef,\n private commonService: CommonService,\n @Inject(MAT_DIALOG_DATA) public data: DialogData\n ) { }\n\n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n }\n\n onConfirm(): void {\n // Close the dialog, return true\n this.dialogRef.close(true);\n }\n\n onDismiss(): void {\n // Close the dialog, return false\n this.dialogRef.close(false);\n }\n}","\n\n

{{data.title}}

\n\n

{{data.message}}

\n\n\n
\n   \n \n
\n
","import { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { DatePipe } from '@angular/common';\n\nexport class CustomNgbDateParserFormatter extends NgbDateParserFormatter {\n\tdatePipe = new DatePipe('en-US');\n\tconstructor(\n\t\tprivate dateFormatString: string) {\n\t\tsuper();\n\t}\n\tformat(date: NgbDateStruct): string {\n\t\tif (date === null) {\n\t\t\treturn '';\n\t\t}\n\t\ttry {\n\t\t\treturn this.datePipe.transform(new Date(date.year, date.month - 1, date.day), 'dd-MMM-yyyy');\n\t\t} catch (e) {\n\t\t\treturn '';\n\t\t}\n\t}\n\tparse(value: string): NgbDateStruct {\n\t\tlet returnVal: NgbDateStruct;\n\t\tif (!value) {\n\t\t\treturnVal = null;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tlet dateParts = this.datePipe.transform(value, 'M-d-y').split('-');\n\t\t\t\treturnVal = { year: parseInt(dateParts[2]), month: parseInt(dateParts[0]), day: parseInt(dateParts[1]) };\n\t\t\t} catch (e) {\n\t\t\t\treturnVal = null;\n\t\t\t}\n\t\t}\n\t\treturn returnVal;\n\t}\n}","import { Directive, Input } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidationErrors, FormGroup } from '@angular/forms';\n\nimport { MustMatch } from '../validator/must-match.validator';\n\n@Directive({\n selector: '[mustMatch]',\n providers: [{ provide: NG_VALIDATORS, useExisting: MustMatchDirective, multi: true }]\n})\nexport class MustMatchDirective implements Validator {\n @Input('mustMatch') mustMatch: string[] = [];\n\n validate(formGroup: FormGroup): ValidationErrors {\n return MustMatch(this.mustMatch[0], this.mustMatch[1])(formGroup);\n }\n}","import { Directive, HostListener, ElementRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\n\n@Directive({\n selector: '[appFocusInvalidInput]'\n})\nexport class FocusInvalidInputDirective {\n constructor(private el: ElementRef) {}\n\n @HostListener('submit')\n onFormSubmit() {\n const invalidControl = this.el.nativeElement.querySelector('.ng-invalid');\n\n if (invalidControl) {\n invalidControl.focus();\n }\n }\n}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from '../Service/common.service';\n\n@Component({\n selector: 'app-dynamic-bgimage',\n templateUrl: './dynamic-bgimage.component.html',\n styleUrls: ['./dynamic-bgimage.component.scss']\n})\nexport class DynamicBGImageComponent implements OnInit {\n allowedFileType: string[] = ['image/jpeg', 'image/png', 'image/jpg'];\n tempfile: any;\n BackgroundImage:any[]=[];\n @Input() showLoader: boolean = false;\n constructor(private toastr: ToastrService, public cdRef: ChangeDetectorRef,private activeModal: NgbActiveModal, private commonService: CommonService) { }\n\n ngOnInit(): void {\n }\n\n getFileDetails(event) {\n \n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .jpeg, .jpg, .png\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n this.BackgroundImage = [];\n this.BackgroundImage.push(file);\n }\n }\n\n removeAttachments()\n {\n this.BackgroundImage = [];\n }\n\n OnSubmit() {\n const frmData = new FormData();\n if (this.BackgroundImage != null) {\n \n frmData.append(\"BGImages\", this.BackgroundImage[0]);\n \n this.commonService.PostData('BgImage', 'Add', frmData, null).subscribe((data: any) => {\n\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Background image added successfully!\");\n this.closePopup();\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to background image!\");\n this.closePopup();\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error(\"Failed to add stock inventory details!\");\n this.closePopup();\n this.showLoader = false;\n });\n }\n else{\n alert(\"Please upload background image\")\n }\n \n }\n closePopup() {\n this.activeModal.close('Close Click');\n }\n }\n\n","\n
\n \n\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n
\n

\n Change Background Image\n

\n
\n
\n
\n
\n \n
\n\n \n
\n
\n Upload\n \n\n
\n
\n Image is required\n
\n \n
\n\n \n [File Format: .jpeg, .jpg, .png] [Max 5 MB]\n 0\">\n
    \n \n
  • {{BackgroundImage != undefined ?\n BackgroundImage[0].name : \"\"}}  \n
  • \n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n   \n \n
\n
\n\n \n
\n
\n
\n","import { Component, OnInit, HostListener } from '@angular/core';\nimport { CommonService } from '../Service/common.service';\nimport { AppConfig } from 'src/assets/constants';\nimport { AppConfigService } from '../Service/app-config.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit {\n footerName : any;\n currYear: number = new Date().getFullYear();\n\n constructor(private commonService:CommonService, private appConfigService: AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n this.footerName = appConfig.footerName;\n this.commonService.RefreshHeaderFun();\n }\n\n @HostListener('window:scroll')\n checkScroll() {\n // Both window.pageYOffset and document.documentElement.scrollTop returns the same result in all the cases. window.pageYOffset is not supported below IE 9.\n\n const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n let btn = document.getElementById('gototop');\n if (scrollPosition > 300) {\n btn.classList.add('show');\n } else {\n btn.classList.remove('show');\n }\n }\n\n // TODO: Cross browsing\n gotoTop() {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n }\n}\n","
\n
\n \n
\n
","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { RegisterModel } from '../Model/RegisterModel';\nimport { CommonService } from '../Service/common.service';\n\n@Component({\n selector: 'app-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss']\n})\nexport class ForgotPasswordComponent implements OnInit {\n\n\n forgotPassword: RegisterModel = new RegisterModel();\n\n constructor(\n private commonService: CommonService,\n public dialogRef: MatDialogRef, public cdRef: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n this.commonService.RefreshHeaderFun();\n }\n\n ngAfterViewInit() {\n this.cdRef.detectChanges();\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n\n }\n\n}\n","

\n Forgot Password?\n

\n
\n \n Username\n \n\n \n Username is required\n \n
\n\n
\n
\n   \n \n
","import { Component, OnInit, Input, HostListener, ElementRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { EmployeeGuestModel } from '../Model/EmployeeGuestModel';\nimport { CommonService } from '../Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ProductSeries } from '../Model/ProductModel';\nimport { UserRoles } from \"../UserRoles\";\nimport { AppGlobals } from '../app.global';\nimport { DynamicBGImageComponent } from '../dynamic-bgimage/dynamic-bgimage.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AccessPermissionModel } from '../Model/WorkFlowScreenAccessModel';\nimport { HeaderMenuModel, Menuelement } from '../Model/HeaderMenuModel';\nimport { AppConfigService } from '../Service/app-config.service';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n AppRoles = UserRoles;\n profileObj: EmployeeGuestModel = new EmployeeGuestModel();\n SeriesSubmenu: ProductSeries[] = [];\n role: any;\n showOnlyProductMaster: boolean;\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n menuaccessinfo:Menuelement[]=Array();\n map = new Map();\n\n isProductLine: boolean = false;\n isCustomer: boolean = false;\n isGuest: boolean = false;\n isEmployee: boolean = false;\n isConfigure: boolean = false;\n isBusinessPlan: boolean = false;\n isStockInventory: boolean = false;\n isWorkFlowScreenAccess: boolean = false;\n isAlerts: boolean = false;\n isOpenProductLineMaster: boolean;\n closeResult: string;\n isPriceConfigurator: boolean = false;\n isSiteActivity: boolean = false;\n isLeadEditable: boolean=false;\n logoImageUrl : any;\n\n constructor(private router: Router, private location: Location, private commonService: CommonService,\n private toastr: ToastrService, private eRef: ElementRef,public dialog: MatDialog,private modalService: NgbModal, private appConfigService: AppConfigService) { }\n\n ngOnInit() {\n\n this.showLoader = true;\n this.logoImageUrl = this.appConfigService.getConfig().logoImageUrl;\n this.role = localStorage.getItem(\"UserRole\");\n this.commonService.RefreshHeaderFun();\n this.VisibleMasters();\n \n\n if (this.role == this.AppRoles.Admin || this.role == this.AppRoles.SalesDirector || this.role == this.AppRoles.CEO) {\n this.showOnlyProductMaster = false;\n }\n if (!(this.role == this.AppRoles.Admin || this.role == this.AppRoles.SalesDirector || this.role == this.AppRoles.CEO)) {\n this.showOnlyProductMaster = true;\n }\n document.getElementById(\"enquiryDiv\").style.display = \"none\";\n document.getElementById(\"manageMasterDiv\").style.display = \"none\";\n document.getElementById(\"reportDiv\").style.display = \"none\";\n\n if (this.commonService.subsVar == undefined) {\n this.commonService.subsVar = this.commonService.\n RefreshHeader.subscribe((name: string) => {\n this.getUserProfileInfo();\n this.GetProductSeriesWithLabels();\n \n });\n \n }\n }\n\n OpenProductLineMaster() {\n this.isOpenProductLineMaster = !this.isOpenProductLineMaster;\n }\n\n VisibleMasters() {\n this.showLoader = true;\n this.commonService.GetAllAccesspermission().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.AccesspermissionForRole = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.role);\n \n this.AccesspermissionForRole.forEach(ele=>\n {\n var obj = new HeaderMenuModel();\n obj.ElementKey=ele.ElementKey;\n obj.ElementValue=ele.CanList;\n this.menuaccessinfo.push(obj);\n \n });\n this.showLoader = true;\n this.menuaccessinfo.forEach(element => {\n this.map.set(element.ElementKey,element.ElementValue);\n \n });\n });\n this.showLoader = false;\n // this.isProductLine = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isCustomer = AppGlobals.CustomerMastersEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isEmployee = AppGlobals.EmployeeMastersEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isGuest = AppGlobals.GuestMastersEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isConfigure = AppGlobals.ConfigureMastersEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isBusinessPlan = AppGlobals.BusinessPlanEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isStockInventory = AppGlobals.StockInventoryEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isWorkFlowScreenAccess = AppGlobals.WorkFlowScreenAccessEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isAlerts = AppGlobals.AlertsAccessEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isPriceConfigurator = AppGlobals.PriceConfiguratorEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n // this.isSiteActivity = AppGlobals.SiteActivityEditableAccessArray.filter(x => x.role == this.role)[0]?.isVisible;\n }\n\n onLogoClick() {\n this.router.navigateByUrl('/Dashboard');\n }\n\n getUserProfileInfo() {\n this.showLoader = true;\n\n this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n this.profileObj = data;\n localStorage.setItem(\"RegionID\", data.RegionId);\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n \n\n GetProductSeriesWithLabels() {\n this.showLoader = true;\n this.commonService.GetData('ProductSeries', 'GetAll', null).subscribe((data: any) => {\n\n this.SeriesSubmenu = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n }\n\n logout() {\n this.showLoader = true;\n this.commonService.PostData('Account', 'Logout', null, null).subscribe((data: any) => {\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Logout successfully!\");\n localStorage.removeItem('userToken');\n localStorage.clear();\n this.location.replaceState('Login');\n this.showLoader = false;\n window.location.reload();\n }\n else {\n this.toastr.error(\"Failed to logout!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error(\"Failed to logout!!\");\n this.showLoader = false;\n });\n }\n\n \n\n myFunction() {\n let x = document.getElementById(\"m_header_menu\");\n if (x.style.display === \"block\") {\n x.style.display = \"none\";\n } else {\n x.style.display = \"block\";\n }\n }\n\n myFunctions() {\n let x = document.getElementById(\"m_header_topbar\");\n if (x.style.display === \"table\") {\n x.style.display = \"none\";\n } else {\n x.style.display = \"table\";\n }\n }\n\n\n openDialog() {\n \n const modalRef = this.modalService.open(DynamicBGImageComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n \n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n }\n });\n }\n\n \n getValue(key: string): boolean {\n return this.map.get(key);\n }\n\n AccessPermission(key: string): boolean {\n return this.map.get(key);\n }\n}\n","\n\n
\n
\n
\n
\n\n \n
\n
\n \n \n \n \n\n
\n \n \"\"\n
\n\n
\n\n \n \n \n \n\n \n\n \n \n \n \n\n \n
\n\n
\n
\n\n \n
\n
\n\n
\n \n \n\n \n\n\n \n
\n
\n \n\n
  • \n \n Manage Masters\n \n \n\n \n \n
    \n \n
    \n \n
    \n
    \n
  • \n\n
  • \n \n Reports\n \n \n\n \n
    \n \n
    \n
      \n\n
    • \n \n
    • \n\n
    \n
    \n
    \n
  • \n\n \n\n\n
  • \n \n Customer Engagement\n \n \n \n
    \n \n
    \n \n
    \n
    \n
  • \n\n
  • \n \n \n
  • \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n \n \n\n
    \n","import { Component, OnInit, Input, ElementRef, SimpleChange, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonService } from '../Service/common.service';\n\n@Component({\n selector: 'loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit, OnChanges {\n\n @Input()\n showLoader: boolean;\n\n constructor(private elementRef: ElementRef,private commonService:CommonService) {\n \n }\n\n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n let change = changes.currentValue;\n\n if (this.showLoader == true) {\n this.elementRef.nativeElement.getElementsByClassName('overlays')[0].style.display = \"block\";\n }\n else {\n this.elementRef.nativeElement.getElementsByClassName('overlays')[0].style.display = \"none\";\n }\n }\n\n\n}\n","
    \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n \n
    \n\n
    \n
    ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MAT_STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport { MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatExpansionModule} from '@angular/material/expansion';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatInputModule,\n MatRadioModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatSelectModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatCardModule,\n MatDividerModule,\n MatTableModule,\n MatSortModule,\n MatPaginatorModule,\n MatIconModule,\n MatSlideToggleModule,\n MatStepperModule,\n MatAutocompleteModule,\n MatCheckboxModule,\n MatExpansionModule,\n ],\n exports: [\n MatInputModule,\n MatRadioModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatSelectModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatCardModule,\n MatDividerModule,\n MatTableModule,\n MatSortModule,\n MatPaginatorModule,\n MatIconModule,\n MatSlideToggleModule,\n MatStepperModule,\n MatAutocompleteModule,\n MatCheckboxModule,\n MatExpansionModule,\n ],\n providers: [{\n provide: MAT_STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\n }, MatDatepickerModule]\n})\nexport class MaterialModule { }\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\nimport { ChangePasswordModel } from '../Model/ChangePasswordModel';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from '../Service/common.service';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { UserRoles } from '../UserRoles';\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { DatePipe } from '@angular/common';\nimport { OutofOfficeActivityModel } from '../Model/OutOfOfficeActivityModel';\nimport { EmployeeGuestModel } from '../Model/EmployeeGuestModel';\nimport { AppConfigService } from '../Service/app-config.service';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss']\n})\nexport class ProfileComponent implements OnInit {\n\n outOfOfficeObj : OutofOfficeActivityModel = new OutofOfficeActivityModel();\n profileObj: EmployeeGuestModel = new EmployeeGuestModel();\n changePasswordObj: ChangePasswordModel = new ChangePasswordModel();\n //passwordPattern: any = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,30}$/;\n passwordPattern: any = '(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,30}';\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n OldPasshide: boolean = true;\n NewPasshide: boolean = true;\n ConfirmPasshide: boolean = true;\n isOutOfOffice : boolean = false;\n @Input()\n showLoader: boolean = false;\n charCode: number;\n Role: any;\n UserRoles: any;\n Userid: string;\n EnquiryngbDateFromFiter: NgbDate | null;\n EnquiryngbDateToFiter: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n minDate: NgbDateStruct;\n maxDate: NgbDateStruct;\n datePipe = new DatePipe('en-US');\n mailIdFormat : any;\n \n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private router: Router, private route: ActivatedRoute,public formatter: NgbDateParserFormatter,private cd: ChangeDetectorRef, private calendar: NgbCalendar,\n private appConfigService: AppConfigService) {\n this.UserRoles = UserRoles;\n const current = new Date();\n this.minDate = { year: current.getFullYear(), month: current.getMonth(), day: current.getDate() };\n this.maxDate = { year: current.getFullYear()+1, month: current.getMonth() + 5, day: current.getDate() }\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n this.mailIdFormat = appConfig.mailIdFormat;\n this.Role = localStorage.getItem(\"UserRole\");\n this.Userid = localStorage.getItem(\"UserID\");\n this.commonService.RefreshHeaderFun();\n this.getUserProfileInfo();\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which: evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n getUserProfileInfo() {\n this.showLoader = true;\n this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n this.profileObj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n updateProfile() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update your profile?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n\n this.commonService.PostData('Account', 'UpdateProfile', this.profileObj, null).subscribe((data: any) => {\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Profile updated successfully!\");\n this.router.navigate(['/Dashboard']);\n this.showLoader = false;\n }\n else if (data.ResponseCode == 3) {\n this.toastr.warning('Contact number already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update profile!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error(\"Failed to update profile!\");\n this.showLoader = false;\n });\n\n }\n });\n\n }\n\n changePassword() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to change your password?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n this.commonService.PostData('Account', 'ChangePassword', this.changePasswordObj, null).subscribe((data: any) => {\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Password updated successfully!\");\n this.router.navigate(['/Dashboard']);\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update password! Please enter correct old password!\");\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error(\"Failed to update password!\");\n this.showLoader = false;\n });\n\n }\n });\n\n }\n\n OutofOffice(value: any) {\n // alert(value);\n if(value == true)\n {\n this.isOutOfOffice = true;\n }\n else{\n this.isOutOfOffice = false;\n }\n }\n OnToDateFilterChange() {\n\n // this.GetAllEnquiry();\n }\n\n onDateSelection(date: NgbDate) {\n if (!this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter) {\n this.EnquiryngbDateFromFiter = date;\n } else if (this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && date && date.after(this.EnquiryngbDateFromFiter)) {\n this.EnquiryngbDateToFiter = date;\n } else {\n this.EnquiryngbDateToFiter = null;\n this.EnquiryngbDateFromFiter = date;\n }\n }\n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.EnquiryngbDateToFiter = this.EnquiryngbDateFromFiter;\n this.cd.detectChanges();\n\n }\n //this.GetAllEnquiry();\n\n }\n ConvertNgbDateToDate(ngbdate: any) {\n if (ngbdate != null) {\n return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n \n isHovered(date: NgbDate) {\n return this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && this.hoveredDate && date.after(this.EnquiryngbDateFromFiter) && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n return this.EnquiryngbDateToFiter && date.after(this.EnquiryngbDateFromFiter) && date.before(this.EnquiryngbDateToFiter);\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.EnquiryngbDateFromFiter) || (this.EnquiryngbDateToFiter && date.equals(this.EnquiryngbDateToFiter)) || this.isInside(date) || this.isHovered(date);\n }\n\n updateOutOfOfficeSetting(){\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update your out of office setting?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n\n // this.outOfOfficeObj.Role = this.Role;\n this.outOfOfficeObj.Fk_UserId = this.Userid;\n if (this.EnquiryngbDateFromFiter != undefined) {\n this.outOfOfficeObj.StartDate = new Date(this.convertDate(new NgbDate(this.EnquiryngbDateFromFiter.year, this.EnquiryngbDateFromFiter.month, this.EnquiryngbDateFromFiter.day))).toDateString();\n }\n if (this.EnquiryngbDateToFiter != undefined) {\n this.outOfOfficeObj.EndDate = new Date(this.convertDate(new NgbDate(this.EnquiryngbDateToFiter.year, this.EnquiryngbDateToFiter.month, this.EnquiryngbDateToFiter.day))).toDateString();\n }\n\n this.commonService.PostData('Account', 'SetOutOfOffice', this.outOfOfficeObj, null).subscribe((data: any) => {\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Out of office setting updated successfully!\");\n this.router.navigate(['/Dashboard']);\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update out of office setting!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error(\"Failed to update out of office setting!\");\n this.showLoader = false;\n });\n\n }\n });\n\n }\n \n}\n","\n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Profile Settings\n

    \n
    \n
    \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n \n
    \n \n
    \n \n
    \n
    Username is required
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Name is required
    \n \n Name should be 3-55 characters
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Contact number is required
    \n
    \n Please enter valid contact number
    \n
    \n Contact number should be 10-15 digits
    \n\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n
      \n
    • {{reg.Name}}
    • \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n\n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Change Password\n

    \n
    \n
    \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n \n
    \n Instructions:
    \n
    \n
    \n
      \n
    1. New password length must be between 6 to 30 characters.
    2. \n
    3. New password must contains at least one alphanumeric characters.
    4. \n
    5. New password must contains at least one uppercase and lowercase\n characters.\n
    6. \n
    7. New password must contains at least one special characters. (Ex. @, $,\n #, !)\n
    8. \n
    \n
    \n\n
    \n\n \n
    \n \n \n {{OldPasshide ? 'visibility_off':\n 'visibility'}}\n \n\n
    \n
    \n Old password is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n {{NewPasshide ? 'visibility_off':\n 'visibility'}}\n \n
    \n
    \n New password is required
    \n
    \n Password must contains minimum 6 alphanumeric with at least one\n uppercase, one lowercase and one special characters. (Ex. Pass@123)\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n {{ConfirmPasshide ? 'visibility_off':\n 'visibility'}}\n \n
    \n
    \n Confirm password is required
    \n
    \n Confirm password must be same as password
    \n
    \n Password must contains minimum 6 alphanumeric with at least one\n uppercase, one lowercase and one special characters. (Ex. Pass@123)\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Out Of Office Setting\n

    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n {{ date.day }}\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n","import { Component, OnInit } from '@angular/core';\nimport { RegisterModel } from '../Model/RegisterModel';\nimport { CommonService } from '../Service/common.service';\nimport { RegisterService } from '../Service/register.service';\n\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.scss']\n})\nexport class RegisterComponent implements OnInit {\n\n register: RegisterModel = new RegisterModel();\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n\n constructor(private registerService: RegisterService,private commonService:CommonService) { }\n\n ngOnInit(): void {\n this.commonService.RefreshHeaderFun();\n }\n\n onSubmit() {\n let data1 = {\n FirstName: this.register.FirstName,\n LastName: this.register.LastName,\n Email: this.register.Email,\n Password: this.register.Password\n }\n\n\n // this.registerService.postRegister(this.register).subscribe(data => {\n // let result = data;\n // alert(\"Registered Successfully!\");\n // });\n\n }\n}\n","\n
    \n
    Register
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    First Name is required
    \n
    \n
    \n
    \n \n \n
    \n
    Last Name is required
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Email is required
    \n
    Email must be a valid email address
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    Password is required
    \n
    Password must be at least 6 characters
    \n
    \n
    \n
    \n \n \n
    \n
    Confirm Password is required
    \n
    Passwords must match
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { reportmodel } from '../dashboard/enquiry-details-chart/enquiry-details-chart.component';\nimport { AmChartsService } from '@amcharts/amcharts3-angular';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-charts-modal',\n templateUrl: './charts-modal.component.html',\n styleUrls: ['./charts-modal.component.scss']\n})\nexport class ChartsModalComponent implements OnInit {\n @Input() region;\n constructor(private activeModal: NgbActiveModal, private amcharts: AmChartsService\n , private commonService: CommonService) { }\n dataList: any[] = [];\n reportdata: reportmodel[] = Array();\n ngOnInit(): void {\n this.commonService.RefreshHeaderFun();\n this.enquiryDetailsModal();\n }\n enquiryDetailsModal1() {\n\n let chart = am4core.create(\"enquiryDetailsChartModal\", am4charts.SlicedChart);\n //chart.hiddenState.properties.opacity = 0; // this makes initial fade in effect\n chart.responsive.enabled = true;\n // Export\n chart.exporting.menu = new am4core.ExportMenu();\n\n chart.data = [{\n \"category\": \"Submitted Enquiry\",\n \"value\": this.region.SubmittedEnquiry\n },\n {\n \"category\": \"RFQ\",\n \"value\": this.region.RFQ\n },\n {\n \"category\": \"Proposal Delivered\",\n \"value\": this.region.ProposalDelivered\n },\n {\n \"category\": \"Order Confirmation\",\n \"value\": this.region.OrderConfirmation\n },\n {\n \"category\": \"Order Delivered\",\n \"value\": this.region.OrderDelivered\n }];\n\n let series = chart.series.push(new am4charts.FunnelSeries());\n series.colors.step = 2;\n series.dataFields.value = \"value\";\n series.dataFields.category = \"category\";\n series.alignLabels = true;\n\n series.labelsContainer.paddingLeft = 15;\n series.labelsContainer.width = 200;\n\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\\nPercent: {value.percent.formatNumber('#.0')}%\";\n\n }\n\n enquiryDetailsModal() {\n var chart = this.amcharts.makeChart(\"enquiryDetailsChartModal\", {\n \"type\": \"funnel\",\n \"theme\": \"none\",\n \"dataProvider\": [{\n \"category\": \"Lead/Enquiry\",\n \"actualvalue\": this.region.SubmittedEnquiry,\n \"showvalue\": 50\n },\n {\n \"category\": \"RFQ\",\n \"actualvalue\": this.region.RFQ,\n \"showvalue\": 50\n },\n {\n \"category\": \"Quotations\",\n \"actualvalue\": this.region.ProposalDelivered,\n \"showvalue\": 50\n },\n {\n \"category\": \"Order Booked\",\n \"actualvalue\": this.region.OrderConfirmation,\n \"showvalue\": 50\n },\n {\n \"category\": \"Sales\",\n \"actualvalue\": this.region.OrderDelivered,\n \"showvalue\": 50\n }],\n \"creditsPosition\": \"bottom-left\",\n \"titleField\": \"category\",\n \"marginRight\": 160,\n \"hideLabelsPercent\": 0,\n \"precision\": 2,\n \"marginLeft\": 15,\n \"labelPosition\": \"center\",\n \"funnelAlpha\": 0.9,\n \"valueField\": \"showvalue\",\n \"startX\": 0,\n \"neckWidth\": \"40%\",\n \"startAlpha\": 0,\n \"outlineThickness\": 1,\n \"neckHeight\": \"30%\",\n \"balloonText\": \"[[category]]: \" + this.region.Label + \" [[actualvalue]]\",\n \"labelText\": \"[[category]]: \" + this.region.Label + \" [[actualvalue]]\",\n \"responsive\": {\n \"enabled\": true\n },\n \"export\": {\n \"enabled\": true,\n \"pageOrigin\": false,\n \"fileName\": \"SalesFunnel\",\n \"exportTitles\": true,\n \"exportFields\": [\n \"category\",\n \"actualvalue\"\n ],\n \"columnNames\": {\n \"category\": \"Category\",\n \"actualvalue\": \"Value(\" + this.region.Label + \")\"\n },\n \"menu\": [\n {\n \"label\": \"\",\n \"menu\": [\n {\n \"format\": \"png\",\n \"label\": \"PNG\"\n },\n {\n \"format\": \"jpg\",\n \"label\": \"JPG\"\n },\n // {\n // \"format\": \"svg\",\n // \"label\": \"SVG\"\n // },\n {\n \"format\": \"pdf\",\n \"label\": \"PDF\"\n },\n { \"format\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }\n ]\n },\n });\n\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n}\n\nexport class DataModel {\n category: any;\n value: any;\n}\n","
    \n
    \n
    Enquiry Details - {{region.Region}}
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    ","import { Component, OnInit } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\n\nam4core.useTheme(am4themes_animated);\n\n@Component({\n selector: 'app-enquiry-details-modal-chart',\n templateUrl: './enquiry-details-modal-chart.component.html',\n styleUrls: ['./enquiry-details-modal-chart.component.scss']\n})\nexport class EnquiryDetailsModalChartComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n //this.enquiryDetailsModal();\n }\n\n \n}\n","
    \n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ActivityLinkageEntityType, ActivityOutcomeByType, ActivityParticipant, ActivityPurposeByType, ActivityStatusByType, ActivityType, EntityRecord, User } from 'src/app/Model/ActivityModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-add-activity',\n templateUrl: './add-activity.component.html',\n styleUrls: ['./add-activity.component.scss']\n})\n\n\nexport class AddActivityComponent implements OnInit {\n\n\n constructor(private cd: ChangeDetectorRef, private location: Location, private router: Router, private activityService: ActivityService, private toastr: ToastrService, private route: ActivatedRoute,\n private activeModal: NgbActiveModal) { }\n\n\n activityTypeMaster: ActivityType[] = [];\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n activityOutcomeByTypeMaster: ActivityOutcomeByType[] = [];\n activityPurposeByTypeMaster: ActivityPurposeByType[] = [];\n allEntityTypesMaster: ActivityLinkageEntityType[] = [];\n allCustomers:EntityRecord[] = [];\n allLeads:EntityRecord[] = [];\n allEnquiries:EntityRecord[] = [];\n selectedParticipants = [];\n allUserMaster: User[] = [];\n frmData: any = {};\n ownerIdLocalStorage: any\n entityTypeFilterArray = [];\n subtypeArray1 = []\n showLoader: boolean = false;\n entityId: number;\n custId: number;\n entityType: any;\n isEnquiryShow: boolean = false;\n selectedOptions: any[] = [];\n @Input() ActivityEntity\n inPopUpMode: boolean;\n selectedEnquries = [];\n previousSelectedEnquiries = [];\n selectedCustomers = [];\n selectedCustomersOrLeads = [];\n selectedEntityRecords = [];\n selectedLeads = [];\n ENTITY_TYPE_CUSTOMER = \"1\";\n ENTITY_TYPE_LEAD = \"2\";\n ENTITY_TYPE_ENQUIRY = \"3\";\n relatedEntityRecords: EntityRecord[] = [];\n\n\n\n\n ngOnInit(): void {\n\n this.inPopUpMode = this.ActivityEntity?.inPopUpMode ? this.ActivityEntity?.inPopUpMode : false;\n localStorage.removeItem('ViewType-A');\n this.showLoader = true;\n this.ownerIdLocalStorage = localStorage.getItem('UserID')\n // **********Initial render linckages********\n this.getActivityFromMaster();\n this.getAllCustomers();\n this.getAllLeads();\n this.getAllParticipantFromMaster();\n // ****** LoggedInUser as default Participant****\n this.frmData.ActivityOwnerId = this.ownerIdLocalStorage;\n if (this.frmData.ListActivityParticipants == undefined) {\n this.frmData.ListActivityParticipants = [];\n this.frmData.ListActivityParticipants.push(this.frmData.ActivityOwnerId);\n }\n // ************ if Route comes from customer-lead-Enquiry*********\n this.entityType = this.ActivityEntity?.entityType ? this.ActivityEntity?.entityType : this.route.snapshot.queryParams['EntityType'];\n\n if(this.entityType === 'Lead') {\n this.entityId = this.route.snapshot.queryParams['LeadId'];\n this.selectedLeads.push(Number(this.entityId));\n }\n if(this.entityType === 'Customer') {\n this.entityId = this.route.snapshot.queryParams['CustId'];\n this.selectedCustomers.push(Number(this.entityId));\n this.getEnquiriessByCustomers();\n }\n if(this.entityType === 'Enquiry') {\n this.entityId = this.ActivityEntity?.enqId ? this.ActivityEntity?.enqId : this.route.snapshot.queryParams['EnqId'];\n this.custId = this.ActivityEntity?.custId ? this.ActivityEntity?.custId : this.route.snapshot.queryParams['CustId'];\n\n if(this.custId && !isNaN(this.custId) && this.entityId && !isNaN(this.entityId)){\n this.selectedCustomers.push(Number(this.custId));\n this.selectedEnquries.push(Number(this.entityId));\n this.getEnquiriessByCustomers();\n }\n\n }\n if (this.entityType !== undefined && this.entityId !== undefined) {\n this.isLinkagePresent();\n }\n this.showLoader = false;\n }\n\n\n getAllParticipantFromMaster() {\n this.showLoader = true;\n this.activityService.getallUserMaster().subscribe((data: User[]) => {\n this.allUserMaster = data;\n this.showLoader = false;\n })\n }\n\n getActivityFromMaster() {\n this.showLoader = true;\n this.activityService.getActivityTypeMaster().subscribe((data) => {\n this.activityTypeMaster = data;\n this.showLoader = false;\n });\n }\n\n\n isLinkagePresent() {\n this.activityService.getallEntityTypesMaster().subscribe((data: ActivityLinkageEntityType[]) => {\n this.frmData.ListActivityLinkage = [];\n this.frmData.ListActivityLinkage.push({ EntityTypeId: null, EntityId: this.entityId });\n this.allEntityTypesMaster = data;\n let obj = this.allEntityTypesMaster.find((arg) => { return arg.EntityType == this.entityType })\n this.frmData.ListActivityLinkage[0].EntityTypeId = obj.Id;\n });\n }\n\n onOwnerChange(frmData, index) {\n if (frmData.ListActivityParticipants != undefined) {\n if (frmData.ListActivityParticipants.length > 1) {\n frmData.ListActivityParticipants[0] = this.frmData.ActivityOwnerId;\n }\n else {\n frmData.ListActivityParticipants = [];\n frmData.ListActivityParticipants.push(this.frmData.ActivityOwnerId);\n }\n }\n else {\n frmData.ListActivityParticipants = [];\n frmData.ListActivityParticipants.push(this.frmData.ActivityOwnerId);\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === ' ' && event.target['value'].trim() === '') {\n event.preventDefault();\n }\n }\n\n onActivityTypeChange(ActivityTypeId: number,) {\n\n // const obj = this.activityTypeMaster.find(obj => obj.ActivityTypeId == ActivityTypeId);\n\n // if (obj.ActivityTypeDesc == 'Meeting') {\n // this.subtypeArray1 = ['Seminar', 'Webinar']\n // this.frmData.ActivitySubType = \"Webinar\"\n // }\n // else {\n // this.subtypeArray1 = []\n // delete this.frmData['ActivitySubType'];\n // }\n delete this.frmData['ActivityPurposeId'];\n delete this.frmData['PurposeDesc'];\n\n this.activityService.getActivityPurposeMaster(ActivityTypeId).subscribe((data: ActivityPurposeByType[]) => {\n this.activityPurposeByTypeMaster = data;\n\n });\n\n this.activityService.getActivityStatusMaster(ActivityTypeId).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n });\n\n this.activityService.getActivityOutcomeMaster(ActivityTypeId).subscribe((data: ActivityOutcomeByType[]) => {\n this.activityOutcomeByTypeMaster = data;\n })\n }\n\n goBack() {\n this.location.back();\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n onSubmit(frmData: any, addActivityForm: any) {\n\n this.showLoader = true;\n if (!addActivityForm.valid) {\n this.showLoader = false;\n return\n }\n// debugger\n // frmData.ListActivityLinkage = frmData.ListActivityLinkage?.flatMap(obj => obj.EntityId?.map(id => {\n // if (obj.EntityTypeId && id) {\n // return ({\n // EntityTypeId: obj.EntityTypeId,\n // EntityId: id,\n // })\n // }\n // }));\n\n frmData.allEnquiries = frmData.allEnquiries?.flatMap(obj => obj.EntityId?.map(id => {\n if (obj.EntityTypeId && id) {\n return ({\n EntityTypeId: obj.EntityTypeId,\n EntityId: id ,\n })\n }\n }));\n\n frmData.allLeads = frmData.allLeads?.flatMap(obj => obj.EntityId?.map(id => {\n if (obj.EntityTypeId && id) {\n return ({\n EntityTypeId: obj.EntityTypeId,\n EntityId: id ,\n })\n }\n }));\n frmData.allCustomers = frmData.allCustomers?.flatMap(obj => obj.EntityId?.map(id => {\n if (obj.EntityTypeId && id) {\n return ({\n EntityTypeId: obj.EntityTypeId,\n EntityId: id ,\n })\n }\n }));\n\n\n // ***** Participant Conversion*****\n this.frmData.ListActivityParticipants = this.frmData.ListActivityParticipants.map(id => ({ ActivityParticipant: id }));\n let selectedCustomersAsObjCol = this.convertSelectedEntityArrayToEntityObjCollection(this.selectedCustomers, this.ENTITY_TYPE_CUSTOMER);\n let selectedLeadsAsObjCol = this.convertSelectedEntityArrayToEntityObjCollection(this.selectedLeads, this.ENTITY_TYPE_LEAD);\n let selectedEnquriesAsObjCol = this.convertSelectedEntityArrayToEntityObjCollection(this.selectedEnquries, this.ENTITY_TYPE_ENQUIRY);\n\n //Clear existing linkage object\n this.frmData.ListActivityLinkage = [];\n\n if (selectedCustomersAsObjCol) {\n this.frmData.ListActivityLinkage = this.frmData.ListActivityLinkage.concat(selectedCustomersAsObjCol);\n }\n if (selectedLeadsAsObjCol) {\n this.frmData.ListActivityLinkage = this.frmData.ListActivityLinkage.concat(selectedLeadsAsObjCol);\n }\n if (selectedEnquriesAsObjCol) {\n this.frmData.ListActivityLinkage = this.frmData.ListActivityLinkage.concat(selectedEnquriesAsObjCol);\n }\n\n\n this.showLoader = true;\n\n\n this.activityService.addActivity(frmData).subscribe((res) => {\n this.showLoader = false;\n // this.toastr.success(res.ResponseMessage);\n // if (this.inPopUpMode) this.activeModal.close();\n // if (!this.inPopUpMode) this.goBack();\n // });\n if (res.ResponseCode == 1) {\n this.toastr.success('Activity added successfully!');\n }\n else {\n this.toastr.error('Failed to add activity');\n }\n if (this.inPopUpMode) this.activeModal.close();\n if (!this.inPopUpMode) this.goBack();\n\n }, error => {\n this.toastr.error('Failed to add activity!');\n if (this.inPopUpMode) this.activeModal.close();\n if (!this.inPopUpMode) this.goBack();\n });\n}\n\n\n\n onChangeInCustomerSelection() {\n this.allEnquiries = [];\n\n //this.selectedEnquries = [];\n this.getEnquiriessByCustomers();\n }\n\n\n getEnquiriessByCustomers() {\n\n if (Array.isArray(this.selectedCustomers) && this.selectedCustomers.length > 0) {\n\n let tracker = this.activityService.getrelatedEntityRecords(this.ENTITY_TYPE_ENQUIRY, this.selectedCustomers);\n\n tracker.subscribe((data: EntityRecord[]) => {\n let linkagesByEntityType = this.groupArrayByKey(data, \"EntityTypeId\");\n this.allEnquiries = linkagesByEntityType[this.ENTITY_TYPE_ENQUIRY] as EntityRecord[];\n this.relatedEntityRecords = this.allEnquiries;\n this.previousSelectedEnquiries = [...this.selectedEnquries];\n this.selectedEnquries = [];\n for(let enquiry of this.allEnquiries) {\n for(let prevSelEnquiryId of this.previousSelectedEnquiries){\n\n if(enquiry.EntityId.toString() == prevSelEnquiryId) {\n this.selectedEnquries.push(enquiry.EntityId)\n // console.log(this.selectedEnquries);\n }\n\n }\n }\n\n //this.previousSelectedEnquiries = [];\n });\n\n return tracker;\n\n } else {\n this.selectedEnquries = [];\n }\n }\n\n\n getAllCustomers() {\n this.showLoader = true;\n let tracker = this.activityService.getrelatedEntityRecords(this.ENTITY_TYPE_CUSTOMER, null);\n tracker.subscribe((data: EntityRecord[]) => {\n let linkagesByEntityType = this.groupArrayByKey(data, \"EntityTypeId\");\n this.allCustomers = linkagesByEntityType[this.ENTITY_TYPE_CUSTOMER] as EntityRecord[];\n this.relatedEntityRecords = this.allCustomers;\n\n });\n this.showLoader = false;\n return tracker;\n\n }\n\n getAllLeads() {\n this.showLoader = true;\n let tracker = this.activityService.getrelatedEntityRecords(this.ENTITY_TYPE_LEAD, null);\n\n tracker.subscribe((data: EntityRecord[]) => {\n let linkagesByEntityType = this.groupArrayByKey(data, \"EntityTypeId\");\n this.allLeads = linkagesByEntityType[this.ENTITY_TYPE_LEAD] as EntityRecord[];\n this.relatedEntityRecords = this.allLeads;\n\n });\n this.showLoader = false;\n return tracker;\n }\n\n\n groupArrayByKey(array: any[], key: string): [] | null {\n return array.reduce((result, currentValue) => {\n (result[currentValue[key]] = result[currentValue[key]] || []).push(\n currentValue\n );\n return result;\n }, {});\n }\n\n\n convertSelectedEntityArrayToEntityObjCollection(entities: any[], entityTypeId: any) {\n\n let response: any[] = [];\n\n if (Array.isArray(entities) && entities.length > 0) {\n\n entities.forEach(entityId => {\n response.push({ \"EntityTypeId\": entityTypeId, \"EntityId\": entityId });\n });\n return response;\n\n } else {\n return null;\n }\n\n }\n\n\n}\n\n\n\n\n\n\n\n\n\n","\n\n
    \n
    \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Activity\n

    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n \n
    \n \n \n
    Select activity
    \n
    \n
    \n
    \n \n \n\n
    \n\n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n \n
    Subject is required
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n\n
    \n\n \n
    \n \n
    \n
    \n\n
    \n
    \n\n
    \n\n \n\n
    \n
    \n \n
    \n \n
    Due Date is required.
    \n
    \n\n\n
    \n
    \n
    \n\n
    \n \n
    \n \n \n
    Description is required.
    \n
    \n\n\n
    \n
    \n\n\n
    \n\n \n\n
    \n\n\n
    \n \n\n \n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n \n
    \n\n\n\n
    \n \n\n \n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n\n \n\n\n
    \n \n
    \n\n\n
    \n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n \n
    \n\n \n \n \n \n \n\n \n
    \n
    \n\n\n\n\n
    \n   \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n \n\n \n\n\n\n\n\n\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { Activity, ActivityLinkageEntityType, ActivityOutcome, ActivityPurpose, ActivityStatus, ActivityStatusByType, ActivityType, EntityRecord, User } from 'src/app/Model/ActivityModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { ListActivityRowComponent } from '../list-activity-row/list-activity-row.component';\nimport { NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { NgbCalendar, NgbDateParserFormatter, } from '@ng-bootstrap/ng-bootstrap';\n\n\n\n@Component({\n selector: 'app-bulk-edit-activity',\n templateUrl: './bulk-edit-activity.component.html',\n styleUrls: ['./bulk-edit-activity.component.scss']\n})\nexport class BulkEditActivityComponent implements OnInit {\n\n\n isbulkEdit: boolean;\n pageNumber: number = 1;\n pageIndex: number = this.pageNumber - 1;\n pageSize: number = 5;\n length: number;\n activities: Activity[];\n filteredActivities: Activity[];\n activityStatusFilter: number;\n priorityFilter: string;\n activityTypeFilter: number;\n activityTypes: ActivityType[];\n activityStatuses: ActivityStatus[];\n activityPurposes: ActivityPurpose[];\n activityOutcomes: ActivityOutcome[];\n filterActivityForm: any = {};\n activityTypeMaster: ActivityType[] = [];\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n allEntityTypesMaster: ActivityLinkageEntityType[] = [];\n entityTypeFilterArray: any = [];\n allUserMaster: User[] = [];\n constructor(private calendar: NgbCalendar, public formatter: NgbDateParserFormatter, private activityService: ActivityService, private cd: ChangeDetectorRef) { }\n\n\n ngOnInit(): void {\n\n this.GetActivityTypeMaster();\n this.GetEntityTypesMaster();\n this.filterActivityForm.ActivityTypeId = null;\n this.filterActivityForm.ActivityStatusId = null;\n this.filterActivityForm.Subject = null;\n this.filterActivityForm.StartDate = null;\n this.filterActivityForm.EntityTypeId = null;\n this.filterActivityForm.EntityId = null;\n this.filterActivityForm.PageNumber = 1;\n this.filterActivityForm.PageSize = 2000;\n this.filterActivityForm.IsOwner = true;\n this.refreshGrid(this.filterActivityForm);\n this.getAllStatus();\n this.getallParticipant();\n }\n\n getallParticipant() {\n this.activityService.getallUserMaster().subscribe((data: User[]) => {\n this.allUserMaster = data;\n\n })\n }\n GetActivityTypeMaster() {\n this.activityService.getActivityTypeMaster().subscribe((data) => {\n this.activityTypeMaster = data;\n })\n }\n\n GetEntityTypesMaster() {\n this.activityService.getallEntityTypesMaster().subscribe((data: ActivityLinkageEntityType[]) => {\n this.allEntityTypesMaster = data;\n })\n }\n\n getAllStatus() {\n this.activityService.getActivityStatusMaster(null).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n });\n }\n\n addRow() {\n let newActivity = new Activity();\n newActivity.InEditMode = true;\n this.filteredActivities.unshift(newActivity);\n this.cd.detectChanges();\n }\n\n removeByIndex(index: any) {\n if ('ActivityId' in this.filteredActivities[index]) {\n } else {\n this.filteredActivities.splice(index, 1);\n }\n }\n\n refreshGrid(filterActivityForm) {\n this.activityService.getActivityByFilter(filterActivityForm).subscribe((data: any) => {\n this.activities = data.Data;\n this.filteredActivities = data.Data;\n this.length = this.filteredActivities.length\n this.cd.detectChanges();\n\n });\n }\n\n bulkEdit() {\n if (this.isbulkEdit) {\n var newArr = this.filteredActivities.map(obj => {\n return { ...obj, InEditMode: true };\n });\n } else {\n\n var newArr = this.filteredActivities.map(obj => {\n return { ...obj, InEditMode: false };\n });\n }\n this.filteredActivities = newArr;\n }\n\n pageEvent(event) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n let reqBody = { ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: null, EntityTypeId: null, EntityId: null, PageNumber: this.pageNumber, PageSize: this.pageSize, IsOwner: this.filterActivityForm.IsOwner }\n this.activityService.getActivityByFilter(reqBody).subscribe((res: any) => {\n this.filteredActivities = res\n })\n\n }\n\n onEntityTypeChange(EntityTypeId: any) {\n this.activityService.getrelatedEntityRecords(EntityTypeId,'').subscribe((data: EntityRecord[]) => {\n this.entityTypeFilterArray = data;\n });\n }\n\n\n removeFilter() {\n let reqBody = { ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: null, EntityTypeId: null, EntityId: null, PageNumber: 1, PageSize: 2000, IsOwner: this.filterActivityForm.IsOwner }\n this.EnquiryngbDateFromFiter = null;\n this.EnquiryngbDateToFiter = null;\n this.activityService.getActivityByFilter(reqBody).subscribe((res: any) => {\n this.filteredActivities = res\n\n this.entityTypeFilterArray = [];\n\n this.filterActivityForm = { ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: null, EntityTypeId: null, EntityId: null, PageNumber: 1, PageSize: 2000, IsOwner: true }\n });\n }\n\n onSubmit(filterActivityForm: any) {\n\n\n if (this.EnquiryngbDateFromFiter == undefined) {\n filterActivityForm.StartDate = null;\n filterActivityForm.EndDate = null;\n } else {\n filterActivityForm.StartDate = this.convertDate(new NgbDate(this.EnquiryngbDateFromFiter.year, this.EnquiryngbDateFromFiter.month, this.EnquiryngbDateFromFiter.day))\n filterActivityForm.EndDate = this.convertDate(new NgbDate(this.EnquiryngbDateToFiter.year, this.EnquiryngbDateToFiter.month, this.EnquiryngbDateToFiter.day))\n }\n\n\n filterActivityForm.PageNumber = 1;\n filterActivityForm.PageSize = 2000;\n this.activityService.getActivityByFilter(filterActivityForm).subscribe((res: any) => {\n this.filteredActivities = res\n });\n }\n\n\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n onKeyDown(event: KeyboardEvent) {\n // Check if the pressed key is a space and if the input field is empty\n if (event.key === ' ' && event.target['value'].trim() === '') {\n event.preventDefault(); // prevent the space from being entered\n }\n }\n\n\n\n EnquiryngbDateFromFiter: NgbDate | null;\n EnquiryngbDateToFiter: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n minDate: NgbDateStruct;\n maxDate: NgbDateStruct;\n // datePipe = new DatePipe('en-US');\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n onDateSelection(date: NgbDate) {\n if (!this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter) {\n this.EnquiryngbDateFromFiter = date;\n } else if (this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && date && date.after(this.EnquiryngbDateFromFiter)) {\n this.EnquiryngbDateToFiter = date;\n } else {\n this.EnquiryngbDateToFiter = null;\n this.EnquiryngbDateFromFiter = date;\n }\n }\n isRange(date: NgbDate) {\n return date.equals(this.EnquiryngbDateFromFiter) || (this.EnquiryngbDateToFiter && date.equals(this.EnquiryngbDateToFiter)) || this.isInside(date) || this.isHovered(date);\n }\n isHovered(date: NgbDate) {\n return this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && this.hoveredDate && date.after(this.EnquiryngbDateFromFiter) && date.before(this.hoveredDate);\n }\n isInside(date: NgbDate) {\n return this.EnquiryngbDateToFiter && date.after(this.EnquiryngbDateFromFiter) && date.before(this.EnquiryngbDateToFiter);\n }\n\n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.EnquiryngbDateToFiter = this.EnquiryngbDateFromFiter;\n }\n }\n\n ConvertNgbDateToDate(ngbdate: any) {\n if (ngbdate != null) {\n return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n }\n\n\n OnToDateFilterChange() {\n }\n\n\n\n}\n","\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n

    \n Bulk Edit\n

    \n
    \n
    \n
    \n\n\n\n
    \n
    \n \n
    \n\n Bulk Edit\n \n  \n\n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n \n \n
    \n\n\n
    \n \n\n \n
    \n\n\n
    \n \n \n
    \n\n\n
    \n \n \n
    \n\n \n\n\n
    \n
    \n \n\n \n \n {{ date.day }}\n \n \n
    \n
    \n\n\n\n\n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n\n\n\n\n
    \n \n \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n\n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Activity TypeCustomerParticipantsSubjectDue DateActivity StatusDelayed ByActions
    \n\n
    \n
    No Records found
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n \n \n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { ChangeDetectionStrategy, ViewChild, TemplateRef, } from '@angular/core';\nimport { endOfMonth, isSameDay, isSameMonth, addHours, startOfMonth, } from 'date-fns';\nimport { Observable, Subject } from 'rxjs';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarEvent, CalendarEventAction, CalendarEventTimesChangedEvent, CalendarView, } from 'angular-calendar';\nimport { EventColor } from 'calendar-utils';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { Activity, ActivityLinkageEntityType, ActivityStatusByType, ActivityType, User } from 'src/app/Model/ActivityModel';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { startOfWeek, endOfWeek, format } from 'date-fns';\nimport { ViewActivityComponent } from '../view-activity/view-activity.component';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\n\nexport interface EventAction {\n id?: string | number;\n label: string;\n cssClass?: string;\n a11yLabel?: string;\n onClick({ event, sourceEvent, }: {\n event: CalendarEvent;\n sourceEvent: MouseEvent | KeyboardEvent;\n }): any;\n}\n\nexport interface CalendarEvent1 {\n ActivityId?: number;\n id?: string | number;\n start: Date;\n end?: Date;\n title: string;\n color?: EventColor;\n actions?: EventAction[];\n allDay?: boolean;\n cssClass?: string;\n resizable?: {\n beforeStart?: boolean;\n afterEnd?: boolean;\n };\n draggable?: boolean;\n meta?: MetaType;\n}\n\n\nconst colors: Record = {\n red: {\n primary: '#ad2121',\n secondary: '#FAE3E3',\n },\n blue: {\n primary: '#1e90ff',\n secondary: '#D1E8FF',\n },\n yellow: {\n primary: '#e3bc08',\n secondary: '#FDF1BA',\n },\n};\n\n@Component({\n selector: 'app-calender-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './calender-view.component.html',\n styleUrls: ['./calender-view.component.scss']\n})\nexport class CalenderViewComponent implements OnInit {\n\n @ViewChild('modalContent', { static: true }) modalContent: TemplateRef | undefined;\n\n view: CalendarView = CalendarView.Month;\n CalendarView = CalendarView;\n viewDate: any;\n modalData: any;\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n canViewCustomerEngagementReportOfOthers:boolean=true;\n Role: any;\n partid: string = null;\n canEditCustomerEngagementReportOfOthers: boolean;\n\n\n constructor(private router: Router, private activityService: ActivityService, private modalService: NgbModal, public dialog: MatDialog, private toastr: ToastrService, private cd: ChangeDetectorRef,private accessservice: AccessPermissionService) { }\n\n activities: Activity[];\n filteredActivities: Activity[];\n activityStatusFilter: number;\n priorityFilter: string;\n activityTypeFilter: number;\n activityTypeMaster: ActivityType[] = [];\n filterActivityForm: any = {};\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n allEntityTypesMaster: ActivityLinkageEntityType[] = [];\n events: CalendarEvent[] = [];\n entityTypeFilterArray: any = [];\n showLoader: boolean = false;\n refresh = new Subject();\n activeDayIsOpen: boolean = false;\n allUserMaster: User[] = [];\n\n\n ngOnInit() {\n this.showLoader = true;\n var defaultView = localStorage.getItem('ViewType-A');\n this.backNavigationBackView(defaultView);\n\n this.viewDate = new Date();\n localStorage.setItem('ViewType', 'Calender');\n this.getActivityTypeMasterDetails();\n this.getallEntityTypesMasterDetails();\n this.filterActivityForm.ActivityTypeId = null;\n this.filterActivityForm.ActivityStatusId = null;\n this.filterActivityForm.Subject = null;\n this.filterActivityForm.StartDate = format(startOfMonth(this.viewDate), \"yyyy-MM-dd\");\n this.filterActivityForm.EndDate = format(endOfMonth(this.viewDate), \"yyyy-MM-dd\");\n this.filterActivityForm.EntityTypeId = null;\n this.filterActivityForm.EntityId = null;\n this.filterActivityForm.PageNumber = 1;\n this.filterActivityForm.PageSize = 2000;\n this.filterActivityForm.IsOwner = true;\n this.filterActivityForm.ParticipantId = localStorage.getItem('UserID');\n this.Role = localStorage.getItem(\"UserRole\");\n this.partid = this.filterActivityForm.ParticipantId;\n this.getAllStatus();\n this.getallParticipant();\n\n this.getAccess().subscribe(x=>{\n this.refreshGrid(this.filterActivityForm);\n });\n }\n\n backNavigationBackView(defaultView:any){\n if(defaultView == 'week'){\n this.view = CalendarView.Week;\n }else if(defaultView == 'day'){\n this.view = CalendarView.Day;\n }else{\n this.view = CalendarView.Month;\n }\n }\n\n getallParticipant() {\n this.showLoader = true;\n this.activityService.getallUserMaster().subscribe((data: User[]) => {\n this.showLoader = false;\n this.allUserMaster = data;\n this.cd.detectChanges();\n\n })\n }\n\n\n refreshGrid(filterActivityForm) {\n this.getData(filterActivityForm);\n }\n\n\n getallEntityTypesMasterDetails() {\n this.showLoader = true;\n this.activityService\n .getallEntityTypesMaster()\n .subscribe((data: ActivityLinkageEntityType[]) => {\n this.showLoader = false;\n this.allEntityTypesMaster = data;\n });\n }\n\n getAllActivitiesDetails() {\n this.getData({});\n }\n\n\n getActivityTypeMasterDetails() {\n this.showLoader = true;\n this.activityService\n .getActivityTypeMaster()\n .subscribe((data: ActivityType[]) => {\n this.showLoader = false;\n this.activityTypeMaster = data;\n this.cd.detectChanges();\n });\n }\n\n getAllStatus() {\n this.showLoader = true;\n this.activityService.getActivityStatusMaster(null).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n this.showLoader = false;\n this.cd.detectChanges();\n });\n }\n\n\n onEntityTypeChange(EntityTypeId: any) {\n this.activityService.getrelatedEntityRecords(EntityTypeId,'').subscribe((data: any[]) => {\n this.entityTypeFilterArray = data;\n });\n }\n\n\n\n actions: CalendarEventAction[] = [\n {\n label: '',\n a11yLabel: 'Edit',\n onClick: ({ event }: { event: CalendarEvent }): void => {\n this.handleEvent('Edited', event);\n },\n },\n {\n label: '',\n a11yLabel: 'Delete',\n onClick: ({ event }: { event: CalendarEvent }): void => {\n this.events = this.events.filter((iEvent) => iEvent !== event);\n this.handleEvent('Deleted', event);\n },\n },\n ];\n\n\n dayClicked({ date, events }: { date: Date; events: CalendarEvent1[] }): void {\n\n if (isSameMonth(date, this.viewDate)) {\n if (\n (isSameDay(this.viewDate, date) && this.activeDayIsOpen === true) ||\n events.length === 0\n ) {\n this.activeDayIsOpen = false;\n } else {\n this.activeDayIsOpen = true;\n }\n this.viewDate = date;\n }\n }\n\n eventTimesChanged({\n event,\n newStart,\n newEnd,\n }: CalendarEventTimesChangedEvent): void {\n this.events = this.events.map((iEvent) => {\n if (iEvent === event) {\n return {\n ...event,\n start: newStart,\n end: newEnd,\n };\n }\n return iEvent;\n });\n this.handleEvent('Dropped or resized', event);\n }\n\n handleEvent(action: string, event: CalendarEvent1): void {\n if (event.ActivityId == null || event.ActivityId == undefined) {\n // this.router.navigate(['/View-Activity', event]);\n this.openViewPopup(event)\n localStorage.setItem('ViewType-A',this.view)\n return;\n }\n localStorage.setItem('ViewType-A', this.view)\n this.openViewPopup(event)\n }\n\n\n\n setView(view: CalendarView) {\n\n this.view = view;\n this.activityByViewTypeOfCalender();\n }\n\n closeOpenMonthViewDay() {\n this.activeDayIsOpen = false;\n this.activityByViewTypeOfCalender();\n }\n\n onSubmit(filterActivityForm: any) {\n\n this.filterActivityForm.StartDate = format(startOfMonth(this.viewDate), \"yyyy-MM-dd\");\n this.filterActivityForm.EndDate = format(endOfMonth(this.viewDate), \"yyyy-MM-dd\");\n this.filterActivityForm.ActivityStatusId = filterActivityForm.ActivityStatusId;\n this.filterActivityForm.PageNumber = 1;\n this.filterActivityForm.PageSize = 2000;\n\n if(filterActivityForm.ActivityStatusId == \"null\"){\n filterActivityForm.ActivityStatusId = null\n }\n if(filterActivityForm.ActivityTypeId == \"null\"){\n filterActivityForm.ActivityTypeId = null\n }\n if(filterActivityForm.EntityTypeId == \"null\"){\n filterActivityForm.EntityTypeId = null\n }\n if(filterActivityForm.ParticipantId == \"null\"){\n filterActivityForm.ParticipantId = null\n }\n\n\n\n this.getData(filterActivityForm);\n }\n\n\n clearFilter() {\n let filters = {\n ActivityTypeId: null,\n ActivityStatusId: null,\n Subject: null,\n StartDate: format(startOfMonth(this.viewDate), \"yyyy-MM-dd\"),\n EntityTypeId: null,\n EntityId: null,\n PageNumber: 1,\n PageSize: 2000,\n IsOwner: false,\n EndDate: format(endOfMonth(this.viewDate), \"yyyy-MM-dd\"),\n };\n\n // this.entityTypeFilterArray = [];\n // this.filterActivityForm = {};\n this.getData(filters);\n this.entityTypeFilterArray = [];\n this.filterActivityForm = { ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: null, EntityTypeId: null, EntityId: null, PageNumber: 1, PageSize: 2000, IsOwner: false }\n }\n\n\n getData(filterActivityForm) {\n this.activityService\n .getActivityByFilter(filterActivityForm)\n .subscribe((data: any) => {\n this.activities = data.Data;\n this.filteredActivities = data.Data;\n this.checkAccess();\n this.updateEvents(data.Data);\n this.cd.detectChanges();\n });\n\n }\n\n\n updateEvents(filteredActivities) {\n\n this.events = filteredActivities.map((arg: Activity) => {\n return {\n ActivityId: arg.ActivityId,\n title: arg.Subject,\n start: new Date(arg.PlannedDueDatetime),\n end: addHours(new Date(arg.PlannedDueDatetime), 1),\n color: arg.ActivityType == 'Meeting' ? colors.red : arg.ActivityType == 'Task' ? colors.blue : colors.yellow,\n draggable: false,\n resizable: {\n beforeStart: true,\n afterEnd: true,\n },\n };\n\n });\n\n }\n\n\n\n activityByViewTypeOfCalender() {\n\n let filterDate = this.viewDate;\n let filterStartDate = null;\n let filterEndDate = null;\n\n switch (this.view) {\n\n case 'month':\n filterStartDate = startOfMonth(filterDate);\n filterEndDate = endOfMonth(filterDate);\n break;\n case 'week':\n filterStartDate = startOfWeek(filterDate);\n filterEndDate = endOfWeek(filterDate);\n break;\n case 'day':\n filterStartDate = filterDate;\n filterEndDate = filterDate;\n break;\n }\n\n this.filterActivityForm.StartDate = format(filterStartDate, \"yyyy-MM-dd\");\n this.filterActivityForm.EndDate = format(filterEndDate, \"yyyy-MM-dd\");\n this.filterActivityForm.PageNumber = 1;\n this.filterActivityForm.PageSize = 2000;\n this.getData(this.filterActivityForm);\n\n }\n\n\n onKeyDown(event: KeyboardEvent) {\n // Check if the pressed key is a space and if the input field is empty\n if (event.key === ' ' && event.target['value'].trim() === '') {\n event.preventDefault(); // prevent the space from being entered\n }\n }\n\n\n openViewPopup(event: any) {\n const modalRef = this.modalService.open(ViewActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n\n var Activity = {\n activityId: event.ActivityId,\n inPopUpMode: true,\n canEditCustomerEngagementReportOfOthers:this.filteredActivities.filter(x=>x.ActivityId==event.ActivityId)[0]?.canEditCustomerEngagementReportOfOthers,\n canViewCustomerEngagementReportOfOthers:this.filteredActivities.filter(x=>x.ActivityId==event.ActivityId)[0]?.canViewCustomerEngagementReportOfOthers\n };\n\n modalRef.componentInstance.Activity = Activity;\n }\n\n getAccess(): Observable {\n let tracker = this.accessservice.GetAll();\n\n tracker.subscribe((data: any) => {\n // console.log(data);\n this.accesspermissionobj = data;\n this.canViewCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsVisible;\n this.canEditCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsEditable;\n if(!this.canViewCustomerEngagementReportOfOthers){\n\n this.partid = this.filterActivityForm.ParticipantId;\n }\n });\n\n return tracker;\n }\n\n\n \n checkAccess()\n {\n this.filteredActivities.forEach(element => {\n const participantsIdArray = element.ParticipantsID.split(',');\n console.log(localStorage.getItem('UserID'));\n \n if((participantsIdArray.filter(x=>x==localStorage.getItem('UserID')).length>0 ||element.ActivityOwner==localStorage.getItem('UserID')))\n {\n element.canEditCustomerEngagementReportOfOthers=true;\n element.canViewCustomerEngagementReportOfOthers=true;\n }\n else\n {\n element.canEditCustomerEngagementReportOfOthers=this.canEditCustomerEngagementReportOfOthers;\n element.canViewCustomerEngagementReportOfOthers=this.canViewCustomerEngagementReportOfOthers;\n }\n }); \n }\n\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    My Activities

    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n\n\n \n \n
    {{ item.EntityName }}
    \n
    \n
    \n\n\n \n\n\n
    \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n Filter\n \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Previous\n
    \n
    \n Today\n
    \n
    \n Next\n
    \n
    \n
    \n
    \n

    {{ viewDate | calendarDate:(view + 'ViewTitle'):'en' }}

    \n
    \n
    \n
    \n
    \n Month\n
    \n
    \n Week\n
    \n
    \n Day\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n\n \n \n\n \n \n\n
    \n
    \n \n
    \n 0\">{{ day.badgeTotal }}\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\n
    \n 0\">There are {{ day.events.length }}\n events on this day\n
    \n\n \n
    \n
    Plan Details
    \n \n
    \n

    Title : -{{ modalData?.event.title }}

    \n
    \n
    \n Action:\n
    {{ modalData?.action }}
    \n
    \n
    \n Event:\n
    {{ modalData?.event | json }}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, forkJoin } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { ActivityLinkageEntityType, ActivityOutcomeByType, ActivityPurposeByType, ActivityStatusByType, ActivityType, EntityRecord, User } from 'src/app/Model/ActivityModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'app-edit-activity',\n templateUrl: './edit-activity.component.html',\n styleUrls: ['./edit-activity.component.scss']\n})\nexport class EditActivityComponent implements OnInit {\n\n constructor(private cd: ChangeDetectorRef ,private activityService: ActivityService, private toastr: ToastrService, private route: ActivatedRoute, private router: Router, private location: Location) { }\n\n ActivityId: number;\n @Input() showLoader: boolean = false;\n\n ENTITY_TYPE_CUSTOMER = \"1\";\n ENTITY_TYPE_LEAD = \"2\";\n ENTITY_TYPE_ENQUIRY = \"3\";\n activityTypeMaster: ActivityType[] = [];\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n activityOutcomeByTypeMaster: ActivityOutcomeByType[] = [];\n activityPurposeByTypeMaster: ActivityPurposeByType[] = [];\n allEntityTypesMaster: ActivityLinkageEntityType[] = [];\n allUserMaster = [];\n frmData: any = {};\n selectedEnquries=[];\n previousSelectedEnquiries = [];\n selectedCustomers=[];\n selectedCustomersOrLeads = [];\n selectedEntityRecords = [];\n selectedLeads=[];\n selectedLinkagesByType = [];\n selectedEntityTypeId:any = 0;\n entityTypeFilterArray = [];\n showOutcome: boolean = false;\n subtypeArray1 = ['Seminar', 'Webinar']\n allLeads:EntityRecord[] = [];\n allCustomers:EntityRecord[] = [];\n relatedEntityRecords:EntityRecord[] = [];\n allEnquiries:EntityRecord[] = [];\n selectedOptions: any[] = [];\n isEnquiryShow:boolean =false;\n\n\n\n\n ngOnInit() {\n\n this.showLoader = true;\n this.ActivityId = this.route.snapshot.params[\"id\"];\n forkJoin([\n this.GetActivityTypeMaster(),\n this.GetEntityTypesMaster(),\n this.GetAllUserMaster()\n ]).pipe(tap(res => {\n\n this.getActivityById(this.ActivityId);\n })).subscribe(x=>{\n\n });\n }\n\n\n gobackNavigate() {\n\n\n // const parentComponent = localStorage.getItem('ViewType');;\n // if (parentComponent === 'Calender') {\n // localStorage.removeItem('ViewType')\n // this.router.navigate(['/Calender-View']);\n // } else if (parentComponent === 'ListView') {\n // localStorage.removeItem('ViewType')\n // this.router.navigate(['/My-Activities']);\n // }else {\n // this.location.back();\n // }\n this.location.back();\n }\n\n convertParticipantFormatForSerchableDropdown(frmData){\n this.frmData.ListActivityParticipants = frmData.ListActivityParticipants.map(item => item.ActivityParticipant);\n this.showLoader = false;\n }\n\n getAllCustomers(){\n let tracker = this.activityService.getrelatedEntityRecords(this.ENTITY_TYPE_CUSTOMER,null);\n tracker.subscribe((data: EntityRecord[]) => {\n let linkagesByEntityType = this.groupArrayByKey(data,\"EntityTypeId\");\n this.allCustomers = linkagesByEntityType[this.ENTITY_TYPE_CUSTOMER] as EntityRecord[];\n this.relatedEntityRecords = this.allCustomers;\n });\n return tracker;\n }\n\n getAllLeads(){\n let tracker = this.activityService.getrelatedEntityRecords(this.ENTITY_TYPE_LEAD,null);\n tracker.subscribe((data: EntityRecord[]) => {\n let linkagesByEntityType = this.groupArrayByKey(data,\"EntityTypeId\");\n this.allLeads = linkagesByEntityType[this.ENTITY_TYPE_LEAD] as EntityRecord[];\n this.relatedEntityRecords = this.allLeads;\n });\n\n return tracker;\n }\n\n getEnquiriessByCustomers(){\n\n if(Array.isArray(this.selectedCustomers) && this.selectedCustomers.length>0){\n let tracker = this.activityService.getrelatedEntityRecords(this.ENTITY_TYPE_ENQUIRY,this.selectedCustomers);\n tracker.subscribe((data: EntityRecord[]) => {\n let linkagesByEntityType = this.groupArrayByKey(data,\"EntityTypeId\");\n this.allEnquiries = linkagesByEntityType[this.ENTITY_TYPE_ENQUIRY] as EntityRecord[];\n this.relatedEntityRecords = this.allEnquiries;\n this.previousSelectedEnquiries = [...this.selectedEnquries];\n this.selectedEnquries = [];\n for(let enquiry of this.allEnquiries) {\n for(let prevSelEnquiryId of this.previousSelectedEnquiries){\n if(enquiry.EntityId.toString() == prevSelEnquiryId) {\n this.selectedEnquries.push(enquiry.EntityId); \n }\n }\n }\n });\n return tracker;\n } else {\n this.selectedEnquries = [];\n }\n }\n\n GetEntityTypesMaster() {\n let tracker = this.activityService.getallEntityTypesMaster();\n tracker.subscribe((data: ActivityLinkageEntityType[]) => {\n this.allEntityTypesMaster = data;\n });\n return tracker;\n }\n\n GetActivityTypeMaster() {\n let tracker = this.activityService.getActivityTypeMaster();\n tracker.subscribe((data) => {\n this.activityTypeMaster = data;\n });\n return tracker;\n }\n\n GetAllUserMaster() {\n let tracker = this.activityService.getallUserMaster();\n tracker.subscribe((data: User[]) => {\n this.allUserMaster = data;\n });\n return tracker;\n }\n\n getChildObjects(obj: any, firstLevelKey: string | number, childKey: string|number) {\n if (!obj[firstLevelKey]) {\n return [];\n }\n return obj[firstLevelKey].map((item: any) => item[childKey]);\n }\n\n\n\n getActivityById(id: number) {\n this.showLoader = true;\n this.activityService.getActivityById(id).subscribe(data => {\n this.frmData = data;\n this.convertParticipantFormatForSerchableDropdown(data);\n this.getActivityPurpose(this.frmData.ActivityTypeId);\n this.getActivityStatus(this.frmData.ActivityTypeId);\n this.getActivityOutcome(this.frmData.ActivityTypeId);\n this.getAllCustomers();\n this.getAllLeads();\n this.selectedLinkagesByType = this.groupArrayByKey(this.frmData.ListActivityLinkage,\"EntityTypeId\");\n for(let entityTypeId in this.selectedLinkagesByType){\n\n\n if(entityTypeId == this.ENTITY_TYPE_CUSTOMER){\n this.selectedCustomers = this.getChildObjects(this.selectedLinkagesByType,this.ENTITY_TYPE_CUSTOMER,\"EntityId\");\n\n this.getEnquiriessByCustomers();\n this.selectedEnquries = this.getChildObjects(this.selectedLinkagesByType,this.ENTITY_TYPE_ENQUIRY,\"EntityId\");\n }\n if(entityTypeId == this.ENTITY_TYPE_LEAD){\n this.selectedLeads = this.getChildObjects(this.selectedLinkagesByType,this.ENTITY_TYPE_LEAD,\"EntityId\");\n }\n }\n if (this.frmData.ActivityOutcomeId == 2) {\n this.showOutcome = true;\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to Load activity details!\");\n this.showLoader = false;\n });\n }\n\n onOwnerChange(frmData, ActivityOwnerId) {\n if (!frmData.ListActivityParticipants || frmData.ListActivityParticipants?.length < 1) {\n frmData.ListActivityParticipants = [];\n frmData.ListActivityParticipants.push({ ActivityParticipant: ActivityOwnerId });\n } else {\n frmData.ListActivityParticipants[0].ActivityParticipant = this.frmData.ActivityOwnerId;\n }\n }\n\n getActivityPurpose(ActivityTypeId: any) {\n return this.activityService.getActivityPurposeMaster(ActivityTypeId).subscribe((data: ActivityPurposeByType[]) => {\n this.activityPurposeByTypeMaster = data;\n });\n }\n\n getActivityStatus(ActivityTypeId: number) {\n this.activityService.getActivityStatusMaster(ActivityTypeId).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n let newObj = this.activityStatusByTypeMaster.find((arg) => {\n return arg.ActivityStatusId == this.frmData.ActivityStatusId\n })\n\n if (newObj.ActivityStatusCode === \"COMPLETED\") {\n this.showOutcome = true;\n } else {\n this.showOutcome = false;\n }\n });\n }\n\n getActivityOutcome(ActivityTypeId: number) {\n this.activityService.getActivityOutcomeMaster(ActivityTypeId).subscribe((data: ActivityOutcomeByType[]) => {\n this.activityOutcomeByTypeMaster = data;\n });\n }\n\n\n\n groupActivityLinkageByEntityTypeId(listActivityLinkage: any[]) {\n const groupedActivityLinkage = listActivityLinkage.reduce((acc, curr) => {\n const entityTypeId = curr.EntityTypeId;\n if (!acc[entityTypeId]) {\n acc[entityTypeId] = {\n EntityTypeId: entityTypeId,\n EntityTypeName: curr.EntityTypeName,\n activityLinkages: []\n };\n }\n acc[entityTypeId].activityLinkages.push(curr);\n return acc;\n }, {});\n return Object.values(groupedActivityLinkage);\n }\n\n groupArrayByKey(array: any[], key: string):[] | null {\n return array.reduce((result, currentValue) => {\n (result[currentValue[key]] = result[currentValue[key]] || []).push(\n currentValue\n );\n return result;\n }, {});\n\n }\n\n convertSelectedEntityArrayToEntityObjCollection(entities: any[],entityTypeId:any) {\n\n let response:any[] = [];\n if(Array.isArray(entities) && entities.length>0){\n entities.forEach(entityId => {\n response.push({ \"EntityTypeId\": entityTypeId, \"EntityId\": entityId});\n });\n return response;\n }else{\n return null;\n }\n }\n\n\n\n\n getMasterRecordsForGivenEntityType(EntityTypeId,EntityIds:any[]|null|string){\n\n if(EntityTypeId == 3){\n //EntityIds = this.selectedCustomersOrLeads;//In case of enquiry, load only those which are related to selected customers\n\n }\n\n let tracker = this.activityService.getrelatedEntityRecords(EntityTypeId,EntityIds);\n tracker.subscribe((data: EntityRecord[]) => {\n\n let linkagesByEntityType = this.groupArrayByKey(data,\"EntityTypeId\");\n\n if(EntityTypeId==1){\n this.allCustomers = linkagesByEntityType[EntityTypeId] as EntityRecord[];\n this.relatedEntityRecords = this.allCustomers;\n }\n if(EntityTypeId==2){\n this.allLeads = linkagesByEntityType[EntityTypeId] as EntityRecord[];\n this.relatedEntityRecords = this.allLeads;\n }\n if(EntityTypeId==3){\n this.allEnquiries = linkagesByEntityType[EntityTypeId] as EntityRecord[];\n }\n\n });\n\n return tracker;\n }\n\n\n\n\n\n onSubmit(frmData: any, addActivityForm: any) {\n if (!addActivityForm.valid) {\n return\n }\n let newObj = this.activityStatusByTypeMaster.find((arg) => {\n return arg.ActivityStatusId == frmData.ActivityStatusId\n })\n if (newObj.ActivityStatusCode === \"COMPLETED\") {\n this.showOutcome = true;\n } else {\n this.frmData.OutcomeDesc = null;\n this.frmData.ActivityOutcomeDesc = null;\n this.frmData.ActivityOutcomeId = null;\n this.showOutcome = false;\n }\n\n// ***** Participant Conversion*****\n this.frmData.ListActivityParticipants = this.frmData.ListActivityParticipants.map(id => ({ ActivityParticipant: id }));\n let selectedCustomersAsObjCol = this.convertSelectedEntityArrayToEntityObjCollection(this.selectedCustomers,this.ENTITY_TYPE_CUSTOMER);\n let selectedLeadsAsObjCol = this.convertSelectedEntityArrayToEntityObjCollection(this.selectedLeads,this.ENTITY_TYPE_LEAD);\n let selectedEnquriesAsObjCol = this.convertSelectedEntityArrayToEntityObjCollection(this.selectedEnquries,this.ENTITY_TYPE_ENQUIRY);\n\n //Clear existing linkage object\n this.frmData.ListActivityLinkage = [];\n\n if(selectedCustomersAsObjCol){\n this.frmData.ListActivityLinkage = this.frmData.ListActivityLinkage.concat(selectedCustomersAsObjCol);\n }\n if(selectedLeadsAsObjCol){\n this.frmData.ListActivityLinkage = this.frmData.ListActivityLinkage.concat(selectedLeadsAsObjCol);\n }\n if(selectedEnquriesAsObjCol){\n this.frmData.ListActivityLinkage = this.frmData.ListActivityLinkage.concat(selectedEnquriesAsObjCol);\n }\n\n this.showLoader = true;\n\n this.activityService.addOrUpdateActivity(frmData).subscribe(activity => {\n this.toastr.success(activity.ResponseMessage);\n this.gobackNavigate();\n this.showLoader = false;\n });\n }\n\n ChangeStatus(statusId: any) {\n let newObj = this.activityStatusByTypeMaster.find((arg) => {\n return arg.ActivityStatusId == statusId\n })\n if (newObj.ActivityStatusCode === \"COMPLETED\") {\n this.showOutcome = true;\n } else {\n this.showOutcome = false;\n }\n }\n\n\n disableById(allUserMaster: any, ID) {\n allUserMaster.map((arg) => {\n return arg.Id == ID\n })\n }\n\n onKeyDown(event: KeyboardEvent) {\n // Check if the pressed key is a space and if the input field is empty\n if (event.key === ' ' && event.target['value'].trim() === '') {\n event.preventDefault(); // prevent the space from being entered\n }\n }\n\n\n\n\n onChangeInCustomerSelection(){\n this.allEnquiries = [];\n // this.selectedEnquries = [];\n this.getEnquiriessByCustomers();\n }\n\n}\n","\n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n\n \n
    \n
    \n
    \n

    \n Edit Activity\n

    \n
    \n
    \n
    \n\n\n
    \n
    \n\n
    \n \n
    \n
    \n {{frmData.ActivityType}}\n
    \n\n
    \n\n
    \n\n \n\n
    \n\n\n\n
    \n \n
    \n \n
    \n
    \n \n
    \n\n \n
    \n
    Subject is required
    \n
    \n
    \n\n
    \n
    \n\n
    \n \n
    \n \n\n
    \n
    \n\n
    \n\n\n \n
    \n \n\n
    \n\n
    \n\n \n
    \n \n\n\n
    \n
    \n\n \n\n
    \n \n
    \n \n\n\n
    \n
    Outcome is required
    \n
    \n
    \n
    \n Priority is\n required\n
    \n
    \n
    \n\n
    \n\n \n
    \n \n
    \n
    Outcome Description is required
    \n
    \n\n
    \n\n
    \n
    \n \n\n
    \n
    \n \n
    \n
    \n
    Due Date is required.
    \n
    \n
    \n
    \n
    \n
    \n Description: *\n
    \n \n
    \n
    Description is required.
    \n
    \n
    \n
    \n\n\n\n
    \n\n \n
    \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n \n
    \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n\n\n
    \n \n
    \n\n\n
    \n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n\n\n \n\n\n\n
    \n \n
    \n\n \n \n \n \n \n\n \n
    \n
    \n\n\n\n\n\n
    \n \n Save  \n \n Cancel\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n","\nimport { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { ActivityService } from '../../../../Service/activity.service';\nimport { Activity, ActivityType, ActivityStatusByType } from '../../../../Model/ActivityModel';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ViewActivityComponent } from '../view-activity/view-activity.component';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable } from 'rxjs';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\n\n@Component({\n selector: '[list-activity-row]',\n templateUrl: './list-activity-row.component.html',\n styleUrls: ['./list-activity-row.component.scss']\n})\nexport class ListActivityRowComponent implements OnInit {\n\n\n @Input() activity: Activity;\n // @Output() refreshGridParent = new EventEmitter();\n @Output() initialActivityToCompairParent = new EventEmitter();\n @Input() index: number;\n @Output() dataEvent = new EventEmitter();\n accesspermissionobj: any;\n canViewCustomerEngagementReportOfOthers: any;\n canEditCustomerEngagementReportOfOthers: any;\n Role: string;\n\n\n constructor(\n private cd:ChangeDetectorRef,\n private activityService: ActivityService,\n public dialog: MatDialog,\n private toastr: ToastrService,\n private modalService: NgbModal,\n private accessservice: AccessPermissionService\n ) { }\n\n\n\n tempSubject: string;\n tempPlannedDueDate: Date;\n activityOriginal: Activity;\n showLoader: boolean = false;\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n activityTypeMaster: ActivityType[] = [];\n acitvityStatusIdOfNotStarted: any;\n\n\n ngOnInit(): void {\n \n this.showLoader = true;\n this.Role = localStorage.getItem(\"UserRole\");\n\n \n this.activityOriginal = { ...this.activityOriginal, ...this.activity };\n this.activityService.getActivityTypeMaster().subscribe((data) => {\n this.activityTypeMaster = data;\n });\n\n if (this.activityOriginal.InEditMode == true) {\n this.activityService.getActivityStatusMaster(this.activityOriginal.ActivityTypeId).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n });\n }\n \n this.showLoader = false;\n }\n\n\n\n\n\n\n onActivityTypeChange(activity: any) {\n this.activityService.getActivityStatusMaster(activity.ActivityTypeId).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n if (!activity.ActivityId) {\n let initialStatusId = this.activityStatusByTypeMaster.find((arg) => {\n return arg.ActivityStatusCode == \"NOT_STARTED\"\n })\n this.acitvityStatusIdOfNotStarted = initialStatusId.ActivityStatusId;\n }\n });\n\n }\n\n\n save(activity: Activity, index): void {\n\n\n if (this.activity.Subject && this.activity.PlannedDueDatetime?.toString()) {\n activity['ActivityOwnerId'] = activity['ActivityOwner'];\n this.activityService.addOrUpdateActivity(activity).subscribe(data => {\n //this.activityOriginal = data;\n \n activity.InEditMode = false;\n this.toastr.success(data.ResponseMessage);\n this.initialActivityToCompairParent.emit({ activity: activity, index: index })\n });\n }\n else {\n let inputs = document.querySelectorAll('.form-input')\n inputs.forEach(input => {\n input.classList.add('error')\n })\n }\n this.acitvityStatusIdOfNotStarted = null;\n }\n\n cancel(activity: Activity, index): void {\n this.activity.Subject = this.tempSubject;\n this.activity.PlannedDueDatetime = this.tempPlannedDueDate;\n this.activity.ActivityStatusId = this.tempActivityStatusId;\n activity.InEditMode = false;\n this.dataEvent.emit(index);\n }\n\n tempActivityStatusId;\n\n edit(activity: Activity): void {\n this.activityService.getActivityStatusMaster(activity.ActivityTypeId).subscribe(\n (data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n this.tempSubject = this.activity.Subject;\n this.tempPlannedDueDate = this.activity.PlannedDueDatetime;\n this.tempActivityStatusId = this.activity.ActivityStatusId;\n activity.InEditMode = true;\n }\n );\n }\n\n\n delete(activity: Activity) {\n this.activityService.deleteActivity(activity).subscribe(activity => {\n });\n }\n\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === ' ' && event.target['value'].trim() === '') {\n event.preventDefault();\n }\n }\n\n openViewPopup(activityId: number) {\n const modalRef = this.modalService.open(ViewActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n var Activity = {\n activityId: activityId,\n inPopUpMode: true,\n canEditCustomerEngagementReportOfOthers:this.activity.canEditCustomerEngagementReportOfOthers,\n canViewCustomerEngagementReportOfOthers:this.activity.canViewCustomerEngagementReportOfOthers\n };\n\n modalRef.componentInstance.Activity = Activity;\n }\n \n getAccess(): Observable {\n let tracker = this.accessservice.GetAll();\n\n tracker.subscribe((data: any) => {\n this.accesspermissionobj = data;\n this.canViewCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsVisible;\n this.canEditCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsEditable;\n\n });\n return tracker;\n }\n\n checkAccess()\n {\n const participantsIdArray = this.activityOriginal.ParticipantsID.split(',');\n \n if((participantsIdArray.filter(x=>x==localStorage.getItem('UserID')).length>0 ||this.activityOriginal.ActivityOwner==localStorage.getItem('UserID')))\n {\n this.activityOriginal.canEditCustomerEngagementReportOfOthers=true;\n this.activityOriginal.canViewCustomerEngagementReportOfOthers=true;\n }\n else\n {\n this.activityOriginal.canEditCustomerEngagementReportOfOthers=this.canEditCustomerEngagementReportOfOthers;\n this.activityOriginal.canViewCustomerEngagementReportOfOthers=this.canViewCustomerEngagementReportOfOthers;\n } \n }\n}\n","\n\n \n {{activity.Customer}}\n \n\n\n \n {{activity.ActivityType}}\n \n\n \n \n \n\n \n {{activity.Participants}}\n \n\n \n \n \n\n \n \n \n\n \n \n\n Not Started\n\n \n\n \n {{activity.DueDays}}\n \n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n {{activity.Customer}}\n \n\n \n {{activity.ActivityType}}\n \n\n \n {{activity.Participants}}\n \n\n \n {{activity.Subject}}\n \n\n \n {{activity.PlannedDueDatetime | date:'dd-MM-yyyy'}}\n \n\n \n {{activity.ActivityStatus}}\n \n \n {{activity.DueDays}}\n \n\n \n \n \n \n \n \n\n\n\n\n\n\n\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ActivityService } from '../../../../Service/activity.service';\nimport { Activity, ActivityType, ActivityStatus, ActivityPurpose, ActivityOutcome, ActivityStatusByType, ActivityLinkageEntityType, EntityRecord, User } from '../../../../Model/ActivityModel';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { MatTableModule } from '@angular/material/table';\nimport '@angular/material/prebuilt-themes/indigo-pink.css';\nimport { DatePipe } from '@angular/common';\nimport { NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { NgbCalendar, NgbDateParserFormatter, } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, iif } from 'rxjs';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\n\n@Component({\n selector: 'app-list-activity',\n templateUrl: './list-activity.component.html',\n styleUrls: ['./list-activity.component.scss']\n})\nexport class ListActivityComponent implements OnInit {\n isbulkEdit: boolean;\n pageNumber: number = 1;\n pageIndex: number = this.pageNumber - 1;\n pageSize: number = 5;\n length: number;\n activities: Activity[];\n filteredActivities: Activity[];\n activityTypeMaster: ActivityType[] = [];\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n allEntityTypesMaster: ActivityLinkageEntityType[] = [];\n filterActivityForm: any = {};\n entityTypeFilterArray: any = [];\n allUserMaster: User[] = [];\n @Input()\n showLoader: boolean = false;\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n canViewCustomerEngagementReportOfOthers:boolean=true;\n Role: any;\n partid: string = null;\n canEditCustomerEngagementReportOfOthers: boolean;\n\n constructor(private cd: ChangeDetectorRef ,private calendar: NgbCalendar, public formatter: NgbDateParserFormatter, private activityService: ActivityService,private accessservice: AccessPermissionService) { }\n\n ngOnInit(): void {\n\n this.filterActivityForm.ActivityTypeId = null;\n this.filterActivityForm.ActivityStatusId = null;\n this.filterActivityForm.Subject = null;\n this.filterActivityForm.StartDate = null;\n this.filterActivityForm.EntityTypeId = null;\n this.filterActivityForm.EntityId = null;\n this.filterActivityForm.PageNumber = 1;\n this.filterActivityForm.PageSize = 5;\n this.filterActivityForm.IsOwner = true;\n this.filterActivityForm.ParticipantId = localStorage.getItem('UserID');\n this.Role = localStorage.getItem(\"UserRole\");\n this.partid = this.filterActivityForm.ParticipantId;\n\n this.GetActivityTypeMaster();\n this.GetEntityTypesMaster();\n this.getAllStatus();\n this.getallParticipant();\n this.getAccess().subscribe(x=>{\n this.refreshGrid(this.filterActivityForm);\n });\n\n }\n\n\n addRow() {\n\n let newActivity: Activity = new Activity();\n newActivity.canEditCustomerEngagementReportOfOthers=true;\n newActivity.InEditMode = true;\n this.filteredActivities.unshift(newActivity);\n this.cd.detectChanges();\n }\n\n\n bulkEdit() {\n if (this.isbulkEdit) {\n var newArr = this.filteredActivities.map(obj => {\n return { ...obj, InEditMode: true };\n });\n } else {\n\n var newArr = this.filteredActivities.map(obj => {\n return { ...obj, InEditMode: false };\n });\n }\n\n this.filteredActivities = newArr;\n this.checkAccess();\n }\n\n\n\n\n getallParticipant() {\n this.activityService.getallUserMaster().subscribe((data: User[]) => {\n\n this.allUserMaster = data;\n\n })\n }\n\n getAllStatus() {\n this.activityService.getActivityStatusMaster(null).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n });\n }\n\n GetEntityTypesMaster() {\n this.showLoader = true;\n this.activityService.getallEntityTypesMaster().subscribe((data: ActivityLinkageEntityType[]) => {\n this.allEntityTypesMaster = data;\n this.showLoader = false;\n });\n }\n\n GetActivityTypeMaster() {\n this.activityService.getActivityTypeMaster().subscribe((data) => {\n this.activityTypeMaster = data;\n });\n }\n\n initialActivityToCompair(event: { activity: any, index: any }){\n\n // ***** When save/Add then compair and art specific index Save that activity****\n let reqBody = {\"ActivityTypeId\":null,\"ActivityStatusId\":null,\"Subject\":null,\"StartDate\":null,\"EntityTypeId\":null,\"EntityId\":null,\"PageNumber\":1,\"PageSize\":5,\"IsOwner\":true}\n this.activityService.getActivityByFilter(reqBody).subscribe((data: any) => {\n const newAddedActivityFromBulk = data.Data;\n\n if(event.activity.ActivityId){\n const A = newAddedActivityFromBulk.filter(((arg) => {\n return arg.ActivityId == event.activity.ActivityId\n }));\n A[0]['InEditMode'] = false\n\n this.filteredActivities[event.index] = A[0];\n \n }else{\n\n this.filteredActivities[event.index] = newAddedActivityFromBulk[0]\n }\n this.checkAccess();\n });\n }\n\n refreshGrid(filterActivityForm) {\n this.activityService.getActivityByFilter(filterActivityForm).subscribe((data: any) => {\n this.activities = data.Data;\n this.filteredActivities = data.Data;\n this.checkAccess();\n this.length = data.Total;\n });\n }\n\n\n\n pageEvent(event) {\n\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n if(!this.canViewCustomerEngagementReportOfOthers){\n this.filterActivityForm.ParticipantId = localStorage.getItem('UserID');\n }\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n let reqBody = { ActivityTypeId: this.filterActivityForm.ActivityTypeId, ActivityStatusId: this.filterActivityForm.ActivityStatusId,\n Subject: this.filterActivityForm.Subject, StartDate: this.filterActivityForm.StartDate,\n EntityTypeId: this.filterActivityForm.EntityTypeId, EntityId: this.filterActivityForm.EntityId,\n PageNumber: this.pageNumber, PageSize: this.pageSize, IsOwner: this.filterActivityForm.IsOwner,\n ParticipantId: this.filterActivityForm.ParticipantId\n }\n\n this.activityService.getActivityByFilter(reqBody).subscribe((res: any) => {\n this.filteredActivities = res.Data;\n this.checkAccess();\n this.bulkEdit();\n })\n\n }\n\n onEntityTypeChange(EntityTypeId: any) {\n this.showLoader = true;\n this.activityService.getrelatedEntityRecords(EntityTypeId,'').subscribe((data: EntityRecord[]) => {\n this.filterActivityForm.EntityId = null;\n this.entityTypeFilterArray = data;\n this.showLoader = false;\n });\n }\n\n removeByIndex(index: any) {\n if ('ActivityId' in this.filteredActivities[index]) {\n } else {\n this.filteredActivities.splice(index, 1);\n }\n }\n\n removeFilter() {\n\n if(!this.canViewCustomerEngagementReportOfOthers){\n this.partid = localStorage.getItem('UserID');\n }\n let reqBody = { ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: null, EntityTypeId: null, EntityId: null, PageNumber: 1, PageSize: 5,\n IsOwner: false, ParticipantId: this.partid}\n this.EnquiryngbDateFromFiter = null;\n this.EnquiryngbDateToFiter = null;\n this.activityService.getActivityByFilter(reqBody).subscribe((res: any) => {\n this.filteredActivities = res.Data\n this.checkAccess();\n this.entityTypeFilterArray = [];\n this.length = res.Total;\n this.filterActivityForm = { ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: null, EntityTypeId: null, EntityId: null, PageNumber: 1, PageSize: 5, IsOwner: false, ParticipantId:this.partid }\n this.isbulkEdit = false;\n this.pageSize = 5;\n });\n }\n\n onSubmit(filterActivityForm: any) {\n\n \n if(!this.canViewCustomerEngagementReportOfOthers){\n this.filterActivityForm.ParticipantId = localStorage.getItem('UserID');\n }\n\n\n if (this.EnquiryngbDateFromFiter == undefined) {\n filterActivityForm.StartDate = null;\n filterActivityForm.EndDate = null;\n } else {\n filterActivityForm.StartDate = this.convertDate(new NgbDate(this.EnquiryngbDateFromFiter.year, this.EnquiryngbDateFromFiter.month, this.EnquiryngbDateFromFiter.day))\n filterActivityForm.EndDate = this.convertDate(new NgbDate(this.EnquiryngbDateToFiter.year, this.EnquiryngbDateToFiter.month, this.EnquiryngbDateToFiter.day))\n }\n\n if(filterActivityForm.ActivityStatusId == \"null\"){\n filterActivityForm.ActivityStatusId = null\n }\n\n if(filterActivityForm.ActivityTypeId == \"null\"){\n filterActivityForm.ActivityTypeId = null\n }\n\n if(filterActivityForm.EntityTypeId == \"null\"){\n filterActivityForm.EntityTypeId = null\n }\n if(filterActivityForm.ParticipantId == \"null\"){\n filterActivityForm.ParticipantId = null\n }\n filterActivityForm.PageNumber = 1;\n filterActivityForm.PageSize = 5;\n this.activityService.getActivityByFilter(filterActivityForm).subscribe((res: any) => {\n this.filteredActivities = res.Data;\n this.checkAccess();\n this.length = res.Total;\n this.pageSize = 5;\n this.isbulkEdit = false;\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n\n\n onKeyDown(event: KeyboardEvent) {\n // Check if the pressed key is a space and if the input field is empty\n if (event.key === ' ' && event.target['value'].trim() === '') {\n event.preventDefault(); // prevent the space from being entered\n }\n }\n\n\n EnquiryngbDateFromFiter: NgbDate | null;\n EnquiryngbDateToFiter: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n minDate: NgbDateStruct;\n maxDate: NgbDateStruct;\n datePipe = new DatePipe('en-US');\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n onDateSelection(date: NgbDate) {\n if (!this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter) {\n this.EnquiryngbDateFromFiter = date;\n } else if (this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && date && date.after(this.EnquiryngbDateFromFiter)) {\n this.EnquiryngbDateToFiter = date;\n } else {\n this.EnquiryngbDateToFiter = null;\n this.EnquiryngbDateFromFiter = date;\n }\n }\n isRange(date: NgbDate) {\n return date.equals(this.EnquiryngbDateFromFiter) || (this.EnquiryngbDateToFiter && date.equals(this.EnquiryngbDateToFiter)) || this.isInside(date) || this.isHovered(date);\n }\n isHovered(date: NgbDate) {\n return this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && this.hoveredDate && date.after(this.EnquiryngbDateFromFiter) && date.before(this.hoveredDate);\n }\n isInside(date: NgbDate) {\n return this.EnquiryngbDateToFiter && date.after(this.EnquiryngbDateFromFiter) && date.before(this.EnquiryngbDateToFiter);\n }\n\n getAccess(): Observable {\n let tracker = this.accessservice.GetAll();\n\n tracker.subscribe((data: any) => {\n // console.log(data);\n this.accesspermissionobj = data;\n this.canViewCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsVisible;\n this.canEditCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsEditable;\n\n if(!this.canViewCustomerEngagementReportOfOthers){\n\n this.partid = this.filterActivityForm.ParticipantId;\n }\n });\n\n return tracker;\n }\n\n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.EnquiryngbDateToFiter = this.EnquiryngbDateFromFiter;\n }\n }\n\n ConvertNgbDateToDate(ngbdate: any) {\n if (ngbdate != null) {\n return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n }\n\n\n OnToDateFilterChange() {\n }\n\n\n checkAccess()\n {\n this.filteredActivities.forEach(element => {\n const participantsIdArray = element.ParticipantsID.split(',');\n console.log(localStorage.getItem('UserID'));\n \n if((participantsIdArray.filter(x=>x==localStorage.getItem('UserID')).length>0 ||element.ActivityOwner==localStorage.getItem('UserID')))\n {\n element.canEditCustomerEngagementReportOfOthers=true;\n element.canViewCustomerEngagementReportOfOthers=true;\n }\n else\n {\n element.canEditCustomerEngagementReportOfOthers=this.canEditCustomerEngagementReportOfOthers;\n element.canViewCustomerEngagementReportOfOthers=this.canViewCustomerEngagementReportOfOthers;\n }\n }); \n }\n\n}\n\n\n\n\n","
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n
    \n \n\n \n \n {{ date.day }}\n \n \n
    \n
    \n\n\n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n \n
    \n \n
    \n\n\n\n\n
    \n
    \n \n \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    {{ item.EntityName }}
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n\n\n\n Bulk Edit\n \n  \n Add\n Activities\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    CustomerActivity TypeParticipantsSubjectDue DateActivity StatusDue By Actions
    \n\n
    \n
    No Records found
    \n
    \n
    \n\n
    \n
    \n
    \n\n\n\n\n\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EntityRecord } from 'src/app/Model/ActivityModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { Location } from '@angular/common';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-view-activity',\n templateUrl: './view-activity.component.html',\n styleUrls: ['./view-activity.component.scss']\n})\nexport class ViewActivityComponent implements OnInit {\n canEditCustomerEngagementReportOfOthers: any;\n canViewCustomerEngagementReportOfOthers: any;\n\n constructor(\n private location: Location,\n private router: Router,\n private activityService: ActivityService,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private activeModal: NgbActiveModal) { }\n\n // relatedEntityRecords: EntityRecord[] = [];\n frmData: any = [];\n ActivityId: number;\n\n @Input() Activity;\n @Input() showLoader: boolean = false;\n @Input() showEditAndCancelBtn = true;\n inPopUpMode: boolean;\n\n ngOnInit() {\n this.inPopUpMode = this.Activity?.inPopUpMode ? this.Activity?.inPopUpMode : false;\n this.canEditCustomerEngagementReportOfOthers = this.Activity?.canEditCustomerEngagementReportOfOthers;\n this.canViewCustomerEngagementReportOfOthers = this.Activity?.canViewCustomerEngagementReportOfOthers;\n this.showLoader =true;\n this.ActivityId = this.Activity?.activityId ? this.Activity?.activityId : this.route.snapshot.params[\"id\"];\n this.getActivityById(this.ActivityId);\n this.showLoader =false;\n }\n\n getActivityById(id: number) {\n this.showLoader = true;\n this.activityService.getActivityById(id).subscribe(data => {\n this.frmData = data; \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to Load activity details!\");\n this.showLoader = false;\n });\n }\n\n goToEdit(ActivityId) {\n this.router.navigate(['/Edit-Activity', ActivityId]);\n this.activeModal.close();\n }\n\n goBack() {\n this.location.back();\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n \n checkAccess()\n {\n const participantsIdArray = this.frmData.ParticipantsID.split(',');\n console.log(localStorage.getItem('UserID'));\n \n if((participantsIdArray.filter(x=>x==localStorage.getItem('UserID')).length>0 ||this.frmData.ActivityOwner==localStorage.getItem('UserID')))\n {\n this.frmData.canEditCustomerEngagementReportOfOthers=true;\n this.frmData.canViewCustomerEngagementReportOfOthers=true;\n }\n else\n {\n this.frmData.canEditCustomerEngagementReportOfOthers=this.canEditCustomerEngagementReportOfOthers;\n this.frmData.canViewCustomerEngagementReportOfOthers=this.canViewCustomerEngagementReportOfOthers;\n } \n }\n}\n","\n\n
    \n
    \n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n View Activity\n

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n {{ frmData?.ActivityType }}\n
    \n\n \n \n\n
    \n\n\n
    \n \n
    \n {{ frmData?.OwnerName }}\n
    \n
    \n \n
    \n {{ frmData?.Subject }}\n
    \n
    \n
    \n\n
    \n \n
    \n {{ frmData?.ActivityStatus }}\n
    \n
    Status is required
    \n
    \n
    \n
    \n \n
    \n
    \n {{ frmData?.PlannedDueDatetime | date:'dd-MM-yyyy'}}\n
    \n
    \n
    \n\n\n
    \n \n
    \n
    \n {{ frmData?.ActualStartDatetime | date:'dd-MM-yyyy'}}\n
    \n
    \n
    \n \n
    \n
    \n {{ frmData?.ActualCompletionDatetime | date:'dd-MM-yyyy' }}\n
    \n
    \n
    \n\n
    \n \n
    \n {{ frmData?.ActivityPurpose }}\n
    \n
    purpose is required
    \n
    \n
    \n
    \n \n
    \n {{ frmData?.PurposeDesc }}\n
    \n
    \n\n\n
    \n \n
    \n {{ frmData?.ActivityOutcome }}\n
    \n
    Priority is required
    \n
    \n
    \n
    \n \n
    \n {{ frmData?.OutcomeDesc }}\n
    \n
    \n\n\n\n\n\n
    \n \n
    \n {{ frmData?.Comment }}\n
    \n
    \n\n
    \n\n\n \n
    \n
    \n {{ participant.ParticipantName }}\n
    \n
    \n\n
    \n\n \n\n
    \n
      \n
    • {{ activityLinked.EntityTypeName }} :\n  \n {{ activityLinked.EntityName }}\n
    • \n
    \n
    \n\n\n\n
    \n
    \n
    \n \n   \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n","import { Location } from '@angular/common';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CustomerModel } from 'src/app/Model/CustomerModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\n\n@Component({\n selector: 'app-customer-engagement-details',\n templateUrl: './customer-engagement-details.component.html',\n styleUrls: ['./customer-engagement-details.component.scss']\n})\nexport class CustomerEngagementDetailsComponent implements OnInit {\n \n constructor(private route: ActivatedRoute, private Service: CommonService, private engagementReportService: EngagementReportService, private toastr: ToastrService, private location: Location,\n private appConfigService: AppConfigService ) { }\n \n showLoader: boolean;\n CustomerModel: CustomerModel = new CustomerModel();\n\n reportTypeId_RoleWise: string = '';\n \n customerId: any;\n\n customerEnquiries: any;\n roleWiseInfo: any;\n roleWiseInfoKeys: any;\n displayedColumns: string[] = ['EnquiryNo', 'EnquiryDate', 'QuotationNo', 'QuotationAmount', 'QuotationStatus', 'EngagementActivity', 'EngagementType', 'ActivityOutcome', 'ActivityOutcomeDescription', 'WeissAttendees', 'ActivityStatus', 'InitiatorName'];\n dataSource: MatTableDataSource;\n attendeesOfWhichComapany : any;\n\n @ViewChild('paginator') paginator: MatPaginator;\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n this.attendeesOfWhichComapany = appConfig.attendeesOfWhichComapany;\n this.customerId = this.route.snapshot.queryParams['CustId'];\n this.getCustomerDetailsByCustId();\n this.getCustomerEnquiryActivitiesByCustId();\n this.getRoleWiseInfoByCustId();\n }\n\n getCustomerDetailsByCustId() {\n this.showLoader = true\n\n let queryString = \"\";\n queryString = \"id=\" + this.customerId;\n\n this.Service.GetData('Customer', 'GetById', queryString).subscribe((data: any) => {\n this.CustomerModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getCustomerEnquiryActivitiesByCustId() {\n let body = {\n reportTypeId: 'REP_Cust_Enquiry_Activity_Engagement',\n entityId: this.customerId\n };\n\n this.engagementReportService.getReportData(body).subscribe((data: any) => {\n this.customerEnquiries = new MatTableDataSource(data);\n this.customerEnquiries.paginator = this.paginator;\n })\n }\n\n getRoleWiseInfoByCustId() {\n let body = {\n reportTypeId: 'REP_RoleWise_ActivityType_Count',\n entityTypeId: 1,\n entityId: this.customerId\n };\n\n this.engagementReportService.getReportData(body).subscribe((data: any) => {\n this.roleWiseInfo = data;\n if(this.roleWiseInfo.length) {\n this.roleWiseInfoKeys = Object.keys(this.roleWiseInfo[0]);\n }\n // console.log(this.roleWiseInfo);\n // console.log(this.roleWiseInfoKeys);\n \n })\n }\n\n\n gobackNavigate() {\n this.location.back();\n }\n\n}","\n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n

    Customer Engagement Details

    \n
    \n
    \n
    \n\n \n\n
    \n
    \n \n\n \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Basic Customer Information\n

    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.CustomerCode}}\n
    \n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.CompanyName}}\n
    \n
    \n\n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.AddressHeadquaters}}\n
    \n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.AddressPlant}}\n
    \n
    \n\n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.City}}\n
    \n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.State}}\n
    \n
    \n\n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.PINCode}}\n
    \n
    \n \n
    \n {{CustomerModel.BasicCustomerInformationModel.MailAddress}}\n
    \n
    \n\n\n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n

    \n Customer Engagement Summary\n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{data}}
    \n {{data[keyName] ? data[keyName] : 0}}\n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n

    \n Enquiry Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n\n \n \n\n
    Enquiry No.\n {{enquiry.EnquiryNumber}}\n Enquiry Date{{enquiry.EnquiryDate | date}}\n Quotation No.{{enquiry.QuotationNumber}}Quotation Amount (Rs)\n {{enquiry.QuotationFinalAmt}}\n Quotation Status\n {{enquiry.EnquiryConfirmationStatus}}Engagement Activity\n {{enquiry.LastActivitySubject}}\n Engagement Type{{enquiry.LastActivityType}}Activity Outcome{{enquiry.LastActivityOutCome}}\n Activity Outcome Description\n {{enquiry.LastActivityOutComeDescription}}{{attendeesOfWhichComapany}} Attendees\n {{enquiry.LastActivityParticipants}}\n Activity Status{{enquiry.LastActivityStatus}}\n Initiator Name{{enquiry.EnquiryInitiator}}
    \n\n \n
    \n\n
    \n
    \n \n\n\n \n
    \n
    \n
    \n
    \n

    \n Engagement Activities\n

    \n
    \n
    \n
    \n
      \n
    • \n Add Activity \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n

    \n Planned vs Actual\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n\n\n\n \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { Location } from '@angular/common';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\n\n@Component({\n selector: 'app-customer-engagement',\n templateUrl: './customer-engagement.component.html',\n styleUrls: ['./customer-engagement.component.scss']\n})\nexport class CustomerEngagementComponent implements OnInit {\n\n constructor(private engagementReportService: EngagementReportService, private location: Location) { }\n\n displayedColumns: string[] = ['companyName', 'customerCode', 'regionName'];\n dataSource: MatTableDataSource;\n\n @ViewChild('paginator') paginator: MatPaginator;\n\n ngOnInit() {\n //this.getCustomerInfo();\n }\n\n getCustomerInfo() {\n let data = {\n reportTypeId: 'REP_Customer_Details',\n };\n this.engagementReportService.getReportData(data).subscribe((data: any) => {\n this.dataSource = new MatTableDataSource(data);\n this.dataSource.paginator = this.paginator;\n })\n }\n}\n","","import { AfterViewInit, Component, DoCheck, Input, OnDestroy } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { EngagementReportService } from \"src/app/Service/engagement-report.service\";\n\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\n\n@Component({\n selector: \"app-activity-status-by-month\",\n templateUrl: \"./activity-status-by-month.component.html\",\n styleUrls: [\"./activity-status-by-month.component.scss\"],\n})\nexport class ActivityStatusByMonthComponent implements AfterViewInit, OnDestroy, DoCheck {\n constructor(private engagementReport: EngagementReportService) { }\n\n subscription: Subscription;\n private chart: am4charts.XYChart;\n\n @Input() date: { from: any, to: any };\n \n prevDateFrom: any = '';\n prevDateTo: any = '';\n\n ngAfterViewInit(): void {\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_MONTH\",\n // StartDate: null,\n // EndDate: null,\n // ActivityTypeId: null,\n // ActivityStatusId: null\n };\n this.getData(filters)\n }\n\n ngDoCheck(): void { \n \n if(this.date.from !== this.prevDateFrom || this.date.to !== this.prevDateTo) {\n\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_MONTH\",\n StartDate: this.date.from,\n EndDate: this.date.to,\n }\n\n this.prevDateFrom = this.date.from;\n this.prevDateTo = this.date.to;\n this.getData(filters);\n }\n }\n\n getData(filters) {\n this.subscription = this.engagementReport.getReportData(filters).subscribe(\n data => this.showChart(data),\n err => console.log(err)\n );\n }\n\n showChart(data: any) {\n\n am4core.useTheme(am4themes_animated);\n\n let chart = am4core.create(\"Activity-Status-Month-Chart\", am4charts.XYChart);\n\n // transforming and providing the chart data\n chart.data = this.engagementReport.transformChartData(\n 'MonthYear',\n 'ActivityCount',\n 'ActivityStatusDesc',\n data\n );\n\n // creating category axis based on DueMonth\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"MonthYear\";\n categoryAxis.title.text = \"Month\";\n categoryAxis.title.fontSize = \"16px\";\n categoryAxis.title.fontWeight = \"bold\";\n categoryAxis.title.margin(10, 10, 10, 10);\n categoryAxis.renderer.cellStartLocation = 0.2;\n categoryAxis.renderer.cellEndLocation = 0.8;\n\n // creating value axis on count by amcharts\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.title.text = \"Count\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.title.fontWeight = \"bold\";\n\n\n let seriesNames = this.engagementReport.getAllSeriesName('ActivityStatusDesc', data);\n\n seriesNames.forEach((seriesname, index) => {\n let seriescolor = this.engagementReport.seriesColors[index]\n createSeries(seriesname, seriescolor)\n })\n \n // create series for each series name\n function createSeries(field: any, color: any) {\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.name = field;\n series.columns.template.tooltipText = \"Series: {name}\\nCategory: {categoryX}\\nValue: {valueY}\";\n series.columns.template.width = am4core.percent(80);\n\n series.columns.template.fill = color;\n series.columns.template.stroke = am4core.color(color);\n\n series.dataFields.valueY = field;\n series.dataFields.categoryX = \"MonthYear\";\n }\n\n // Enable export\n //chart.exporting.menu = new am4core.ExportMenu();\n //chart.exporting.filePrefix = \"Activity_Chart\";\n\n chart.legend = new am4charts.Legend();\n\n chart.scrollbarX = new am4core.Scrollbar();\n\n // chart.events.on(\"ready\", function () {\n // categoryAxis.zoomToCategories(\"Jan\", \"Jun\");\n // });\n\n this.chart = chart;\n }\n\n ngOnDestroy(): void {\n if (this.subscription) this.subscription.unsubscribe();\n if (this.chart) this.chart.dispose();\n }\n}\n\n\n","
    \n
    \n
    \n
    \n

    \n Report by Status and Month\n

    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-engagement-reports',\n templateUrl: './engagement-reports.component.html',\n styleUrls: ['./engagement-reports.component.scss']\n})\nexport class EngagementReportsComponent implements OnInit {\n\n showLoader: any;\n\n datefrom: any;\n dateto: any;\n\n date: any = {};\n clicked: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n this.showLoader = true;\n }\n ngAfterViewInit(): void {\n this.showLoader = false;\n }\n\n applyFilters() {\n if (this.datefrom && this.dateto) {\n if (new Date(this.datefrom) <= new Date(this.dateto)) {\n this.date.from = this.datefrom;\n this.date.to = this.dateto;\n this.clicked = true\n }\n }\n }\n\n removeFilters() {\n if(this.clicked && (this.datefrom && this.dateto)) {\n this.datefrom = '';\n this.dateto = '';\n this.date.from = this.datefrom;\n this.date.to = this.dateto;\n }\n else {\n this.datefrom = '';\n this.dateto = '';\n }\n }\n}\n","\n\n\n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n \n Apply\n \n \n Clear\n \n
    \n\n
    \n
    \n
    \n
    \n\n\n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n \n\n
    \n
    \n
    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { Component, AfterViewInit, Input, DoCheck, OnDestroy } from '@angular/core';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated'\n\nimport { Subscription } from 'rxjs';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\n@Component({\n selector: 'app-report-by-activity-status-type',\n templateUrl: './report-by-activity-status-type.component.html',\n styleUrls: ['./report-by-activity-status-type.component.scss']\n})\nexport class ReportByActivityStatusTypeComponent implements AfterViewInit, DoCheck, OnDestroy {\n\n constructor(private engagementReport: EngagementReportService) { }\n\n subscription: Subscription;\n private chart: am4charts.XYChart;\n\n @Input() date: { from: any, to: any };\n\n prevDateFrom: any;\n prevDateTo: any;\n\n ngAfterViewInit(): void {\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_Type\"\n }\n this.getData(filters)\n }\n\n ngDoCheck(): void {\n if(this.date.from !== this.prevDateFrom || this.date.to !== this.prevDateTo) {\n\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_Type\",\n StartDate: this.date.from,\n EndDate: this.date.to,\n }\n\n this.prevDateFrom = this.date.from;\n this.prevDateTo = this.date.to;\n this.getData(filters);\n }\n }\n\n getData(filters) {\n this.engagementReport.getReportData(filters).subscribe(\n data => this.showChart(data),\n err => console.log(err)\n );\n }\n\n showChart(data: any) {\n\n am4core.useTheme(am4themes_animated);\n\n let chart = am4core.create(\"Activity-Status-Type-Chart\", am4charts.XYChart);\n\n // transforming and providing the chart data\n chart.data = this.engagementReport.transformChartData(\n 'ActivityStatusDesc',\n 'ActivityCount',\n 'ActivityTypeDesc',\n data\n );\n\n // creating category axis based on DueMonth\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"ActivityStatusDesc\";\n categoryAxis.title.text = \"Status\"; \n categoryAxis.title.fontSize = \"16px\";\n categoryAxis.title.fontWeight = \"bold\";\n categoryAxis.title.margin(10, 10, 10, 10);\n categoryAxis.renderer.cellStartLocation = 0.2;\n categoryAxis.renderer.cellEndLocation = 0.8;\n\n // creating value axis on count by amcharts\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.title.text = \"Count\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.title.fontWeight = \"bold\";\n\n\n let seriesNames = this.engagementReport.getAllSeriesName('ActivityTypeDesc', data);\n \n seriesNames.forEach((seriesname, index) => {\n let seriescolor = this.engagementReport.seriesColors[index]\n createSeries(seriesname, seriescolor)\n })\n \n // create series for each series name\n function createSeries(field: any, color: any) {\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.name = field;\n series.columns.template.tooltipText = \"Series: {name}\\nCategory: {categoryX}\\nValue: {valueY}\";\n series.columns.template.width = am4core.percent(80);\n\n series.columns.template.fill = color;\n series.columns.template.stroke = am4core.color(color);\n\n series.dataFields.valueY = field;\n series.dataFields.categoryX = \"ActivityStatusDesc\";\n }\n\n chart.legend = new am4charts.Legend();\n\n this.chart = chart;\n }\n \n ngOnDestroy(): void {\n if(this.subscription) this.subscription.unsubscribe();\n if(this.chart) this.chart.dispose();\n }\n}\n","
    \n
    \n
    \n
    \n

    \n Report by Status and Type \n

    \n
    \n
    \n
    \n
    \n
    \n\n \n \n
    \n
    \n
    \n
    ","import { AfterViewInit, Component, DoCheck, Input, OnDestroy } from '@angular/core';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated'\n\nimport { Subscription } from 'rxjs';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\n\n\n@Component({\n selector: 'app-report-by-activity-type-month',\n templateUrl: './report-by-activity-type-month.component.html',\n styleUrls: ['./report-by-activity-type-month.component.scss']\n})\nexport class ReportByActivityTypeMonthComponent implements AfterViewInit, DoCheck, OnDestroy {\n\n constructor(private engagementReport: EngagementReportService) { }\n\n subscription: Subscription;\n private chart: am4charts.XYChart;\n\n @Input() date: { from: any, to: any };\n\n prevDateFrom: any;\n prevDateTo: any;\n\n ngAfterViewInit(): void {\n let filters = {\n reportTypeId: \"REP_BY_ACT_Type_MONTH\",\n }\n this.getData(filters);\n }\n\n ngDoCheck(): void {\n if(this.date.from !== this.prevDateFrom || this.date.to !== this.prevDateTo) {\n\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_Type\",\n StartDate: this.date.from,\n EndDate: this.date.to,\n }\n\n this.prevDateFrom = this.date.from;\n this.prevDateTo = this.date.to;\n this.getData(filters);\n }\n }\n\n getData(filters) {\n this.subscription = this.engagementReport.getReportData(filters).subscribe(\n data => this.showChart(data),\n err => console.log(err)\n );\n }\n\n showChart(data) {\n\n am4core.useTheme(am4themes_animated);\n \n let chart = am4core.create(\"Activity-Type-Month-Chart\", am4charts.XYChart)\n\n // transforming and providing the chart data\n chart.data = this.engagementReport.transformChartData(\n 'MonthYear',\n 'ActivityCount',\n 'ActivityTypeDesc',\n data\n );\n\n // creating category axis based on DueMonth\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis())\n categoryAxis.dataFields.category = \"MonthYear\";\n categoryAxis.title.text = \"Month\";\n categoryAxis.title.fontSize = \"16px\";\n categoryAxis.title.fontWeight = \"bold\";\n categoryAxis.title.margin(10, 10, 10, 10);\n categoryAxis.renderer.cellStartLocation = 0.2;\n categoryAxis.renderer.cellEndLocation = 0.8;\n\n // creating value axis on count by amcharts\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.title.text = \"Count\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.title.fontWeight = \"bold\";\n\n\n let seriesNames = this.engagementReport.getAllSeriesName('ActivityTypeDesc', data);\n \n seriesNames.forEach((seriesname, index) => {\n let seriescolor = this.engagementReport.seriesColors[index]\n createSeries(seriesname, seriescolor)\n })\n \n // create series for each series name\n function createSeries(field: any, color: any) {\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.name = field;\n series.columns.template.tooltipText = \"Series: {name}\\nCategory: {categoryX}\\nValue: {valueY}\";\n series.columns.template.width = am4core.percent(80);\n\n series.columns.template.fill = color;\n series.columns.template.stroke = am4core.color(color);\n\n series.dataFields.valueY = field;\n series.dataFields.categoryX = \"MonthYear\";\n }\n\n \n chart.legend = new am4charts.Legend();\n\n chart.scrollbarX = new am4core.Scrollbar();\n\n // chart.events.on(\"ready\", function () {\n // categoryAxis.zoomToCategories(\"Jan\", \"Jun\");\n // });\n\n this.chart = chart;\n }\n\n ngOnDestroy(): void {\n if(this.subscription) this.subscription.unsubscribe();\n if(this.chart) this.chart.dispose();\n }\n\n}\n","
    \n
    \n
    \n
    \n

    \n Report by Type and Month\n

    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    ","import { Component, AfterViewInit, OnDestroy, DoCheck, Input } from '@angular/core';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated'\n\nimport { Subscription } from 'rxjs';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\n\n\n\n@Component({\n selector: 'app-report-by-activity-type-status',\n templateUrl: './report-by-activity-type-status.component.html',\n styleUrls: ['./report-by-activity-type-status.component.scss']\n})\nexport class ReportByActivityTypeStatusComponent implements AfterViewInit, DoCheck, OnDestroy {\n\n constructor(private engagementReport: EngagementReportService) { }\n\n subscription: Subscription;\n private chart: am4charts.XYChart;\n\n @Input() date: { from: any, to: any };\n\n prevDateFrom: any;\n prevDateTo: any;\n\n ngAfterViewInit(): void {\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_Type\",\n }\n this.getData(filters);\n }\n\n ngDoCheck(): void {\n if(this.date.from !== this.prevDateFrom || this.date.to !== this.prevDateTo) {\n\n let filters = {\n reportTypeId: \"REP_BY_ACT_Status_Type\",\n StartDate: this.date.from,\n EndDate: this.date.to,\n }\n\n this.prevDateFrom = this.date.from;\n this.prevDateTo = this.date.to;\n this.getData(filters);\n }\n }\n\n getData(filters) {\n this.engagementReport.getReportData(filters).subscribe(\n data => this.showChart(data),\n err => console.log(err)\n );\n }\n\n showChart(data: any) {\n am4core.useTheme(am4themes_animated);\n\n let chart = am4core.create(\"Activity-Type-Status-Chart\", am4charts.XYChart);\n\n // transforming and providing the chart data\n chart.data = this.engagementReport.transformChartData(\n 'ActivityTypeDesc',\n 'ActivityCount',\n 'ActivityStatusDesc',\n data\n );\n\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"ActivityTypeDesc\";\n \n categoryAxis.title.text = \"Type\"; \n categoryAxis.title.fontSize = \"16px\";\n categoryAxis.title.fontWeight = \"bold\";\n categoryAxis.title.margin(10, 10, 10, 10);\n categoryAxis.renderer.cellStartLocation = 0.2;\n categoryAxis.renderer.cellEndLocation = 0.8;\n\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.title.text = \"Count\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.title.fontWeight = \"bold\";\n\n\n let seriesNames = this.engagementReport.getAllSeriesName('ActivityStatusDesc', data);\n \n seriesNames.forEach((seriesname, index) => {\n let seriescolor = this.engagementReport.seriesColors[index]\n createSeries(seriesname, seriescolor)\n })\n \n // create series for each series name\n function createSeries(field: any, color: any) {\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.name = field;\n series.columns.template.tooltipText = \"Series: {name}\\nCategory: {categoryX}\\nValue: {valueY}\";\n series.columns.template.width = am4core.percent(80);\n\n series.columns.template.fill = color;\n series.columns.template.stroke = am4core.color(color);\n\n series.dataFields.valueY = field;\n series.dataFields.categoryX = \"ActivityTypeDesc\";\n }\n\n\n chart.legend = new am4charts.Legend();\n\n this.chart = chart;\n }\n \n ngOnDestroy(): void {\n if(this.subscription) this.subscription.unsubscribe();\n if(this.chart) this.chart.dispose();\n }\n}\n","
    \n
    \n
    \n
    \n

    \n Status of my Engagements\n

    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    ","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ReportFilterViewModel } from 'src/app/Model/ReportFilterModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { ListActivityComponent } from '../activity/list-activity/list-activity.component';\n\n@Component({\n selector: 'app-my-activity',\n templateUrl: './my-activity.component.html',\n styleUrls: ['./my-activity.component.scss']\n})\nexport class MyActivityComponent implements OnInit {\n\n constructor(public dialog: MatDialog, private service: ActivityService) { }\n\n isListView: boolean = true;\n\n events = [];\n\n ngOnInit(): void {\n localStorage.removeItem('ViewType-A');\n localStorage.setItem('ViewType', 'ListView');\n }\n\n\n\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    My Activities

    \n
    \n
    \n
    \n\n
      \n\n
    \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivityLinkageEntityType, ActivityStatusByType, ActivityType, EntityRecord, User } from 'src/app/Model/ActivityModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDateStruct, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DatePipe } from '@angular/common';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { Observable } from 'rxjs';\nimport { ViewActivityComponent } from '../activity/view-activity/view-activity.component';\n@Component({\n selector: 'app-planned-vs-actual-activity',\n templateUrl: './planned-vs-actual-activity.component.html',\n styleUrls: ['./planned-vs-actual-activity.component.scss']\n})\nexport class PlannedVsActualActivityComponent implements OnInit {\n subscription: any;\n resp: any;\n hide: boolean = false;\n activities: any; // Array to store the activity data\n day: string = '';\n datetime: string = '';\n activityStatusFilter: number;\n activityTypeFilter: number;\n activityTypeMaster: ActivityType[] = [];\n activityStatusByTypeMaster: ActivityStatusByType[] = [];\n allEntityTypesMaster: ActivityLinkageEntityType[] = [];\n filterActivityForm: any = {};\n entityTypeFilterArray: any = [];\n FromDateNgb: NgbDate | null;\n FromDate: string | null;\n ToDateNgb: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n minDate: NgbDateStruct;\n maxDate: NgbDateStruct;\n datePipe = new DatePipe('en-US');\n allUserMaster: User[] = [];\n partid: string = null;\n\n accesspermissionobj: AccessPermissionModel[] = Array();\n AccesspermissionForRole: any[] = [];\n canViewCustomerEngagementReportOfOthers: boolean = true;\n Role: any;\n\n @Input() customerId: number;\n @Input() formDetails: string;\n\n constructor(private toastr: ToastrService, private reportService: EngagementReportService, private activityService: ActivityService,\n public formatter: NgbDateParserFormatter, private cd: ChangeDetectorRef, private calendar: NgbCalendar, private accessservice: AccessPermissionService, private modalService: NgbModal) {\n const current = new Date();\n this.minDate = { year: current.getFullYear(), month: current.getMonth(), day: current.getDate() };\n this.maxDate = { year: current.getFullYear() + 1, month: current.getMonth() + 5, day: current.getDate() };\n }\n @Input()\n showLoader: boolean = false;\n ngOnInit(): void {\n \n this.filterActivityForm.ActivityTypeId = null;\n this.filterActivityForm.ActivityStatusId = null;\n this.filterActivityForm.EntityTypeId = this.customerId ? 1 : null;\n this.filterActivityForm.EntityId = this.customerId ? this.customerId : null;\n this.filterActivityForm.ActivityOwnerId = localStorage.getItem('UserID');\n this.Role = localStorage.getItem(\"UserRole\");\n this.partid = this.filterActivityForm.ActivityOwnerId;\n this.filterActivityForm.IsOwner = true;\n const today = this.calendar.getToday();\n const currentYear = today.year;\n const currentMonth = today.month;\n this.FromDateNgb = new NgbDate(currentYear, currentMonth, 1);\n const lastDay = this.getLastDayOfMonth(currentYear, currentMonth);\n this.ToDateNgb = new NgbDate(currentYear, currentMonth, lastDay);\n\n this.GetActivityTypeMaster();\n this.GetActivityStatusMaster();\n this.GetEntityTypesMaster();\n \n this.activityService.getallUserMaster().subscribe((data: User[]) => {\n this.allUserMaster = data;\n });\n \n this.getAccess().subscribe(x=>{\n \n let filters = {}\n if(this.formDetails == \"Customer_Engagement\"){\n filters = {\n reportTypeId: \"REP_BY_ACTUAL_VS_PLANNED\",\n StartDate: null,\n EndDate: null,\n IsOwner: false,\n EntityTypeId: this.filterActivityForm.EntityTypeId, \n EntityId: this.filterActivityForm.EntityId,\n ParticipantId: this.partid,\n };\n }\n else{\n filters = {\n reportTypeId: \"REP_BY_ACTUAL_VS_PLANNED\",\n StartDate: this.convertDate(this.FromDateNgb),\n EndDate: this.convertDate(this.ToDateNgb),\n IsOwner: this.filterActivityForm.IsOwner,\n EntityTypeId: this.filterActivityForm.EntityTypeId, \n EntityId: this.filterActivityForm.EntityId,\n ParticipantId: this.partid\n };\n }\n this.getData(filters); \n \n });\n }\n\n getLastDayOfMonth(year: number, month: number): number {\n // Create a new date for the first day of the next month\n const nextMonth = month === 12 ? 1 : month + 1;\n const nextYear = month === 12 ? year + 1 : year;\n const nextMonthDate = new Date(nextYear, nextMonth - 1, 1);\n\n // Subtract one day from the first day of the next month to get the last day of the current month\n const lastDayOfMonth = new Date(nextMonthDate.getTime() - 86400000).getDate();\n return lastDayOfMonth;\n }\n\n\n getData(filters) {\n this.showLoader = true;\n this.subscription = this.reportService.getReportData(filters).subscribe((data: any) => {\n this.showData(data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to activity list!\");\n this.showLoader = false;\n });\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n onSubmit(filterActivityForm: any) {\n\n\n if (Object.keys(filterActivityForm).length == 0 && (this.FromDateNgb == null && this.ToDateNgb == null)) {\n this.toastr.error(\"Please select filter!\");\n return\n }\n if (this.FromDateNgb == null || this.ToDateNgb == null) {\n this.toastr.error(\"Please select date range!\");\n return\n }\n\n this.showLoader = true;\n var frmdate: string;\n var ToDateNgb: string;\n if (this.FromDateNgb != null) {\n frmdate = this.convertDate(new NgbDate(this.FromDateNgb.year, this.FromDateNgb.month, this.FromDateNgb.day))\n }\n\n if (this.ToDateNgb != null) {\n ToDateNgb = this.convertDate(new NgbDate(this.ToDateNgb.year, this.ToDateNgb.month, this.ToDateNgb.day))\n }\n let filters = {\n reportTypeId: \"REP_BY_ACTUAL_VS_PLANNED\",\n StartDate: frmdate ?? null,\n EndDate: ToDateNgb ?? null,\n ActivityTypeId: filterActivityForm.ActivityTypeId ?? null,\n ActivityStatusId: filterActivityForm.ActivityStatusId ?? null,\n subject: filterActivityForm.subject ?? null,\n ParticipantId: filterActivityForm.ActivityOwnerId ?? null,\n EntityTypeId: filterActivityForm.EntityTypeId ?? null,\n EntityId: filterActivityForm.EntityId ?? null,\n IsOwner: this.filterActivityForm.IsOwner\n };\n this.reportService.getReportData(filters).subscribe((res: any) => {\n this.showData(res)\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to activity list!\");\n this.showLoader = false;\n });\n }\n\n showData(data: any) {\n this.activities = this.reportService.convertArrayToObject(data);\n }\n getDay(dateString) {\n const dateObject = new Date(dateString);\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n this.day = days[dateObject.getDay()];\n return this.day;\n }\n getDateDetails(dateString) {\n const dateObject = new Date(dateString);\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n const Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n this.day = days[dateObject.getDay()];\n this.datetime = dateObject.getDate().toString() + '-' + Months[dateObject.getMonth().toString()] + '-' + dateObject.getFullYear().toString();\n return this.datetime;\n }\n onActivityTypeChange(ActivityTypeId: number,) {\n this.activityService.getActivityStatusMaster(ActivityTypeId).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n });\n }\n\n onEntityTypeChange(EntityTypeId: any) {\n\n this.activityService.getrelatedEntityRecords(EntityTypeId, '').subscribe((data: EntityRecord[]) => {\n this.entityTypeFilterArray = data;\n });\n }\n GetEntityTypesMaster() {\n this.activityService.getallEntityTypesMaster().subscribe((data: ActivityLinkageEntityType[]) => {\n this.allEntityTypesMaster = data;\n });\n }\n GetActivityStatusMaster() {\n this.activityService.getActivityStatusMaster(null).subscribe((data: ActivityStatusByType[]) => {\n this.activityStatusByTypeMaster = data;\n });\n }\n GetActivityTypeMaster() {\n this.activityService.getActivityTypeMaster().subscribe((data) => {\n this.activityTypeMaster = data;\n });\n }\n\n applyFilters() {\n this.activities = this.activities.filter(activity =>\n (this.activityStatusFilter ? activity.ActivityStatusId === this.activityStatusFilter : true) &&\n (this.activityTypeFilter ? activity.ActivityTypeId === this.activityTypeFilter : true)\n );\n }\n removeFilter() {\n const today = this.calendar.getToday();\n const currentYear = today.year;\n const currentMonth = today.month;\ndebugger;\n const lastDay = this.getLastDayOfMonth(currentYear, currentMonth);\n this.FromDateNgb = new NgbDate(currentYear, currentMonth, 1);\n this.ToDateNgb = new NgbDate(currentYear, currentMonth, lastDay);\n if (!this.canViewCustomerEngagementReportOfOthers) {\n this.partid = this.filterActivityForm.ActivityOwnerId;\n }\n let reqBody = {\n reportTypeId: \"REP_BY_ACTUAL_VS_PLANNED\", ActivityTypeId: null, ActivityStatusId: null, Subject: null, StartDate: this.convertDate(this.FromDateNgb),\n EndDate: this.convertDate(this.ToDateNgb), EntityTypeId: null, EntityId: null, ParticipantId: this.partid, IsOwner: false\n }\n this.reportService.getReportData(reqBody).subscribe((res: any) => {\n this.activities = res;\n this.showData(res);\n this.filterActivityForm = {}\n this.activityStatusByTypeMaster = [];\n this.entityTypeFilterArray = [];\n this.FromDateNgb = new NgbDate(currentYear, currentMonth, 1);\n this.ToDateNgb = new NgbDate(currentYear, currentMonth, lastDay);\n this.filterActivityForm.ActivityTypeId = null;\n this.filterActivityForm.ActivityStatusId = null;\n this.filterActivityForm.EntityTypeId = null;\n this.filterActivityForm.EntityId = null;\n this.filterActivityForm.ActivityOwnerId = this.partid;\n });\n }\n\n\n //Date picker\n onDateSelection(date: NgbDate) {\n if (!this.FromDateNgb && !this.ToDateNgb) {\n this.FromDateNgb = date;\n } else if (this.FromDateNgb && !this.ToDateNgb && date && date.after(this.FromDateNgb)) {\n this.ToDateNgb = date;\n } else {\n this.ToDateNgb = null;\n this.FromDateNgb = date;\n }\n }\n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.FromDateNgb)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.ToDateNgb)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.ToDateNgb = this.FromDateNgb;\n this.cd.detectChanges();\n\n }\n }\n ConvertNgbDateToDate(ngbdate: any) {\n\n if (ngbdate != null) {\n //return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n }\n\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n\n isHovered(date: NgbDate) {\n\n return this.FromDateNgb && !this.ToDateNgb && this.hoveredDate && date.after(this.FromDateNgb) && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n\n return this.ToDateNgb && date.after(this.FromDateNgb) && date.before(this.ToDateNgb);\n }\n\n isRange(date: NgbDate) {\n\n return date.equals(this.FromDateNgb) || (this.ToDateNgb && date.equals(this.ToDateNgb)) || this.isInside(date) || this.isHovered(date);\n }\n\n getAccess(): Observable {\n let tracker = this.accessservice.GetAll();\n\n tracker.subscribe((data: any) => {\n this.accesspermissionobj = data;\n this.canViewCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsVisible;\n if (!this.canViewCustomerEngagementReportOfOthers) {\n this.partid = this.filterActivityForm.ActivityOwnerId;\n }\n });\n\n return tracker;\n }\n\n openViewPopup(activityId) {\n const modalRef = this.modalService.open(ViewActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n\n var Activity = {\n activityId: activityId,\n inPopUpMode: true\n };\n\n modalRef.componentInstance.Activity = Activity;\n }\n\n}\n","\n\n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Planned vs Actual\n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n expand_more\n \n \n \n \n
    \n\n
    \n
    \n \n \n
    \n\n\n
    \n \n \n\n
    \n\n\n
    \n \n \n
    \n\n
    \n\n
    \n
    \n \n \n \n {{ date.day }}\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n \n \n \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n\n \n
    \n\n \n
    \n\n
    \n \n\n
    \n \n \n
    \n\n
    \n \n
    \n\n\n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n\n
    \n
    \n \n \n \n
    \n\n
    \n Filter\n \n \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n\n
    \n
    \n
    \n
    \n

    Day

    \n
    \n
    \n

    Planned

    \n
    \n
    \n

    Actual

    \n
    \n
    \n
    \n
    \n
    \n

    {{ getDay(activityObj.key) }}

    \n
    \n
    \n

    {{ getDateDetails(activityObj.key) }}

    \n
    \n\n
    \n\n
    \n
    \n \n \n Customers\n Type\n Activity\n Leads\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{activity.Subject}}\n \n \n \n \n\n \n \n
    \n
    \n\n
    \n
    \n \n \n Customers\n Type\n Activity\n Leads\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{activity.Subject}}\n \n \n \n\n \n \n
    \n
    No Records found
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-avg-discount-month',\n templateUrl: './avg-discount-month.component.html',\n styleUrls: ['./avg-discount-month.component.scss']\n})\nexport class AvgDiscountMonthComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n @Input() Year: number;\n drpdnOption: string = \"Amount\";\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n // am4core.options.onlyShowOnViewport = true;\n this.avgDiscountMonth();\n\n }\n\n ngOnChanges(): void {\n this.avgDiscountMonth();\n }\n\n OnSelectChange() {\n this.avgDiscountMonth();\n }\n\n avgDiscountMonth() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n\n this.commonService.GetData(\"Dashboard\", \"AvgDiscountMonthChart\", queryString).subscribe((data: any) => {\n let result = data;\n\n let chart = am4core.create(\"avgDiscountMonth\", am4charts.XYChart);\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n // Export\n chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = \"Avg Discount/Month\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = result;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"Sales Engineer/Agent Sales\";\n lineSeries.dataFields.valueY = \"value\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries.stroke = am4core.color(\"#FCD202\");\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueY}\";\n labelBullet.label.verticalCenter = \"bottom\";\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to add enquiry details!\");\n this.showLoader = false;\n\n });\n }\n\n avgDiscountMonth_old() {\n this.showLoader = true;\n // Create chart instance\n let chart = am4core.create(\"avgDiscountMonth\", am4charts.XYChart);\n\n // Export\n chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = \"Avg Discount/Month\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = [{\n \"category\": \"Jan\",\n \"value\": 4\n },\n {\n \"category\": \"Feb\",\n \"value\": 5\n },\n {\n \"category\": \"Mar\",\n \"value\": 6\n },\n {\n \"category\": \"Apr\",\n \"value\": 7\n },\n {\n \"category\": \"May\",\n \"value\": 8\n },\n {\n \"category\": \"Jun\",\n \"value\": 9\n },\n {\n \"category\": \"Jul\",\n \"value\": 10\n },\n {\n \"category\": \"Aug\",\n \"value\": 11\n },\n {\n \"category\": \"Sep\",\n \"value\": 6\n },\n {\n \"category\": \"Oct\",\n \"value\": 5\n },\n {\n \"category\": \"Nov\",\n \"value\": 7\n },\n {\n \"category\": \"Dec\",\n \"value\": 8\n }];\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"Sales Engineer/Agent Sales\";\n lineSeries.dataFields.valueY = \"value\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries.stroke = am4core.color(\"#FCD202\");\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueY}\";\n labelBullet.label.verticalCenter = \"bottom\";\n\n this.showLoader = false;\n\n }\n}\n","\n
    \n
    \n
    \n
    \n

    \n Avg Discount/Month\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-bporder-intake',\n templateUrl: './bporder-intake.component.html',\n styleUrls: ['./bporder-intake.component.scss']\n})\nexport class BPOrderIntakeComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Amount\";\n grapthOption: string = \"BP\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n \n this.BPOrderIntake();\n\n }\n\n ngOnChanges(): void {\n if (this.filterChanged) this.BPOrderIntake();\n }\n\n OnSelectChange() {\n this.BPOrderIntake();\n }\n\n BPOrderIntake() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"BPOrderIntakeYTDChart\", queryString).subscribe((data: any) => {\n // Create chart instance\n // am4core.options.onlyShowOnViewport = true;\n let chart = am4core.create(\"BPOrderIntake\", am4charts.XYChart);\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.scrollbarY.parent = chart.rightAxesContainer;\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n // Export\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"BPOrderIntake_YTD\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n \n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n // if (this.currency == 1) CurrencyLabel = \"(USD)\";\n // if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n // if (this.currency == 3) CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"valueL1\": \"BP Order Booked\" + CurrencyLabel,\n \"valueL2\": \"YTD\" + CurrencyLabel,\n \"value3\": \"FC1\" + CurrencyLabel,\n \"value4\": \"FC2\" + CurrencyLabel,\n \"value5\": \"FC3\" + CurrencyLabel,\n\n }\n /**************End Custom Export**************** */\n\n let title = chart.titles.create();\n title.text = \"BP Order Booked vs YTD\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = data;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.currencyCode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.currencyCode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"VND\") valueAxis.title.text = \"VND\";\n if (this.currencyCode == \"IDR\") valueAxis.title.text = \"IDR\";\n if (this.currencyCode == \"PHP\") valueAxis.title.text = \"PHP\";\n if (this.currencyCode == \"THB\") valueAxis.title.text = \"THB\";\n if (this.currencyCode == \"MYR\") valueAxis.title.text = \"MYR\";\n if (this.currencyCode == \"SGD\") valueAxis.title.text = \"SGD\";\n // chart.numberFormatter.numberFormat = \"0.00\";\n }\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n if(ev.target.max == undefined) valueAxis.extraMax = 0.2;\n\n })\n\n if (this.grapthOption == 'BP') {\n title.text = \"BP Order Booked vs YTD\";\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"BP Order Booked\";\n lineSeries.dataFields.valueY = \"valueL1\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries.stroke = am4core.color(\"#4a463c\"); //For line or column color\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueL1}\";\n labelBullet.label.verticalCenter = \"bottom\";\n }\n\n \n\n\n\n\n /******************************************************************************************************* */\n /******************************************************************************************************* */\n if (this.grapthOption == 'FC1') {\n title.text = \"FC1 vs YTD\";\n let lineSeries3 = chart.series.push(new am4charts.LineSeries());\n lineSeries3.name = \"FC1\";\n lineSeries3.dataFields.valueY = \"valueL3\";\n lineSeries3.dataFields.categoryX = \"category\";\n lineSeries3.tooltip.getFillFromObject = false;\n lineSeries3.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries3.stroke = am4core.color(\"#80ff80\"); //For line or column color\n\n let bullet3 = lineSeries3.bullets.push(new am4charts.Bullet());\n bullet3.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet3.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle3 = bullet3.createChild(am4core.Circle);\n circle3.radius = 4;\n circle3.fill = am4core.color(\"#fff\");\n circle3.strokeWidth = 3;\n\n let labelBullet3 = lineSeries3.bullets.push(new am4charts.LabelBullet());\n labelBullet3.label.text = \"{valueL3}\";\n labelBullet3.label.verticalCenter = \"bottom\";\n }\n if (this.grapthOption == 'FC2') {\n title.text = \"FC2 vs YTD\";\n let lineSeries4 = chart.series.push(new am4charts.LineSeries());\n lineSeries4.name = \"FC2\";\n lineSeries4.dataFields.valueY = \"valueL4\";\n lineSeries4.dataFields.categoryX = \"category\";\n lineSeries4.tooltip.getFillFromObject = false;\n lineSeries4.tooltip.background.fill = am4core.color(\"#4a463c\");\n // lineSeries4.stroke = am4core.color(\"#4933FF\"); //For line or column color\n\n let bullet4 = lineSeries4.bullets.push(new am4charts.Bullet());\n bullet4.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet4.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle4 = bullet4.createChild(am4core.Circle);\n circle4.radius = 4;\n circle4.fill = am4core.color(\"#fff\");\n circle4.strokeWidth = 3;\n\n let labelBullet4 = lineSeries4.bullets.push(new am4charts.LabelBullet());\n labelBullet4.label.text = \"{valueL4}\";\n labelBullet4.label.verticalCenter = \"bottom\";\n }\n if (this.grapthOption == 'FC3') {\n title.text = \"FC3 vs YTD\";\n let lineSeries5 = chart.series.push(new am4charts.LineSeries());\n lineSeries5.name = \"FC3\";\n lineSeries5.dataFields.valueY = \"valueL5\";\n lineSeries5.dataFields.categoryX = \"category\";\n lineSeries5.tooltip.getFillFromObject = false;\n lineSeries5.tooltip.background.fill = am4core.color(\"#4a463c\");\n // lineSeries5.stroke = am4core.color(\"#D914B8\"); //For line or column color\n\n let bullet5 = lineSeries5.bullets.push(new am4charts.Bullet());\n bullet5.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet5.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle5 = bullet5.createChild(am4core.Circle);\n circle5.radius = 4;\n circle5.fill = am4core.color(\"#fff\");\n circle5.strokeWidth = 3;\n\n let labelBullet5 = lineSeries5.bullets.push(new am4charts.LabelBullet());\n labelBullet5.label.text = \"{valueL5}\";\n labelBullet5.label.verticalCenter = \"bottom\";\n }\n\n\n\n\n /******************************************************************************************************* */\n /******************************************************************************************************* */\n\n let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n lineSeries2.name = \"YTD\";\n lineSeries2.dataFields.valueY = \"valueL2\";\n lineSeries2.dataFields.categoryX = \"category\";\n lineSeries2.tooltip.getFillFromObject = false;\n lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries2.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n bullet2.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle2 = bullet2.createChild(am4core.Circle);\n circle2.radius = 4;\n circle2.fill = am4core.color(\"#fff\");\n circle2.strokeWidth = 3;\n\n let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n labelBullet2.label.text = \"{valueL2}\";\n labelBullet2.label.verticalCenter = \"bottom\";\n\n chart.legend = new am4charts.Legend();\n\n this.showLoader = false;\n\n }, error => {\n this.showLoader = false;\n\n }\n )\n };\n\n}\n\n","\n
    \n
    \n
    \n
    \n

    \n Order Booked vs YTD\n

    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-business-plan-chart',\n templateUrl: './business-plan-chart.component.html',\n styleUrls: ['./business-plan-chart.component.scss']\n})\nexport class BusinessPlanChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n @Input()\n Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n drpdnOption: string = \"Amount\";\n grapthOption: string = \"BP\";\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n \n this.businessPlanChart();\n\n }\n\n ngOnChanges(): void {\n if (this.filterChanged) this.businessPlanChart();\n }\n\n OnSelectChange() {\n this.businessPlanChart();\n }\n\n businessPlanChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"BPSalesvsYTDChart\", queryString).subscribe((data: any) => {\n // am4core.options.onlyShowOnViewport = true;\n let chart = am4core.create(\"BusinessPlanChart\", am4charts.XYChart);\n // Export\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.scrollbarY.parent = chart.rightAxesContainer;\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"BPSales_YTD\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n // if (this.currency == 1) CurrencyLabel = \"(USD)\";\n // if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n // if (this.currency == 3) CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"valueL1\": \"BusinessPlan\" + CurrencyLabel,\n \"valueL2\": \"YTD\" + CurrencyLabel,\n \"valueL3\": \"FC1\" + CurrencyLabel,\n \"valueL4\": \"FC2\" + CurrencyLabel,\n \"valueL5\": \"FC3\" + CurrencyLabel,\n }\n /**************End Custom Export**************** */\n\n let title = chart.titles.create();\n title.text = \"BP Sales vs YTD\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = data;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n \n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis()); valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.currencyCode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.currencyCode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"VND\") valueAxis.title.text = \"VND\";\n if (this.currencyCode == \"IDR\") valueAxis.title.text = \"IDR\";\n if (this.currencyCode == \"PHP\") valueAxis.title.text = \"PHP\";\n if (this.currencyCode == \"THB\") valueAxis.title.text = \"THB\";\n if (this.currencyCode == \"MYR\") valueAxis.title.text = \"MYR\";\n if (this.currencyCode == \"SGD\") valueAxis.title.text = \"SGD\";\n // chart.numberFormatter.numberFormat = \"0.00\";\n }\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n if (ev.target.max == undefined) valueAxis.extraMax = 0.2;\n })\n\n\n if (this.grapthOption == 'BP') {\n title.text = \"Business Plan vs YTD\";\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"Business Plan\";\n lineSeries.dataFields.valueY = \"valueL1\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries.stroke = am4core.color(\"#4a463c\"); //For line or column color\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueL1}\";\n labelBullet.label.verticalCenter = \"bottom\";\n }\n\n\n \n\n\n\n\n /********************************************************************************************************** */\n /********************************************************************************************************** */\n\n if (this.grapthOption == 'FC1') {\n title.text = \"FC1 vs YTD\";\n let lineSeries3 = chart.series.push(new am4charts.LineSeries());\n lineSeries3.name = \"FC1\";\n lineSeries3.dataFields.valueY = \"valueL3\";\n lineSeries3.dataFields.categoryX = \"category\";\n lineSeries3.tooltip.getFillFromObject = false;\n lineSeries3.tooltip.background.fill = am4core.color(\"#4a463c\");\n // lineSeries3.stroke = am4core.color(\"#80ff80\"); //For line or column color\n\n let bullet3 = lineSeries3.bullets.push(new am4charts.Bullet());\n bullet3.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet3.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle3 = bullet3.createChild(am4core.Circle);\n circle3.radius = 4;\n circle3.fill = am4core.color(\"#fff\");\n circle3.strokeWidth = 3;\n\n let labelBullet3 = lineSeries3.bullets.push(new am4charts.LabelBullet());\n labelBullet3.label.text = \"{valueL3}\";\n labelBullet3.label.verticalCenter = \"bottom\";\n }\n if (this.grapthOption == 'FC2') {\n title.text = \"FC2 vs YTD\";\n let lineSeries4 = chart.series.push(new am4charts.LineSeries());\n lineSeries4.name = \"FC2\";\n lineSeries4.dataFields.valueY = \"valueL4\";\n lineSeries4.dataFields.categoryX = \"category\";\n lineSeries4.tooltip.getFillFromObject = false;\n lineSeries4.tooltip.background.fill = am4core.color(\"#4a463c\");\n // lineSeries4.stroke = am4core.color(\"#4933FF\"); //For line or column color\n\n let bullet4 = lineSeries4.bullets.push(new am4charts.Bullet());\n bullet4.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet4.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle4 = bullet4.createChild(am4core.Circle);\n circle4.radius = 4;\n circle4.fill = am4core.color(\"#fff\");\n circle4.strokeWidth = 3;\n\n let labelBullet4 = lineSeries4.bullets.push(new am4charts.LabelBullet());\n labelBullet4.label.text = \"{valueL4}\";\n labelBullet4.label.verticalCenter = \"bottom\";\n }\n if (this.grapthOption == 'FC3') {\n title.text = \"FC3 vs YTD\";\n let lineSeries5 = chart.series.push(new am4charts.LineSeries());\n lineSeries5.name = \"FC3\";\n lineSeries5.dataFields.valueY = \"valueL5\";\n lineSeries5.dataFields.categoryX = \"category\";\n lineSeries5.tooltip.getFillFromObject = false;\n lineSeries5.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries5.stroke = am4core.color(\"#D914B8\"); //For line or column color\n\n let bullet5 = lineSeries5.bullets.push(new am4charts.Bullet());\n bullet5.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet5.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle5 = bullet5.createChild(am4core.Circle);\n circle5.radius = 4;\n circle5.fill = am4core.color(\"#fff\");\n circle5.strokeWidth = 3;\n\n let labelBullet5 = lineSeries5.bullets.push(new am4charts.LabelBullet());\n labelBullet5.label.text = \"{valueL5}\";\n labelBullet5.label.verticalCenter = \"bottom\";\n }\n\n\n\n\n /********************************************************************************************************** */\n /********************************************************************************************************** */\n let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n lineSeries2.name = \"YTD\";\n lineSeries2.dataFields.valueY = \"valueL2\";\n lineSeries2.dataFields.categoryX = \"category\";\n lineSeries2.tooltip.getFillFromObject = false;\n lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries2.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n bullet2.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle2 = bullet2.createChild(am4core.Circle);\n circle2.radius = 4;\n circle2.fill = am4core.color(\"#fff\");\n circle2.strokeWidth = 3;\n\n let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n labelBullet2.label.text = \"{valueL2}\";\n labelBullet2.label.verticalCenter = \"bottom\";\n\n\n chart.legend = new am4charts.Legend();\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n }\n}\n","\n
    \n
    \n
    \n
    \n

    \n Sales vs YTD\n

    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ChartsModalComponent } from '../charts-modal/charts-modal.component';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ExportToExcelService } from 'src/app/Service/exportToexcel.service';\nimport { UnsubscriptionError } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { EnquiryDetailsChartComponent } from './enquiry-details-chart/enquiry-details-chart.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n\n @Input()\n Year: number = new Date().getFullYear();\n\n @Input()\n showLoader: boolean = false;\n YearList: any[] = [];\n currYear: number = new Date().getFullYear();\n EnquiryChartData: any;\n closeResult: string;\n role: string;\n drpdnOption: string = \"Amount\";\n setCurrency: number = 2;\n setCurrencyCode : string = \"\";\n setRegion: number = 0;\n\n AppRoles = UserRoles;\n opportunitySum: number = 0;\n rfqSum: number = 0;\n quotationSum: number = 0;\n orderintkaeSum: number = 0;\n salesSum: number = 0; appgl\n CurrencyList: any[] = [];\n RegionList: any;\n exprtexcellist: any[];\n excelExportHeaderList: any[];\n currencyname: string = 'EURO';\n regionLocked: boolean;\n filterChanged: boolean = false;\n IsOnInit: boolean;\n @ViewChild('fiterElement') fiterElement: ElementRef;\n constructor(private toastr: ToastrService, private modalService: NgbModal, private commonService: CommonService,\n\n private excelexportservice: ExportToExcelService, private route: ActivatedRoute, private titleService: Title,\n private appConfigService: AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n localStorage.setItem('ViewType', 'dashboardComponent');\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.showLoader = true;\n this.IsOnInit = true;\n window.scroll(0, 0);\n this.role = localStorage.getItem(\"UserRole\");\n if(this.role==\"1\"){\n this.getRegionList();\n }else{\n this.getUserProfileData();\n }\n\n // if (this.role == UserRoles.SalesEngineer || this.role == UserRoles.RegionalSalesManager || this.role == UserRoles.AreaSalesManager\n // || this.role == UserRoles.Distributor || this.role == UserRoles.ChannelPartner || this.role == UserRoles.Agent) {\n // this.regionLocked = true;\n // this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n // localStorage.setItem(\"RegionID\", data.ListRegion);\n // this.setRegion = parseInt(localStorage.getItem(\"RegionID\"));\n // setTimeout(() => {\n // this.fiterElement.nativeElement.focus();\n // }, 0);\n // }, error => {\n // this.toastr.error(\"Failed to load data!\");\n // });\n // }\n // else {\n // this.regionLocked = false;\n // }\n\n this.commonService.RefreshHeaderFun();\n //this.YearList = AppGlobals.YearsConstant;\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch =i;\n this.YearList.push(batch);\n k++;\n }\n this.getCurrencyList();\n this.getEnquiryChartData();\n }\n\n ngOnChanges(): void {\n this.getEnquiryChartData();\n }\n\n OnSelectChange() {\n if (this.drpdnOption == 'Amount') {\n // if (this.setCurrency == 1) this.currencyname = 'USD';\n // if (this.setCurrency == 2) this.currencyname = 'EURO';\n // if (this.setCurrency == 3) this.currencyname = 'INR';\n this.setCurrencyCode = this.CurrencyList.filter(x => x.Id == this.setCurrency)[0]?.CurrencyCode;\n if (this.setCurrencyCode == \"USD\" ) this.currencyname = 'USD';\n if (this.setCurrencyCode == \"Euro\") this.currencyname = 'EURO';\n // if (this.setCurrencyCode == \"INR\") this.currencyname = 'INR';\n if (this.setCurrencyCode == \"VND\") this.currencyname = 'VND';\n if (this.setCurrencyCode == \"IDR\") this.currencyname = 'IDR';\n if (this.setCurrencyCode == \"PHP\") this.currencyname = 'PHP';\n if (this.setCurrencyCode == \"THB\") this.currencyname = 'THB';\n if (this.setCurrencyCode == \"MYR\") this.currencyname = 'MYR';\n if (this.setCurrencyCode == \"SGD\") this.currencyname = 'SGD';\n \n }\n else {\n this.currencyname = \"No's\"\n }\n\n this.getEnquiryChartData();\n\n }\n\n getEnquiryChartData() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.setRegion;\n queryString += \"¤cy=\" + this.setCurrency;\n\n this.commonService.GetData(\"Dashboard\", \"EnquiryChart\", queryString).subscribe((data: any) => {\n this.EnquiryChartData = data;\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n\n }\n\n // getYearList() {\n // this.commonService.GetData(\"Dashboard\", \"GetYearList\", null).subscribe((data: any) => {\n // this.YearList = data;\n // var check = this.YearList.filter(x=>x==new Date().getFullYear())[0];\n // if (check.length==0) this.YearList.push(new Date().getFullYear());\n // },\n // error => {\n // this.toastr.error(\"Failed to load year list!\");\n // this.showLoader = false;\n // });\n // }\n getRegionList() {\n this.commonService.GetData(\"Region\", \"GetAll\", null).subscribe((data: any) => {\n this.RegionList = data;\n this.IsOnInit = false;\n },\n error => {\n this.toastr.error(\"Failed to load region list!\");\n this.showLoader = false;\n });\n }\n getCurrencyList() {\n this.commonService.GetData(\"Currency\", \"GetAll\", null).subscribe((data: any) => {\n this.CurrencyList = data;\n this.setCurrency = this.CurrencyList.filter(x => x.Name == 'Euro (€)')[0]?.Id;\n this.setCurrencyCode = this.CurrencyList.filter(x => x.Name == 'Euro (€)')[0]?.CurrencyCode;\n this.IsOnInit = false;\n },\n error => {\n this.toastr.error(\"Failed to load currency list!\");\n this.showLoader = false;\n });\n }\n\n yearChange(event: any) {\n if (this.IsOnInit) this.filterChanged = false;\n else this.filterChanged = true;\n this.getEnquiryChartData();\n }\n regionChange() {\n if (this.IsOnInit) this.filterChanged = false;\n else this.filterChanged = true;\n this.getEnquiryChartData();\n }\n currencyChange() {\n if (this.drpdnOption == 'Amount') {\n // if (this.setCurrency == 1) this.currencyname = 'USD';\n // if (this.setCurrency == 2) this.currencyname = 'EURO';\n // if (this.setCurrency == 3) this.currencyname = 'INR';\n this.setCurrencyCode = this.CurrencyList.filter(x => x.Id == this.setCurrency)[0]?.CurrencyCode;\n if (this.setCurrencyCode == \"USD\" ) this.currencyname = 'USD';\n if (this.setCurrencyCode == \"Euro\") this.currencyname = 'EURO';\n // if (this.setCurrencyCode == \"INR\") this.currencyname = 'INR';\n if (this.setCurrencyCode == \"VND\") this.currencyname = 'VND';\n if (this.setCurrencyCode == \"IDR\") this.currencyname = 'IDR';\n if (this.setCurrencyCode == \"PHP\") this.currencyname = 'PHP';\n if (this.setCurrencyCode == \"THB\") this.currencyname = 'THB';\n if (this.setCurrencyCode == \"MYR\") this.currencyname = 'MYR';\n if (this.setCurrencyCode == \"SGD\") this.currencyname = 'SGD';\n }\n else {\n this.currencyname = \"No's\"\n }\n this.filterChanged = true;\n this.getEnquiryChartData();\n }\n\n openFunnelChartPopup(regionObj) {\n if (this.drpdnOption == \"Amount\") {\n // if (this.setCurrency == 1) regionObj.Label = 'USD';\n // if (this.setCurrency == 2) regionObj.Label = 'EURO';\n // if (this.setCurrency == 3) regionObj.Label = 'INR';\n if (this.setCurrencyCode == \"USD\" ) regionObj.Label = 'USD';\n if (this.setCurrencyCode == \"Euro\") regionObj.Label = 'EURO';\n // if (this.setCurrencyCode == \"INR\") regionObj.Label = 'INR';\n if (this.setCurrencyCode == \"VND\") regionObj.Label = 'VND';\n if (this.setCurrencyCode == \"IDR\") regionObj.Label = 'IDR';\n if (this.setCurrencyCode == \"PHP\") regionObj.Label = 'PHP';\n if (this.setCurrencyCode == \"THB\") regionObj.Label = 'THB';\n if (this.setCurrencyCode == \"MYR\") regionObj.Label = 'MYR';\n if (this.setCurrencyCode == \"SGD\") regionObj.Label = 'SGD';\n }\n else {\n regionObj.Label = \"No.\";\n }\n const modalRef = this.modalService.open(ChartsModalComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n modalRef.componentInstance.region = regionObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n // if (flag === 1) {\n // } else {\n // // this.saveQuoteLimit(this.QuotationNumber, result);\n // }\n }\n });\n }\n\n export() {\n this.showLoader = true;\n const params = {\n skipHeader: false,\n columnGroups: false,\n skipFooters: false,\n skipGroups: false,\n skipPinnedTop: false,\n skipPinnedBottom: false,\n allColumns: true,\n onlySelected: false,\n suppressQuotes: false,\n fileName: 'demo_File',\n // columnSeparator: document.querySelector(\"#columnSeparator\").value\n };\n this.exprtexcellist = [];\n this.excelExportHeaderList = [];\n const data = AppGlobals.dummyReportData;\n this.excelexportservice.generateExcelwithdata(data, AppGlobals.excelCoulumns, 'demo_file');\n this.showLoader = false;\n }\n\n exporttoexcel(node, index) {\n const row = {};\n let headerlist = AppGlobals.excelCoulumns;\n headerlist.every(function (value, index1, _arr) {\n const tmp = {};\n this.excelExportHeaderList.push(value.field);\n row[value.field] = node.data[value.field];\n let id = node.data[\"id\"];\n tmp['value'] = node.data[value.field];\n tmp['color'] = this.getColorForExcelExport(value.field, node.data[value.field], id);\n row[value.field] = tmp;\n return true;\n }.bind(this));\n this.exprtexcellist.push(row);\n }\n\n getUserProfileData() {\n this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n this.RegionList = data.ListRegion;\n //this.IsOnInit = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n }\n\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Details ({{currencyname}})\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n
    RegionLead/EnquiryRFQQuotations Order Booked Sales
    {{item.Region}}{{item.SubmittedEnquiry}}{{item.RFQ}}{{item.ProposalDelivered}}{{item.OrderConfirmation}}{{item.OrderDelivered}}
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n\n","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { AmChartsService, AmChart } from \"@amcharts/amcharts3-angular\";\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-enquiry-details-chart',\n templateUrl: './enquiry-details-chart.component.html',\n styleUrls: ['./enquiry-details-chart.component.scss']\n})\nexport class EnquiryDetailsChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Amount\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n SubmittedEnquiryCount: any;\n OrderConfirmationCount: any;\n RFQCount: any;\n OrderDeliveredCount: any;\n ProposeDeliveredCount: any;\n reportdata: reportmodel[] = Array();\n cur: string;\n Labelcurr: string = \"\";\n // @Input() mode: string = \"\";\n // Chartidname: string = \"\";\n\n constructor(private toastr: ToastrService, private commonService: CommonService, private amcharts: AmChartsService\n ,private modalService: NgbModal,public modal: NgbActiveModal) \n {\n \n }\n\n ngOnInit() {\n // if(this.mode == \"view\")\n // {\n // this.Chartidname=\"enquiryDetailsChartView\";\n // }else{\n // this.Chartidname = \"enquiryDetailsChart\";\n // }\n // am4core.options.onlyShowOnViewport = true;\n this.enquiryDetailsChart();\n }\n\n ngOnChanges(): void {\n // console.log('oninit', this.filterChanged);\n // if (!(this.IsOnInit && !this.filterChanged)) {\n // this.enquiryDetailsChart();\n // } \n\n if (this.filterChanged) {\n this.enquiryDetailsChart();\n }\n }\n\n OnSelectChange() {\n this.enquiryDetailsChart();\n }\n\n enquiryDetailsChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n // console.log('EnquiryDetailsChart called');\n this.commonService.GetData(\"Dashboard\", \"EnquiryDetailsChart\", queryString).subscribe((data: any) => {\n this.reportdata = [];\n\n // if (this.currency == 1) this.cur = \"USD\";\n // if (this.currency == 2) this.cur = \"EURO\";\n // if (this.currency == 3) this.cur = \"INR\";\n if (this.currencyCode == \"USD\") this.cur = \"USD\";\n if (this.currencyCode == \"Euro\") this.cur = \"EURO\";\n //if (this.currencyCode == \"INR\") this.cur = \"INR\";\n if (this.currencyCode == \"VND\") this.cur = \"VND\";\n if (this.currencyCode == \"IDR\") this.cur = \"IDR\";\n if (this.currencyCode == \"PHP\") this.cur = \"PHP\";\n if (this.currencyCode == \"THB\") this.cur = \"THB\";\n if (this.currencyCode == \"MYR\") this.cur = \"MYR\";\n if (this.currencyCode == \"SGD\") this.cur = \"SGD\";\n if (this.drpdnOption == 'Amount') {\n this.Labelcurr = \"(\" + this.cur + \")\";\n }\n else { this.Labelcurr = \"(No's)\" }\n data.forEach(element => {\n // if (element.value==0) element.value=0.00001;\n var obj = new reportmodel();\n obj.Id = element.Id;\n obj.category = element.category;\n obj.actualvalue = element.value;\n obj.showvalue = 50;\n this.reportdata.push(obj);\n });\n \n var chart = this.amcharts.makeChart(\"enquiryDetailsChart\", {\n \"creditsPosition\": \"bottom-left\",\n \"type\": \"funnel\",\n \"theme\": \"none\",\n \"dataProvider\": this.reportdata,\n \"titleField\": \"category\",\n \"marginRight\": 160,\n \"hideLabelsPercent\": 0,\n \"precision\": this.drpdnOption == 'Amount' ? 2 : 0,\n \"marginLeft\": 15,\n \"FontWeight\": \"bold\",\n \"fontSize\": 12,\n \"labelPosition\": \"center\",\n \"funnelAlpha\": 0.9,\n \"valueField\": \"showvalue\",\n \"title\": \"Sales Funnel\",\n \"startX\": 0,\n \"neckWidth\": \"40%\",\n \"startAlpha\": 0,\n \"outlineThickness\": 1,\n \"neckHeight\": \"30%\",\n \"balloonText\": this.drpdnOption == 'Amount' ? \"[[category]]: \" + this.cur + \" [[actualvalue]]\" : \"[[category]]: No. [[actualvalue]]\",\n \"labelText\": this.drpdnOption == 'Amount' ? \"[[category]]: \" + this.cur + \" [[actualvalue]]\" : \"[[category]]: No. [[actualvalue]]\",\n \"responsive\": {\n \"enabled\": true\n },\n \"export\": {\n \"enabled\": true,\n \"pageOrigin\": false,\n \"fileName\": \"SalesFunnel\",\n \"exportTitles\": true,\n \"exportFields\": [\n \"category\",\n \"actualvalue\"\n ],\n \"columnNames\": {\n \"category\": \"Category\",\n \"actualvalue\": \"Value\" + this.Labelcurr\n },\n \"menu\": [\n {\n \"label\": \"\",\n \"menu\": [\n {\n \"format\": \"png\",\n \"label\": \"PNG\"\n },\n {\n \"format\": \"jpg\",\n \"label\": \"JPG\"\n },\n // {\n // \"format\": \"svg\",\n // \"label\": \"SVG\"\n // },\n {\n \"format\": \"pdf\",\n \"label\": \"PDF\"\n },\n { \"format\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }\n ]\n },\n \n\n });\n \n // chart.export.menu.items = [\n // {\n // \"label\":\"...\",\n // \"menu\":[\n // {\n // \"type\":\"png\",\n // \"label\":\"PNG\"\n // }\n // ]\n // }\n // ]\n });\n\n }\n // OpenChartPopup()\n // {\n // const modalRef = this.modalService.open(EnquiryDetailsChartComponent, { size: 'lg' });\n // modalRef.componentInstance.Year = this.Year;\n // modalRef.componentInstance.region = this.region;\n // modalRef.componentInstance.currency = this.currency;\n // modalRef.componentInstance.filterChanged = this.filterChanged;\n // modalRef.componentInstance.mode = \"view\";\n\n // }\n // ClosePopup()\n // {\n // this.modal.close();\n // }\n}\nexport class reportmodel {\n Id: any;\n category: any;\n actualvalue; any;\n showvalue: any;\n}\n\n","\n
    \n
    \n
    \n
    \n

    \n Sales Funnel\n

    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n \n \n
    \n \n\n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-opportunity-quotation-chart',\n templateUrl: './opportunity-quotation-chart.component.html',\n styleUrls: ['./opportunity-quotation-chart.component.scss']\n})\nexport class OpportunityQuotationChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Units\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n // am4core.options.onlyShowOnViewport = true;\n this.OpportunityQuotation();\n\n }\n ngOnChanges(): void {\n if (this.filterChanged) this.OpportunityQuotation();\n }\n\n OnSelectChange() {\n this.OpportunityQuotation();\n }\n\n OpportunityQuotation() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"OpportunityQuotationChart\", queryString).subscribe((data: any) => {\n // Create chart instance\n let chart = am4core.create(\"OpportunityQuotationChart\", am4charts.XYChart);\n // Export\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"Enquiry_RFQ_Quotation\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n if (this.currency == 1) CurrencyLabel = \"(USD)\";\n if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n if (this.currency == 3) CurrencyLabel = \"(INR)\";\n // if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n // if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n // //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n // if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n // if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n // if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n // if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n // if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n // if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n\n\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"valueBar1\": \"RFQ_Individual\" + CurrencyLabel,\n \"valueLine1\": \"RFQ_Cumulative\" + CurrencyLabel,\n \"valueBar2\": \"Quotation_Individual\" + CurrencyLabel,\n \"valueLine2\": \"Quotation_Cumulative\" + CurrencyLabel,\n\n }\n /**************End Custom Export**************** */\n let title = chart.titles.create();\n title.text = \"RFQ vs Quotation\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = data;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n /*********Change by ashwini*******/\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n })\n\n\n valueAxis.calculateTotals = true;\n /*********End***********/\n\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n\n\n //#region \"LineSeries1\"\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"RFQ\";\n lineSeries.dataFields.valueY = \"valueLine1\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueL1}\";\n labelBullet.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"LineSeries2\"\n let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n lineSeries2.name = \"Quotation\";\n lineSeries2.dataFields.valueY = \"valueLine2\";\n lineSeries2.dataFields.categoryX = \"category\";\n lineSeries2.tooltip.getFillFromObject = false;\n lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries2.stroke = am4core.color(\"#4a463c\"); //For line or column color\n\n let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n bullet2.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle2 = bullet2.createChild(am4core.Circle);\n circle2.radius = 4;\n circle2.fill = am4core.color(\"#fff\");\n circle2.strokeWidth = 3;\n\n let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n labelBullet2.label.text = \"{valueL2}\";\n labelBullet2.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"ColumnSeries1\"\n /* Create series */\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n columnSeries.name = \"RFQ\";\n columnSeries.dataFields.valueY = \"valueBar1\";\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.fill = am4core.color(\"#ff4d4d\");\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n //#endregion\n\n //#region \"ColumnSeries2\"\n /* Create series */\n let column2Series = chart.series.push(new am4charts.ColumnSeries());\n column2Series.name = \"Quotation\";\n column2Series.dataFields.valueY = \"valueBar2\";\n column2Series.dataFields.categoryX = \"category\";\n\n column2Series.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n column2Series.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n column2Series.columns.template.propertyFields.stroke = \"stroke\";\n column2Series.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n column2Series.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n column2Series.tooltip.label.textAlign = \"middle\";\n column2Series.tooltip.getFillFromObject = false;\n column2Series.fill = am4core.color(\"#6794dc\");\n column2Series.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel2 = column2Series.bullets.push(new am4charts.LabelBullet);\n colLabel2.label.text = \"{valueY}\";\n colLabel2.label.rotation = 0;\n colLabel2.label.fontSize = 9;\n colLabel2.label.padding(0, 0, 20, 0);\n colLabel2.label.truncate = false;\n colLabel2.label.hideOversized = false;\n //#endregion\n\n\n chart.legend = new am4charts.Legend();\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n\n }\n\n}\n","\n
    \n
    \n
    \n
    \n

    \n RFQ vs Quotation\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n\n@Component({\n selector: 'app-opportunity-rfq-chart',\n templateUrl: './opportunity-rfq-chart.component.html',\n styleUrls: ['./opportunity-rfq-chart.component.scss']\n})\nexport class OpportunityRfqChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Units\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n // am4core.options.onlyShowOnViewport = true;\n this.OpportunityRFQ();\n\n }\n ngOnChanges(): void {\n if (this.filterChanged) this.OpportunityRFQ();\n }\n\n OnSelectChange() {\n this.OpportunityRFQ();\n }\n\n OpportunityRFQ() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"OpportunityRFQChart\", queryString).subscribe((data: any) => {\n // Create chart instance\n let chart = am4core.create(\"OpportunityRFQChart\", am4charts.XYChart);\n\n // Export\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"Opportunity_Enquiry/RFQ\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n if (this.currency == 1) CurrencyLabel = \"(USD)\";\n if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n if (this.currency == 3) CurrencyLabel = \"(INR)\";\n // if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n // if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n // //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n // if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n // if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n // if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n // if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n // if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n // if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"valueBar1\": \"Lead/Enquiry_Individual\" + CurrencyLabel,\n \"valueLine1\": \"Lead/Enquiry_Cumulative \" + CurrencyLabel,\n \"valueBar2\": \"RFQ_Individual\" + CurrencyLabel,\n \"valueLine2\": \"RFQ_Cumulative \" + CurrencyLabel,\n\n }\n /**************End Custom Export**************** */\n let title = chart.titles.create();\n title.text = \"Lead/Enquiry vs RFQ\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = data;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n \n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n\n /*********Change by ashwini*******/\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n })\n\n valueAxis.calculateTotals = true;\n /*********End***********/\n\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n\n\n //#region \"LineSeries1\"\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"Lead/Enquiry\";\n lineSeries.dataFields.valueY = \"valueLine1\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueL1}\";\n labelBullet.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"LineSeries2\"\n let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n lineSeries2.name = \"RFQ\";\n lineSeries2.dataFields.valueY = \"valueLine2\";\n lineSeries2.dataFields.categoryX = \"category\";\n lineSeries2.tooltip.getFillFromObject = false;\n lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries2.stroke = am4core.color(\"#4a463c\"); //For line or column color\n\n let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n bullet2.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle2 = bullet2.createChild(am4core.Circle);\n circle2.radius = 4;\n circle2.fill = am4core.color(\"#fff\");\n circle2.strokeWidth = 3;\n\n let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n labelBullet2.label.text = \"{valueL2}\";\n labelBullet2.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"ColumnSeries1\"\n /* Create series */\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n columnSeries.name = \"Lead/Enquiry\";\n columnSeries.dataFields.valueY = \"valueBar1\";\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.fill = am4core.color(\"#ff4d4d\");\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n //#endregion\n\n //#region \"ColumnSeries2\"\n /* Create series */\n let column2Series = chart.series.push(new am4charts.ColumnSeries());\n column2Series.name = \"RFQ\";\n column2Series.dataFields.valueY = \"valueBar2\";\n column2Series.dataFields.categoryX = \"category\";\n\n column2Series.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n column2Series.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n column2Series.columns.template.propertyFields.stroke = \"stroke\";\n column2Series.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n column2Series.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n column2Series.tooltip.label.textAlign = \"middle\";\n column2Series.tooltip.getFillFromObject = false;\n column2Series.fill = am4core.color(\"#6794dc\");\n column2Series.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel2 = column2Series.bullets.push(new am4charts.LabelBullet);\n colLabel2.label.text = \"{valueY}\";\n colLabel2.label.rotation = 0;\n colLabel2.label.fontSize = 9;\n colLabel2.label.padding(0, 0, 20, 0);\n colLabel2.label.truncate = false;\n colLabel2.label.hideOversized = false;\n //#endregion\n\n chart.legend = new am4charts.Legend();\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n\n }\n\n}\n","\n
    \n
    \n
    \n
    \n

    \n Lead/Enquiry vs RFQ\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-order-values-chart',\n templateUrl: './order-values-chart.component.html',\n styleUrls: ['./order-values-chart.component.scss']\n})\nexport class OrderValuesChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Amount\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n // @Input() mode: string = \"\";\n // Chartidname: string = \"\";\n constructor(private toastr: ToastrService, private commonService: CommonService\n ,private modalService: NgbModal,public modal: NgbActiveModal) { }\n\n ngOnInit(): void {\n // if(this.mode == \"view\")\n // {\n // this.Chartidname=\"OrderValuesChartView\";\n // }else{\n // this.Chartidname = \"OrderValuesChart\";\n // }\n // am4core.options.onlyShowOnViewport = true;\n this.OrderValuesChart();\n\n }\n ngOnChanges(): void {\n if (this.filterChanged) this.OrderValuesChart();\n }\n\n OnSelectChange() {\n this.OrderValuesChart();\n }\n\n // OrderValuesChart1() {\n // this.showLoader = true;\n // let queryString = \"\";\n // queryString += \"drpdnOption=\" + this.drpdnOption;\n // queryString += \"&Year=\" + this.Year;\n // queryString += \"®ionid=\" + this.region;\n // queryString += \"¤cy=\" + this.currency;\n\n // this.commonService.GetData(\"Dashboard\", \"OrderValuesChart\", queryString).subscribe((data: any) => {\n\n // var chart = am4core.create(\"OrderValuesChart\", am4charts.XYChart);\n // // Add data\n // chart.scrollbarX = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n // chart.scrollbarX.exportable = false;\n // chart.data = data;\n\n // chart.exporting.menu = new am4core.ExportMenu();\n // // Create axes\n // var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n // categoryAxis.dataFields.category = \"category\";\n // categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.grid.template.location = 0;\n\n // var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n // valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n // var val = text == \"0.00\" ? \"0\" : text;\n // return val;\n // });\n // if (this.drpdnOption == 'Units') {\n // valueAxis.title.text = \"No.\";\n // chart.numberFormatter.numberFormat = \"0\";\n // valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n // var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n // return val;\n // });\n // }\n // else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n // chart.numberFormatter.numberFormat = \"0.00\";\n // }\n\n // valueAxis.title.fontWeight = \"bold\";\n // valueAxis.title.fontSize = \"16px\";\n // valueAxis.min = 0;\n // valueAxis.extraMax = 0.5;\n\n // //valueAxis.extraMax = 0.1;\n // valueAxis.calculateTotals = true;\n\n // //#region \"LineSeries1\"\n // let lineSeries = chart.series.push(new am4charts.LineSeries());\n // lineSeries.name = \"Won\";\n // lineSeries.dataFields.valueY = \"valueLine1\";\n // lineSeries.dataFields.categoryX = \"category\";\n // lineSeries.tooltip.getFillFromObject = false;\n // lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n // lineSeries.stroke = am4core.color(\"#80ff80\"); //For line or column color\n\n // let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n // bullet.fill = am4core.color(\"#80ff80\"); // tooltips grab fill from parent by default\n // bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n // let circle = bullet.createChild(am4core.Circle);\n // circle.radius = 4;\n // circle.fill = am4core.color(\"#fff\");\n // circle.strokeWidth = 3;\n\n // let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n // labelBullet.label.text = \"{valueL1}\";\n // labelBullet.label.verticalCenter = \"bottom\";\n // //#endregion\n\n // //#region \"LineSeries2\"\n // let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n // lineSeries2.name = \"Lost\";\n // lineSeries2.dataFields.valueY = \"valueLine2\";\n // lineSeries2.dataFields.categoryX = \"category\";\n // lineSeries2.tooltip.getFillFromObject = false;\n // lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n // lineSeries2.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n // let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n // bullet2.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n // bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n // let circle2 = bullet2.createChild(am4core.Circle);\n // circle2.radius = 4;\n // circle2.fill = am4core.color(\"#fff\");\n // circle2.strokeWidth = 3;\n\n // let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n // labelBullet2.label.text = \"{valueL2}\";\n // labelBullet2.label.verticalCenter = \"bottom\";\n // //#endregion\n\n // //#region \"LineSeries3\"\n // let lineSeries3 = chart.series.push(new am4charts.LineSeries());\n // lineSeries3.name = \"Open\";\n // lineSeries3.dataFields.valueY = \"valueLine3\";\n // lineSeries3.dataFields.categoryX = \"category\";\n // lineSeries3.tooltip.getFillFromObject = false;\n // lineSeries3.tooltip.background.fill = am4core.color(\"#4a463c\");\n // //lineSeries2.stroke = am4core.color(\"#80ff80\"); //For line or column color\n\n // let bullet3 = lineSeries3.bullets.push(new am4charts.Bullet());\n // bullet3.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n // bullet3.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n // let circle3 = bullet3.createChild(am4core.Circle);\n // circle3.radius = 4;\n // circle3.fill = am4core.color(\"#fff\");\n // circle3.strokeWidth = 3;\n\n // let labelBullet3 = lineSeries3.bullets.push(new am4charts.LabelBullet());\n // labelBullet3.label.text = \"{valueL2}\";\n // labelBullet3.label.verticalCenter = \"bottom\";\n // //#endregion\n\n // // Create series\n // function createSeries(field, name, color) {\n\n // // Set up series\n // var series = chart.series.push(new am4charts.ColumnSeries());\n // series.name = name;\n // series.dataFields.valueY = field;\n // series.dataFields.categoryX = \"category\";\n // series.sequencedInterpolation = true;\n\n // // Make it stacked\n // series.stacked = true;\n\n // // Configure columns\n // series.columns.template.width = am4core.percent(60);\n // series.fill = am4core.color(color);\n // series.columns.template.tooltipText = \"[bold]{name}[/]\\n[font-size:14px]{categoryX}: {valueY}\";\n // series.tooltip.background.fill = am4core.color(\"#4a463c\");\n\n // // Add label\n // var labelBullet = series.bullets.push(new am4charts.LabelBullet());\n // labelBullet.label.text = \"{valueY}\";\n // labelBullet.locationY = 0.5;\n // labelBullet.label.hideOversized = true;\n\n // return series;\n // }\n\n // createSeries(\"valueBar1\", \"Won\", \"#80ff80\");\n // createSeries(\"valueBar2\", \"Lost\", \"#ff4d4d\");\n // createSeries(\"valueBar3\", \"Open\", \"#6771dc\");\n\n // // Legend\n // chart.legend = new am4charts.Legend();\n\n // })\n // }\n\n OrderValuesChart() {\n const that = this;\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"OrderValuesChart\", queryString).subscribe((data: any) => {\n\n var chart = am4core.create(\"OrderValuesChart\", am4charts.XYChart);\n // Add data\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.data = data;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"Enquiry_Status\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n // if (this.currency == 1) CurrencyLabel = \"(USD)\";\n // if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n // if (this.currency == 3) CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"valueBar1\": \"Won_Individual\" + CurrencyLabel,\n \"valueLine1\": \"Won_Cumulative\" + CurrencyLabel,\n \"valueBar2\": \"Lost_Individual\" + CurrencyLabel,\n \"valueLine2\": \"Lost_Cumulative\" + CurrencyLabel,\n \"valueBar3\": \"Open_Individual\" + CurrencyLabel,\n \"valueLine3\": \"Open_Cumulative\" + CurrencyLabel\n }\n /**************End Custom Export**************** */\n\n let title = chart.titles.create();\n title.text = \"Enquiry Status\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // Create axes\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n categoryAxis.renderer.grid.template.location = 0;\n\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.currencyCode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.currencyCode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"VND\") valueAxis.title.text = \"VND\";\n if (this.currencyCode == \"IDR\") valueAxis.title.text = \"IDR\";\n if (this.currencyCode == \"PHP\") valueAxis.title.text = \"PHP\";\n if (this.currencyCode == \"THB\") valueAxis.title.text = \"THB\";\n if (this.currencyCode == \"MYR\") valueAxis.title.text = \"MYR\";\n if (this.currencyCode == \"SGD\") valueAxis.title.text = \"SGD\";\n // chart.numberFormatter.numberFormat = \"0.00\";\n }\n\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n if (ev.target.max == undefined) valueAxis.extraMax = 0.2;\n\n })\n\n\n valueAxis.calculateTotals = true;\n\n //#region \"LineSeries1\"\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"Won\";\n lineSeries.dataFields.valueY = \"valueLine1\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries.stroke = am4core.color(\"#80ff80\"); //For line or column color\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#80ff80\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueL1}\";\n labelBullet.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"LineSeries2\"\n let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n lineSeries2.name = \"Lost\";\n lineSeries2.dataFields.valueY = \"valueLine2\";\n lineSeries2.dataFields.categoryX = \"category\";\n lineSeries2.tooltip.getFillFromObject = false;\n lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries2.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n bullet2.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle2 = bullet2.createChild(am4core.Circle);\n circle2.radius = 4;\n circle2.fill = am4core.color(\"#fff\");\n circle2.strokeWidth = 3;\n\n let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n labelBullet2.label.text = \"{valueL2}\";\n labelBullet2.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"LineSeries3\"\n let lineSeries3 = chart.series.push(new am4charts.LineSeries());\n lineSeries3.name = \"Open\";\n lineSeries3.dataFields.valueY = \"valueLine3\";\n lineSeries3.dataFields.categoryX = \"category\";\n lineSeries3.tooltip.getFillFromObject = false;\n lineSeries3.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries2.stroke = am4core.color(\"#80ff80\"); //For line or column color\n\n let bullet3 = lineSeries3.bullets.push(new am4charts.Bullet());\n bullet3.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet3.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle3 = bullet3.createChild(am4core.Circle);\n circle3.radius = 4;\n circle3.fill = am4core.color(\"#fff\");\n circle3.strokeWidth = 3;\n\n let labelBullet3 = lineSeries3.bullets.push(new am4charts.LabelBullet());\n labelBullet3.label.text = \"{valueL2}\";\n labelBullet3.label.verticalCenter = \"bottom\";\n //#endregion\n\n // Create series\n function createSeries(field, name, color) {\n // Set up series\n var series = chart.series.push(new am4charts.ColumnSeries());\n series.name = name;\n series.dataFields.valueY = field;\n series.dataFields.categoryX = \"category\";\n series.sequencedInterpolation = true;\n\n // Make it stacked\n series.stacked = true;\n\n // Configure columns\n series.columns.template.width = am4core.percent(60);\n series.fill = am4core.color(color);\n series.columns.template.tooltipText = \"[bold]{name}[/]\\n[font-size:14px]{categoryX}: {valueY}\";\n series.tooltip.background.fill = am4core.color(\"#4a463c\");\n\n // Add label\n var labelBullet = series.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueY}\";\n labelBullet.locationY = 0.5;\n labelBullet.label.hideOversized = true;\n\n return series;\n }\n\n createSeries(\"valueBar1\", \"Won\", \"#80ff80\");\n createSeries(\"valueBar2\", \"Lost\", \"#ff4d4d\");\n createSeries(\"valueBar3\", \"Open\", \"#6771dc\");\n\n // Legend\n chart.legend = new am4charts.Legend();\n\n })\n }\n showIndicator(chart, indicator) {\n if (indicator) {\n indicator.show();\n }\n else {\n indicator = chart.tooltipContainer.createChild(am4core.Container);\n indicator.background.fill = am4core.color(\"#fff\");\n indicator.background.fillOpacity = 0.8;\n indicator.width = am4core.percent(100);\n indicator.height = am4core.percent(100);\n\n var indicatorLabel = indicator.createChild(am4core.Label);\n indicatorLabel.text = \"No data available for the selection...\";\n indicatorLabel.align = \"center\";\n indicatorLabel.valign = \"middle\";\n indicatorLabel.fontSize = 20;\n }\n }\n\n hideIndicator(indicator) {\n indicator.hide();\n }\n // OpenChartPopup()\n // {\n // const modalRef = this.modalService.open(OrderValuesChartComponent, { size: 'lg' });\n // modalRef.componentInstance.Year = this.Year;\n // modalRef.componentInstance.region = this.region;\n // modalRef.componentInstance.currency = this.currency;\n // modalRef.componentInstance.filterChanged = this.filterChanged;\n // modalRef.componentInstance.mode = \"view\";\n\n // }\n // ClosePopup()\n // {\n // this.modal.close();\n // }\n}\n","\n
    \n
    \n
    \n
    \n

    \n Enquiry Status\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-order-win-lost-chart',\n templateUrl: './order-win-lost-chart.component.html',\n styleUrls: ['./order-win-lost-chart.component.scss']\n})\nexport class OrderWinLostChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Amount\";\n type: string = \"Won\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit(): void {\n //am4core.options.onlyShowOnViewport = true;\n this.OrderWinLostChart();\n\n }\n ngOnChanges(): void {\n if (this.filterChanged) this.OrderWinLostChart();\n }\n\n OnSelectChange() {\n this.OrderWinLostChart();\n }\n\n OrderWinLostChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"&type=\" + this.type;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"OrderWinLossChart\", queryString).subscribe((data: any) => {\n // Create chart instance\n let chart = am4core.create(\"OrderWinLostChart\", am4charts.XYChart);\n let title = chart.titles.create();\n title.text = \"Order Won/Lost Analysis\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n // Export\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"OrderWon_LostAnalysis\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n // if (this.currency == 1) CurrencyLabel = \"(USD)\";\n // if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n // if (this.currency == 3) CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n chart.exporting.dataFields = {\n \"category\": this.type + \"_Reason\",\n \"value\": this.type + \"_\" + this.drpdnOption + CurrencyLabel,\n\n }\n /**************End Custom Export**************** */\n\n // Data for both series\n chart.data = data;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n\n\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n //categoryAxis.renderer.labels.template.rotation = -45;\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.currencyCode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.currencyCode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"VND\") valueAxis.title.text = \"VND\";\n if (this.currencyCode == \"IDR\") valueAxis.title.text = \"IDR\";\n if (this.currencyCode == \"PHP\") valueAxis.title.text = \"PHP\";\n if (this.currencyCode == \"THB\") valueAxis.title.text = \"THB\";\n if (this.currencyCode == \"MYR\") valueAxis.title.text = \"MYR\";\n if (this.currencyCode == \"SGD\") valueAxis.title.text = \"SGD\";\n // chart.numberFormatter.numberFormat = \"0.00\";\n }\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n\n\n /* Create series */\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n\n columnSeries.dataFields.valueY = \"value\";\n columnSeries.dataFields.categoryX = \"category\";\n if (this.drpdnOption == 'Units') {\n if (this.type == 'Won') columnSeries.name = \"Won No's\";\n if (this.type == 'Lost') columnSeries.name = \"Lost No's\";\n }\n else {\n if (this.type == 'Won') columnSeries.name = \"Won Amount\";\n if (this.type == 'Lost') columnSeries.name = \"Lost Amount\";\n }\n columnSeries.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n categoryAxis.renderer.labels.template.maxWidth = 100;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.wrap = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n\n\n // /* Create series */\n // let columnSeries2 = chart.series.push(new am4charts.ColumnSeries());\n // columnSeries2.name = \"Lost No.\";\n // columnSeries2.dataFields.valueY = \"valueL2\";\n // columnSeries2.dataFields.categoryX = \"category\";\n\n // columnSeries2.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n // columnSeries2.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n // columnSeries2.columns.template.propertyFields.stroke = \"stroke\";\n // columnSeries2.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n // columnSeries2.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n // columnSeries2.tooltip.label.textAlign = \"middle\";\n // columnSeries2.tooltip.getFillFromObject = false;\n // columnSeries2.tooltip.background.fill = am4core.color(\"#4a463c\"); \n\n chart.legend = new am4charts.Legend();\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n\n }\n\n\n}\n","\n
    \n
    \n
    \n
    \n

    \n Order Won/Lost Analysis\n

    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-orderbacklog-supplychain-chart',\n templateUrl: './orderbacklog-supplychain-chart.component.html',\n styleUrls: ['./orderbacklog-supplychain-chart.component.scss']\n})\nexport class OrderbacklogSupplychainChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Amount\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n // am4core.options.onlyShowOnViewport = true;\n this.QuotationOrdIntake();\n\n }\n ngOnChanges(): void {\n if (this.filterChanged) this.QuotationOrdIntake();\n }\n\n OnSelectChange() {\n this.QuotationOrdIntake();\n }\n\n QuotationOrdIntake() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n this.commonService.GetData(\"Dashboard\", \"OrderBacklogChart\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"OrderBacklogSupplyChainChart\", am4charts.XYChart);\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"OrderBacklog\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n // if (this.currency == 1) CurrencyLabel = \"(USD)\";\n // if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n // if (this.currency == 3) CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"value\": \"OrderBacklog\" + CurrencyLabel,\n }\n /**************End Custom Export**************** */\n\n let title = chart.titles.create();\n title.text = \"Order Backlog\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.data = data;\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.currencyCode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.currencyCode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"VND\") valueAxis.title.text = \"VND\";\n if (this.currencyCode == \"IDR\") valueAxis.title.text = \"IDR\";\n if (this.currencyCode == \"PHP\") valueAxis.title.text = \"PHP\";\n if (this.currencyCode == \"THB\") valueAxis.title.text = \"THB\";\n if (this.currencyCode == \"MYR\") valueAxis.title.text = \"MYR\";\n if (this.currencyCode == \"SGD\") valueAxis.title.text = \"SGD\";\n // chart.numberFormatter.numberFormat = \"0.00\";\n }\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n })\n valueAxis.calculateTotals = true;\n //#region \"ColumnSeries1\"\n /* Create series */\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n columnSeries.name = \"Order Backlog\";\n columnSeries.dataFields.valueY = \"value\";\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {category}: [/][#fff font-size: 13px]{value}[/] [#fff]{additional}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.fill = am4core.color(\"#6794dc\");\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n //#endregion\n chart.legend = new am4charts.Legend();\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n\n }\n\n}\n","\n
    \n
    \n
    \n
    \n

    \n Order Backlog\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-quatation-order-intake-chart',\n templateUrl: './quatation-order-intake-chart.component.html',\n styleUrls: ['./quatation-order-intake-chart.component.scss']\n})\nexport class QuatationOrderIntakeChartComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n drpdnOption: string = \"Amount\";\n\n @Input() Year: number;\n @Input() region: number;\n @Input() currency: number;\n @Input() filterChanged: boolean;\n @Input() currencyCode: string;\n constructor(private toastr: ToastrService, private commonService: CommonService) { }\n\n ngOnInit() {\n // am4core.options.onlyShowOnViewport = true;\n this.QuotationOrdIntake();\n }\n ngOnChanges(): void {\n if (this.filterChanged) this.QuotationOrdIntake();\n }\n\n OnSelectChange() {\n this.QuotationOrdIntake();\n }\n\n QuotationOrdIntake() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=\" + this.drpdnOption;\n queryString += \"&Year=\" + this.Year;\n queryString += \"®ionid=\" + this.region;\n queryString += \"¤cy=\" + this.currency;\n\n this.commonService.GetData(\"Dashboard\", \"QuotationOrderIntakeChart\", queryString).subscribe((data: any) => {\n // Create chart instance\n let chart = am4core.create(\"QuotationOrdIntakeChart\", am4charts.XYChart);\n\n // Export\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"QuotationOrderIntake\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n let CurrencyLabel = \"\";\n if (this.drpdnOption == \"Amount\") {\n // if (this.currency == 1) CurrencyLabel = \"(USD)\";\n // if (this.currency == 2) CurrencyLabel = \"(EURO)\";\n // if (this.currency == 3) CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"USD\") CurrencyLabel = \"(USD)\";\n if (this.currencyCode == \"Euro\") CurrencyLabel = \"(EURO)\";\n //if (this.currencyCode == \"INR\") CurrencyLabel = \"(INR)\";\n if (this.currencyCode == \"VND\") CurrencyLabel = \"(VND)\";\n if (this.currencyCode == \"IDR\") CurrencyLabel = \"(IDR)\";\n if (this.currencyCode == \"PHP\") CurrencyLabel = \"(PHP)\";\n if (this.currencyCode == \"THB\") CurrencyLabel = \"(THB)\";\n if (this.currencyCode == \"MYR\") CurrencyLabel = \"(MYR)\";\n if (this.currencyCode == \"SGD\") CurrencyLabel = \"(SGD)\";\n }\n else {\n CurrencyLabel = \"(No's)\";\n }\n chart.exporting.dataFields = {\n \"category\": \"Month\",\n \"valueBar1\": \"Quotation_Individual\" + CurrencyLabel,\n \"valueLine1\": \"Quotation_Cumulative\" + CurrencyLabel,\n \"valueBar2\": \"OrderBooked_Individual\" + CurrencyLabel,\n \"valueLine2\": \"OrderBooked_Cumulative\" + CurrencyLabel,\n\n }\n /**************End Custom Export**************** */\n\n let title = chart.titles.create();\n title.text = \"Quotation vs Order Booked\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.data = data;\n\n /* Create axes */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.minGridDistance = 30;\n\n\n /* Create value axis */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n // var val = parseFloat(text)%1!=0 ? \"\" : parseInt(text).toString();\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n /*******Change by Ashwini *********/\n\n /**************Scrolling Start End Point**************** */\n chart.events.on(\"beforedatavalidated\", function(ev) {\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n valueAxis.start = 0;\n valueAxis.end = 1;\n });\n /**************End Scrolling Start End Point**************** */\n if (this.drpdnOption == 'Units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.currency == 1) valueAxis.title.text = \"USD\";\n // if (this.currency == 2) valueAxis.title.text = \"EURO\";\n // if (this.currency == 3) valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.currencyCode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.currencyCode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.currencyCode == \"VND\") valueAxis.title.text = \"VND\";\n if (this.currencyCode == \"IDR\") valueAxis.title.text = \"IDR\";\n if (this.currencyCode == \"PHP\") valueAxis.title.text = \"PHP\";\n if (this.currencyCode == \"THB\") valueAxis.title.text = \"THB\";\n if (this.currencyCode == \"MYR\") valueAxis.title.text = \"MYR\";\n if (this.currencyCode == \"SGD\") valueAxis.title.text = \"SGD\";\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.events.on(\"ready\", function (ev) {\n ev.target.min = ev.target.min;\n ev.target.max = ev.target.max;\n if (ev.target.max < 0.1) valueAxis.extraMax = 10;\n if (ev.target.max > 0.1 && ev.target.max < 1) valueAxis.extraMax = 5;\n if (ev.target.max > 1) valueAxis.extraMax = 0.2;\n })\n\n valueAxis.calculateTotals = true;\n /********End *********/\n\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.00\" ? \"0\" : text;\n return val;\n });\n valueAxis.title.fontWeight = \"bold\";\n valueAxis.title.fontSize = \"16px\";\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n\n\n\n\n //#region \"ColumnSeries1\"\n /* Create series */\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n columnSeries.name = \"Quotation\";\n columnSeries.dataFields.valueY = \"valueBar1\";\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.fill = am4core.color(\"#ff4d4d\");\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n //#endregion\n\n //#region \"ColumnSeries2\"\n /* Create series */\n let column2Series = chart.series.push(new am4charts.ColumnSeries());\n column2Series.name = \"Order Booked\";\n column2Series.dataFields.valueY = \"valueBar2\";\n column2Series.dataFields.categoryX = \"category\";\n\n column2Series.columns.template.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\";\n column2Series.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n column2Series.columns.template.propertyFields.stroke = \"stroke\";\n column2Series.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n column2Series.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n column2Series.tooltip.label.textAlign = \"middle\";\n column2Series.tooltip.getFillFromObject = false;\n column2Series.fill = am4core.color(\"#6794dc\");\n\n column2Series.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel2 = column2Series.bullets.push(new am4charts.LabelBullet);\n colLabel2.label.text = \"{valueY}\";\n colLabel2.label.rotation = 0;\n colLabel2.label.fontSize = 9;\n colLabel2.label.padding(0, 0, 20, 0);\n colLabel2.label.truncate = false;\n colLabel2.label.hideOversized = false;\n //#endregion\n\n //#region \"LineSeries1\"\n let lineSeries = chart.series.push(new am4charts.LineSeries());\n lineSeries.name = \"Quotation\";\n lineSeries.dataFields.valueY = \"valueLine1\";\n lineSeries.dataFields.categoryX = \"category\";\n lineSeries.tooltip.getFillFromObject = false;\n lineSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n lineSeries.stroke = am4core.color(\"#ff4d4d\"); //For line or column color\n\n let bullet = lineSeries.bullets.push(new am4charts.Bullet());\n bullet.fill = am4core.color(\"#ff4d4d\"); // tooltips grab fill from parent by default\n bullet.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle = bullet.createChild(am4core.Circle);\n circle.radius = 4;\n circle.fill = am4core.color(\"#fff\");\n circle.strokeWidth = 3;\n\n let labelBullet = lineSeries.bullets.push(new am4charts.LabelBullet());\n labelBullet.label.text = \"{valueL1}\";\n labelBullet.label.verticalCenter = \"bottom\";\n //#endregion\n\n //#region \"LineSeries2\"\n let lineSeries2 = chart.series.push(new am4charts.LineSeries());\n lineSeries2.name = \"Order Booked\";\n lineSeries2.dataFields.valueY = \"valueLine2\";\n lineSeries2.dataFields.categoryX = \"category\";\n lineSeries2.tooltip.getFillFromObject = false;\n lineSeries2.tooltip.background.fill = am4core.color(\"#4a463c\");\n //lineSeries2.stroke = am4core.color(\"#4a463c\"); //For line or column color\n\n let bullet2 = lineSeries2.bullets.push(new am4charts.Bullet());\n bullet2.fill = am4core.color(\"#4a463c\"); // tooltips grab fill from parent by default\n bullet2.tooltipText = \"[#fff font-size: 13px]{name} in {categoryX}: [/][#fff font-size: 13px]{valueY}[/] [#fff]{additional}[/]\"\n let circle2 = bullet2.createChild(am4core.Circle);\n circle2.radius = 4;\n circle2.fill = am4core.color(\"#fff\");\n circle2.strokeWidth = 3;\n\n let labelBullet2 = lineSeries2.bullets.push(new am4charts.LabelBullet());\n labelBullet2.label.text = \"{valueL2}\";\n labelBullet2.label.verticalCenter = \"bottom\";\n //#endregion\n\n chart.numberFormatter.numberFormat = chart.numberFormatter.numberFormat;\n chart.legend = new am4charts.Legend();\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n\n });\n\n }\n\n}\n","\n
    \n
    \n
    \n
    \n

    \n Quotation vs Order Booked\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Activity } from 'src/app/Model/ActivityModel';\nimport { EngagementReportService } from 'src/app/Service/engagement-report.service';\nimport { ViewActivityComponent } from '../../customer-engagement/activity/view-activity/view-activity.component';\n\n@Component({\n selector: 'app-show-pending-activity',\n templateUrl: './show-pending-activity.component.html',\n styleUrls: ['./show-pending-activity.component.scss']\n})\nexport class ShowPendingActivityComponent implements OnInit {\n\n\n @Input() reportTypeId: string;\n @Input() title: string\n\n noDataComment: string;\n\n activities: Activity[];\n activityData: MatTableDataSource;\n displayedColumns: any = ['ActivityType', 'Subject', 'DueDate', 'ActivityStatus', 'DelayedBy', 'Actions'];\n @ViewChild('paginator') paginator: MatPaginator;\n\n constructor(private engagementReportService: EngagementReportService,private modalService: NgbModal) { }\n\n ngOnInit(): void {\n this.refreshGrid();\n if(this.reportTypeId === 'rep_my_pending_activities') this.noDataComment = \"There are no pending activities\";\n if(this.reportTypeId === 'REP_MY_TODAYS_ACTIVITIES') this.noDataComment = \"There are no activities for today\";\n }\n\n refreshGrid() {\n this.engagementReportService.getReportData({ reportTypeId: this.reportTypeId, IsOwner: true}).subscribe((data: any) => {\n this.activities = data;\n this.activityData = new MatTableDataSource(data);\n this.activityData.paginator = this.paginator;\n });\n }\n\n openViewPopup(activityId) {\n const modalRef = this.modalService.open(ViewActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n\n var Activity = {\n activityId: activityId,\n inPopUpMode: true\n };\n\n modalRef.componentInstance.Activity = Activity;\n }\n\n}\n","
    \n
    \n
    \n
    \n

    \n {{title}}\n

    \n
    \n
    \n
    \n
    \n\n \n\n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n\n
    Activity Type\n {{item.ActivityType}}\n Subject {{item.Subject}} Due Date {{item.PlannedDueDatetime | date}} Activity Status {{item.ActivityStatus}} Delayed By {{item.DelayedDays < 0 ? 0: item.DelayedDays}} Actions\n \n \n
    \n\n
    \n
    {{noDataComment}}
    \n
    \n\n \n
    \n\n
    ","import { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ActivityModel } from 'src/app/Model/EnquiryModel';\nimport { NgbActiveModal, NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { EnquiryStatus } from 'src/app/EnquiryStatus';\n\n@Component({\n selector: 'app-activity-details',\n templateUrl: './activity-details.component.html',\n styleUrls: ['./activity-details.component.scss']\n})\nexport class ActivityDetailsComponent implements OnInit {\n @Input()\n EnquiryId: any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n allowedFileType: string[] = ['image/bmp', 'image/jpeg', 'image/png', 'application/pdf', 'text/plain', 'text/csv', 'application/xml', 'text/xml', 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip', 'application/vnd.rar'];\n newActivityDetails: any = {};\n activityDetails: ActivityModel[] = [];\n isActivityeditable: boolean;\n userid: string;\n RoleId: string;\n isShowEdit: boolean;\n IsActivityDataValid: boolean;\n minDate: NgbDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n StartDate:NgbDate;\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private router: Router,\n private activeModal: NgbActiveModal) {\n this.StartDate = new NgbDate(2018, 1, 1);\n }\n\n\n ngOnInit(): void {\n this.userid = localStorage.getItem(\"UserID\");\n this.RoleId = localStorage.getItem('UserRole');\n this.isShowEdit = this.RoleId == this.EnquiryId.PendingAtRoleId ? true : false;\n if(this.EnquiryId.PendingAtRoleId == null)\n {\n this.isShowEdit = this.userid == this.EnquiryId.initID ? true : false;\n }\n if(this.RoleId==UserRoles.Admin)\n {\n if(this.EnquiryId.status == EnquiryStatus.OrdersentforMngmtApproval_CEO \n || this.EnquiryId.status == EnquiryStatus.OANoGenerated)\n {\n this.isShowEdit = false;\n }\n else{\n this.isShowEdit = true;\n }\n\n }\n if (this.EnquiryId.status == EnquiryStatus.AccountsConfirmInvoiceNo) {\n this.isShowEdit = false;\n }\n\n this.getActivityDetails();\n }\n\n ngOnChanges() {\n\n }\n closePopup(val) {\n if(val) this.activeModal.close('Close Click');\n }\n editActivity() {\n this.isActivityeditable = true;\n }\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ISNewActivityAdded = true;\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n this.activityDetails.push(obj);\n }\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n //this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n onActivityChange(i) {\n if (this.activityDetails[i].Activity == undefined || this.activityDetails[i].Activity == null || this.activityDetails[i].Activity == \"\") {\n this.activityDetails[i].ActivityValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityValidation = false;\n }\n }\n onActivityDateChange(i) {\n if (this.activityDetails[i].ActivityDate == undefined || this.activityDetails[i].ActivityDate == null || this.activityDetails[i].ActivityDate == \"\") {\n this.activityDetails[i].ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityDateValidation = false;\n }\n }\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.showLoader = true;\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryId.enqid;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.toastr.success(\"Activity details added successfully!\");\n this.activeModal.close('Close Click');\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.showLoader = false;\n });\n\n }\n getActivityDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryId.enqid;\n this.commonService.GetData('Enquiry', 'GetActivityByEnquiryId', queryString).subscribe((data: any) => {\n this.activityDetails = data;\n\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n if (this.isShowEdit && this.activityDetails?.length == 0) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n this.activityDetails.push(obj);\n }\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n getFileDetails(event) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"activityfile\":\n this.newActivityDetails.Attachment = [];\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"activityfile\":\n this.newActivityDetails.Attachment = [];\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"activityfile\":\n this.newActivityDetails.Attachment = [];\n this.newActivityDetails.Attachment.push(file);\n break;\n }\n }\n }\n\n\n deleteActivityDetails(index: any) {\n if (index != null) {\n this.activityDetails.splice(index, 1);\n } else {\n this.activityDetails.pop();\n }\n }\n\n AddActivity() {\n this.showLoader = true;\n const frmData = new FormData();\n this.activityDetails.forEach(item => {\n item.IsRowDeleted = false;\n });\n let activityDetails = JSON.stringify(this.activityDetails);\n frmData.append(\"activityDetails\", activityDetails);\n this.commonService.PostData(\"Activity\", \"Add\", frmData, null).subscribe((data: any) => {\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Activity added successfully!\");\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to add activity!\");\n this.showLoader = false;\n }\n this.router.navigate(['/Enquiry']);\n }, error => {\n this.toastr.error(\"Failed to add activity!\");\n this.showLoader = false;\n this.router.navigate(['/Enquiry']);\n });\n }\n}\n","\n
    \n \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n

    \n Activity Details for Enq No.: {{EnquiryId.endNo}}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n\n\n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRoute } from '@angular/router';\nimport { Activity } from 'src/app/Model/ActivityModel';\nimport { ActivityService } from 'src/app/Service/activity.service';\nimport { ViewActivityComponent } from '../../customer-engagement/activity/view-activity/view-activity.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'app-activity-list-by-entity',\n templateUrl: './activity-list-by-entity.component.html',\n styleUrls: ['./activity-list-by-entity.component.scss']\n})\nexport class ActivityListByEntityComponent implements OnInit {\n filterActivityForm: any = {}\n activities: Activity[];\n HideId: Boolean = true;\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n canViewCustomerEngagementReportOfOthers:boolean=false;\n Role: any;\n partid: string = null; \n\n @Input() entityTypeId: number;\n\n // enquiryId this variable can be used as entityId \n @Input() enquiryId: any;\n @Output() closePopupEvent = new EventEmitter();\n\n dataSource: MatTableDataSource;\n @ViewChild('paginator') paginator: MatPaginator;\n\n displayedColumns: string[] = ['ActivityType', 'Subject', 'DueDate', 'ActivityStatus', 'DelayedBy', 'Actions'];\n\n id: number;\n constructor(private activityService: ActivityService, private route: ActivatedRoute, private modalService: NgbModal, private accessservice: AccessPermissionService) { }\n\n ngOnInit(): void {\n this.id = this.enquiryId ? this.enquiryId : this.route.snapshot.params[\"id\"];\n this.filterActivityForm.ActivityTypeId = null;\n this.filterActivityForm.ActivityStatusId = null;\n this.filterActivityForm.Subject = null;\n this.filterActivityForm.StartDate = null;\n this.filterActivityForm.EntityTypeId = this.entityTypeId;\n this.filterActivityForm.EntityId = this.id;\n this.filterActivityForm.PageNumber = 1;\n this.filterActivityForm.PageSize = 2000;\n this.filterActivityForm.IsOwner = false;\n this.filterActivityForm.ParticipantId = this.partid;\n this.refreshGrid(this.filterActivityForm);\n this.Role = localStorage.getItem(\"UserRole\");\n\n this.getAccess().subscribe(x=>{\n this.refreshGrid(this.filterActivityForm);\n });\n }\n refreshGrid(filterActivityForm) {\n //alert('Update')\n\n this.activityService.getActivityByFilter(filterActivityForm).subscribe((data: any) => {\n this.activities = data.Data;\n this.dataSource = new MatTableDataSource(this.activities);\n this.dataSource.paginator = this.paginator;\n });\n }\n openViewPopup(activityId) {\n const modalRef = this.modalService.open(ViewActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n\n var Activity = {\n activityId: activityId,\n inPopUpMode: true\n };\n\n modalRef.componentInstance.Activity = Activity;\n }\n\n // this function is used to close the popup in parent compenent ( Enquiry listing > Actions > Activity list )\n closePopup() {\n this.closePopupEvent.emit(true);\n }\n getAccess(): Observable {\n let tracker = this.accessservice.GetAll();\n\n tracker.subscribe((data: any) => {\n // console.log(data);\n this.accesspermissionobj = data;\n this.canViewCustomerEngagementReportOfOthers = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey == 'canViewCustomerEngagementReportOfOthers')[0]?.IsVisible;\n \n if(!this.canViewCustomerEngagementReportOfOthers){\n \n this.partid = this.filterActivityForm.ParticipantId;\n }\n });\n\n return tracker;\n }\n}\n"," \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n\n
    Activity Type\n {{item.ActivityType}}\n Subject {{item.Subject}} Due Date {{item.PlannedDueDatetime | date}} Activity Status {{item.ActivityStatus}} Delayed By {{item.DueDays < 0 ? 0: item.DueDays}} Actions\n \n\n \n
    \n \n
    \n
    No records found
    \n
    \n \n\n ","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AddCustomerOpportunityModel } from 'src/app/Model/AddCustomerOpportunityModel';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-add-customer-opportunity',\n templateUrl: './add-customer-opportunity.component.html',\n styleUrls: ['./add-customer-opportunity.component.scss']\n})\nexport class AddCustomerOpportunityComponent implements OnInit {\n\n AddCustomerOpportunityModel = new AddCustomerOpportunityModel();\n\n Country: any[] = [];\n Region: any[] = [];\n IndustrySegment: any[] = [];\n Typeofcustomer: any[] = [];\n showLoader: boolean = false;\n minDate: NgbDate;\n maxDate: NgbDate;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n\n constructor(private router: Router, private toastr: ToastrService, private Service: CommonService,\n public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n }\n\n ngOnInit(): void {\n this.GetCustomerDropdownData();\n }\n\n GetCustomerDropdownData() {\n this.showLoader = true;\n this.Service.GetData(\"Customer\", \"GetCustomerDropdownDetails\", null).subscribe((data: any) => {\n //this.Country = data.Country;\n this.Region = data.Region;\n this.IndustrySegment = data.IndustrySegment;\n this.Typeofcustomer = data.CustomerType;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this customer?\"\n }\n });\n \n dialogRef.afterClosed().subscribe(dialogResult => {\n\n const frmData = new FormData();\n\n // console.log(frmData);\n\n if (dialogResult) {\n\n //this.AddNewRow('Submitted');\n // this.CustomerModel.BasicCustomerInformationModel.CustomerCode = this.CustomerCode;\n const frmData = new FormData();\n let CustomerDetails = JSON.stringify(this.AddCustomerOpportunityModel);\n frmData.append(\"CustomerModel\", CustomerDetails);\n // console.log(frmData.append);\n \n this.showLoader = true;\n this.Service.PostData('Customer', 'Add', frmData, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Customer details added successfully!');\n this.router.navigate(['/Customer']);\n }\n else {\n this.toastr.error(\"Failed to add customer details!\");\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add customer details!');\n this.showLoader = false;\n this.router.navigate(['/Customer']);\n });\n }\n });\n }\n\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Customer Opportunity\n

    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { EnquiryStatus } from \"src/app/EnquiryStatus\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-enquiry',\n templateUrl: './add-enquiry.component.html',\n styleUrls: ['./add-enquiry.component.scss']\n})\nexport class AddEnquiryComponent implements OnInit {\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n allowedFileType: string[] = ['image/bmp', 'image/jpeg', 'image/png', 'application/pdf', 'text/plain', 'text/csv', 'application/xml', 'text/xml', 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip', 'application/vnd.rar'];\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n enquirySource: SingleFieldModel[] = [];\n product: any = {};\n isEnquirySubmit: boolean = false;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n minDate: NgbDate;\n maxDate: NgbDate;\n hasAccessForCustomersCustomer:boolean;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private router: Router, private titleService: Title, private route: ActivatedRoute, private appConfigService: AppConfigService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n }\n\n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.getUserProfileInfo();\n this.getCustomerList();\n this.getEnquirySourceDetails();\n }\n getCustomerList() {\n this.showLoader = true;\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n this.showLoader = false;\n });\n }\n getEnquirySourceDetails() {\n this.showLoader = true;\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.showLoader = false;\n });\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n GetCustomerDetails(data: any) {\n if (this.customerData == null) {\n this.EnquiryObj.CustomerDetails.CustomerCode = '';\n this.customerDrpdnDetails.IndustrySegment = '';\n this.customerDrpdnDetails.CustomerType = '';\n this.customerDrpdnDetails.CustomerCategory = '';\n this.customerDrpdnDetails.Region = '';\n this.customerDrpdnDetails.CustomerClassification = '';\n return;\n }\n this.showLoader = true;\n this.EnquiryObj.CustomerDetails = new CustomerDetails();\n let queryString = \"\";\n queryString = \"id=\" + this.customerData;\n this.commonService.GetData(\"Customer\", \"GetById\", queryString).subscribe((result: any) => {\n let res = result;\n this.commonService.GetData(\"Customer\", \"GetCustomerDropdownData\", queryString).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.CustomerDetails.CustomerId = res.BasicCustomerInformationModel.Id;\n this.EnquiryObj.CustomerDetails.CustomerCode = res.BasicCustomerInformationModel.CustomerCode;\n this.EnquiryObj.CustomerDetails.RegionId= this.customerDrpdnDetails.RegionId;\n this.showLoader = false;\n });\n });\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n getUserProfileInfo() {\n this.showLoader = true;\n this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n this.userInfo = data;\n this.hasAccessToViewCustomersCustomer(this.userInfo.RoleType);\n this.EnquiryObj.EnquiryDetails.UserId = this.userInfo.Id;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SetStatus(status) { \n this.EnquiryObj.EnquiryDetails.Status = status;\n }\n\n AddEnquiry() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this enquiry?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n // if (this.newRFQDetails != {}) {\n // this.isEnquirySubmit = true;\n // this.AddRFQDetails();\n // }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.MngOrderApprovalAttachments.length; i++) {\n frmData.append(\"MngOrderApprovalAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.MngOrderApprovalAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.MngApprovalAttachments.length; i++) {\n frmData.append(\"MngApprovalAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.MngApprovalAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.CEOApprovalAttachments.length; i++) {\n frmData.append(\"CEOApprovalAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.CEOApprovalAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n\n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n this.toastr.success(\"Enquiry details added successfully!\");\n this.showLoader = false;\n //this.router.navigate(['/Enquiry']);\n this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n }, error => {\n this.toastr.error(\"Failed to add enquiry details!\");\n this.showLoader = false;\n //this.router.navigate(['/Enquiry']);\n });\n }\n });\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n hasAccessToViewCustomersCustomer(RoleType:any)\n {\n if(RoleType==3){\n this.hasAccessForCustomersCustomer=false\n }\n else{\n this.hasAccessForCustomersCustomer=true\n } \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Enquiry\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n\n Enquiry\n \n
    \n
    \n
    \n\n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n
    {{userInfo.Name}}
    \n
    \n
    \n \n
    \n
    {{userInfo.RoleName}}
    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n

    \n Customer Details\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n \n \n Customer\n name is required\n
    \n
    \n
    \n \n\n
    \n {{EnquiryObj.CustomerDetails.CustomerCode}}\n
    \n
    \n
    \n \n
    \n {{customerDrpdnDetails.IndustrySegment}}\n
    \n
    \n \n
    \n {{customerDrpdnDetails.CustomerType}}\n
    \n\n
    \n
    \n \n
    \n {{customerDrpdnDetails.CustomerCategory}}\n
    \n
    \n Customer Classification: *\n
    \n {{customerDrpdnDetails.CustomerClassification}}\n
    \n
    \n
    \n\n \n
    \n {{customerDrpdnDetails.Region}}\n
    \n
    \n \n
    \n \n
    \n
    \n Enquiry source is required\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Details\n

    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n Date is\n required\n
    \n
    \n
    \n
    \n \n
    \n \n Limit {{maxLimit}} characters, {{remLimit}}\n characters remaining.\n
    \n
    \n Enquiry description is required\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n Save\n Enquiry  \n \n
    \n
    \n
    \n \n
    \n\n \n\n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n\n\n","\nimport { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\n\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm } from '@angular/forms';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\n\nimport { EnquiryStatus } from \"src/app/EnquiryStatus\";\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-ceo-approval',\n templateUrl: './ceo-approval.component.html',\n styleUrls: ['./ceo-approval.component.scss']\n})\nexport class CeoApprovalComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean =false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable:boolean=false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange:any;\n Discounttorange:any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n\n workflowActionList:any[] = [];\n enquiryStatusList: EnquiryStatusList[]=[];\n workflowId:number;\n sendbackRules:EnquirySendBack[]=[];\n previousEnqStatus : any;\n roleOfAdmin : any;\n QuotationPdfGenerationHostPath:any;\n\n\n @Output() updateLoaderEvent = new EventEmitter();\n UserRolesData:any[]=[];\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title,private cd: ChangeDetectorRef,\n private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n\n }\n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);\n }, 2000);\n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getAllWorkFlow();\n this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n this.getEnquiryDetailsById();\n this.getEnquiryStatus();\n this.getUserRoles()\n this.isEnquiryLoaded = false;\n this.getSendbackWorkfow();\n\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n \n this.roleOfAdmin = UserRoles.Admin;\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n ScreenAccessSpecifier_ALL() {\n this.isEnquiryFormVisible = true;\n this.isRFQVisible = true;\n this.isQuoteGenerationVisible = true;\n this.isManagementApprovalVisible = true;\n this.isCEOApprovalVisible = true;\n this.EnquiryConfirmationVisible = true;\n this.isSOVisible = true;\n this.isOrderAcknowledgementVisible = true;\n this.isSupplychainVisible = true;\n this.isAccountsVisible = true;\n this.isOAGenerationVisible = true;\n\n }\n\n ScreenAccessSpecifier(role, enquirystatus) {\n //MAKE SCREENS VISIBLE ACCORDING TO LOGGED IN USER\n this.isEnquiryFormVisible = true;\n this.isRFQVisible = true;\n this.userid = localStorage.getItem(\"UserID\");\n\n //ADD CONDITION TO CHECK IF THE LOGGED IN USER IS INITIATOR OF THE ENQUIRY\n // SCREENS OPRN IN EDITABLE MODE TO INITIATOR OF THE ENQUIRY AND AMIN\n if ((enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id ||\n enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='RFQReworkbyL1')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRejectedbyMngmt_SalesDirector')[0]?.Pk_Id ||\n enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRejectedbyMngmt_CEO')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryTechnicalDiscardbyL1')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryTechnicalDiscardbyL2')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryTechnicalDiscardbyL3')[0]?.Pk_Id) &&\n (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id)) {\n this.AppGlobals.RFQ_SaveasDraftBySalesEngg = true;\n this.AppGlobals.RFQ_SubmitBySalesEngg = true;\n this.AppGlobals.isRFQEditable = true;\n this.AppGlobals.disable_RFQ_SaveasDraftBySalesEngg = true;\n this.AppGlobals.disable_RFQ_SubmitBySalesEngg = true;\n this.selectedIndexForStatus = 1;\n } else {\n this.AppGlobals.isRFQEditable = false;\n this.AppGlobals.RFQ_SaveasDraftBySalesEngg = false;\n this.AppGlobals.RFQ_SubmitBySalesEngg = false;\n this.AppGlobals.disable_RFQ_SaveasDraftBySalesEngg = false;\n this.AppGlobals.disable_RFQ_SubmitBySalesEngg = false;\n this.selectedIndexForStatus = 0;\n if ((this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) && this.EnquiryObj.EnquiryDetails.Status >= this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n this.EnquiryConfirmationVisible = true;\n this.AppGlobals.isEnquiryConfirmationEditable = false;\n if ((enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='OrderRejectedbyMngmt_SalesDirector')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='OrderRejectedbyMngmt_CEO')[0]?.Pk_Id) &&\n (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id)) {\n this.AppGlobals.isEnquiryConfirmationEditable = true;\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = true;\n } else {\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = false;\n }\n\n\n if (!this.AppGlobals.isEnquiryConfirmationEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Enquiry Confirmation')) {\n this.EnquiryConfirmationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n } else if ((this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) && this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id) {\n this.EnquiryConfirmationVisible = true;\n AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = true;\n this.AppGlobals.isEnquiryConfirmationEditable = true;\n }\n }\n\n if (!(this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == null ||\n this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == undefined ||\n this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == \"\")) {\n this.showQuotationLink = true;\n } else {\n this.showQuotationLink = false;\n }\n if (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) {\n this.showEditRFQ = true;\n this.isEditactivity = true;\n } else {\n this.showEditRFQ = false;\n this.isEditactivity = false;\n }\n if (this.EnquiryObj.EnquiryDetails.PendingAtRoleId == null) {\n this.isEditactivity = this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id ? true : false;\n \n }\n if (this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_CEO')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n this.isEditactivity = false;\n }\n else {\n this.isEditactivity = true;\n }\n\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n this.isEditactivity = false;\n }\n var screensRolewise = this.AppGlobals.screensVisibleAccordingtoEnquiryStatus.filter(x => x.role == role)[0]?.screensForStatus;\n if (screensRolewise != undefined) {\n var filteredscreens = screensRolewise.filter(x => x.status == enquirystatus)[0];\n if (filteredscreens != undefined) {\n this.selectedIndexForStatus = filteredscreens.selectedIndex;\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id) {\n\n }\n\n this.isQuoteGenerationVisible = filteredscreens.screens.indexOf('Quote Generation') > -1 ? true : false;\n if (this.isQuoteGenerationVisible) {\n this.AppGlobals.isQuoteGenerationEditable = filteredscreens.disableScreen.indexOf('Quote Generation') > -1 ? false : true;\n // #region VisibleButtons\n if (!this.AppGlobals.isQuoteGenerationEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Quote Generation')) {\n this.isQuoteGenerationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.QuoteGenearationAcceptByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearationAcceptByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_RemorkByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_RemorkByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_ForwardtoL2ByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_ForwardtoL2ByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_ForwardtoL3ByL2 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_ForwardtoL3ByL2') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendtoL2ByL3 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendtoL2ByL3') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendtoL1ByL2 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendtoL1ByL2') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendtoCustomerServiceByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendtoCustomerServiceByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendforApprovalByCustomerService = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendforApprovalByCustomerService') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendBOMProposalByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendBOMProposalByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_GenerateQuote = filteredscreens.visibleButtons.indexOf('QuoteGenearation_GenerateQuote') > -1\n && (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) ? true : false;\n this.AppGlobals.QuoteGenearation_EditRFQ = filteredscreens.visibleButtons.indexOf('QuoteGenearation_EditRFQ') > -1\n && (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) ? true : false;\n this.AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscard = filteredscreens.visibleButtons.indexOf('QuoteGenearation_Enquiry_TechnicalDiscard') > -1 \n && (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id ) ? true : false;\n //#endregion\n // #region enableButtons\n this.AppGlobals.disable_QuoteGenearationAcceptByL1 = filteredscreens.buttons.indexOf('QuoteGenearationAcceptByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_RemorkByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_RemorkByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_ForwardtoL2ByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_ForwardtoL2ByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_ForwardtoL3ByL2 = filteredscreens.buttons.indexOf('QuoteGenearation_ForwardtoL3ByL2') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendtoL2ByL3 = filteredscreens.buttons.indexOf('QuoteGenearation_SendtoL2ByL3') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendtoL1ByL2 = filteredscreens.buttons.indexOf('QuoteGenearation_SendtoL1ByL2') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendtoCustomerServiceByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_SendtoCustomerServiceByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = filteredscreens.buttons.indexOf('QuoteGenearation_SendforApprovalByCustomerService') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_SendBOMProposalByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_GenerateQuote = filteredscreens.buttons.indexOf('QuoteGenearation_GenerateQuote') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_EditRFQ = filteredscreens.buttons.indexOf('QuoteGenearation_EditRFQ') > -1 ? true : false;\n //this.AppGlobals.disable_QuoteGenearation_Enquiry_TechnicalDiscard = filteredscreens.buttons.indexOf('QuoteGenearation_Enquiry_TechnicalDiscard') > -1 ? true : false;\n \n //#endregion\n\n //CHECK IF QUOTATION TO BE SENT TO CUSTOMER SERVICE\n if (this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1) {\n var isSpecialPrice = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (element.SalesPrice == 3) {\n isSpecialPrice = true;\n }\n });\n if (enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationApprovedbyMngmt_SalesDirector')[0]?.Pk_Id ||\n enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationApprovedbyMngmt_CEO')[0]?.Pk_Id) {\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = true;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = false;\n } else {\n if (isSpecialPrice || this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = false;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = true;\n } else {\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = true;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = false;\n }\n }\n\n }\n }\n this.isManagementApprovalVisible = filteredscreens.screens.indexOf('Management Approval') > -1 ? true : false;\n if (this.isManagementApprovalVisible) {\n this.AppGlobals.isManagementApprovalEditable = filteredscreens.disableScreen.indexOf('Management Approval') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isManagementApprovalEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Management Approval')) {\n this.isManagementApprovalVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.ManagementApproval_RejectBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_ApproveBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_HoldBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_HoldBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_SendQuotationforApprovalBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_SendQuotationforApprovalBySalesDirector') > -1 ? true : false;\n\n this.AppGlobals.ManagementApproval_Order_RejectBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_Order_ApproveBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_SendOrderforApprovalBySalesDirector') > -1 ? true : false;\n //#endregion\n // #region enableButtons\n this.AppGlobals.disable_ManagementApproval_RejectBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_ApproveBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_HoldBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_HoldBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_SendQuotationforApprovalBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_SendQuotationforApprovalBySalesDirector') > -1 ? true : false;\n\n this.AppGlobals.disable_ManagementApproval_Order_RejectBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_Order_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_Order_ApproveBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_Order_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_SendOrderforApprovalBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_SendOrderforApprovalBySalesDirector') > -1 ? true : false;\n //#endregion\n }\n this.isCEOApprovalVisible = filteredscreens.screens.indexOf('CEO Approval') > -1 ? true : false;\n if (this.isCEOApprovalVisible) {\n this.AppGlobals.isCEOApprovalEditable = filteredscreens.disableScreen.indexOf('CEO Approval') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isCEOApprovalEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'CEO Approval')) {\n this.isCEOApprovalVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.ManagementApproval_RejectByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_RejectByCEO') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_HoldByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_HoldByCEO') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_ApproveByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_ApproveByCEO') > -1 ? true : false;\n\n this.AppGlobals.ManagementApproval_Order_ApproveByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_ApproveByCEO') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_Order_RejectByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_RejectByCEO') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_ManagementApproval_RejectByCEO = filteredscreens.buttons.indexOf('ManagementApproval_RejectByCEO') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_HoldByCEO = filteredscreens.buttons.indexOf('ManagementApproval_HoldByCEO') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_ApproveByCEO = filteredscreens.buttons.indexOf('ManagementApproval_ApproveByCEO') > -1 ? true : false;\n\n this.AppGlobals.disable_ManagementApproval_Order_ApproveByCEO = filteredscreens.buttons.indexOf('ManagementApproval_Order_ApproveByCEO') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_Order_RejectByCEO = filteredscreens.buttons.indexOf('ManagementApproval_Order_RejectByCEO') > -1 ? true : false;\n //#endregion\n }\n this.EnquiryConfirmationVisible = filteredscreens.screens.indexOf('Enquiry Confirmation') > -1 ? true : false;\n\n if (this.EnquiryConfirmationVisible) {\n this.AppGlobals.isEnquiryConfirmationEditable = filteredscreens.disableScreen.indexOf('Enquiry Confirmation') > -1 ? false : true;\n if (this.userid != this.EnquiryObj.EnquiryDetails.Initiator_Id && this.role != this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id && this.AppGlobals.isEnquiryConfirmationEditable) {\n this.EnquiryConfirmationVisible = false;\n this.selectedIndexForStatus = 0;\n }\n //#region VisibleButtons\n if (!this.AppGlobals.isEnquiryConfirmationEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Enquiry Confirmation')) {\n this.EnquiryConfirmationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = filteredscreens.visibleButtons.indexOf('EnquiryConfirmation_ConfimrOrderBySalesEngg') > -1 ? true : false;\n this.AppGlobals.EnquiryConfirmation_QuoteRevision = filteredscreens.visibleButtons.indexOf('EnquiryConfirmation_QuoteRevision') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_EnquiryConfirmation_QuoteRevision = filteredscreens.buttons.indexOf('EnquiryConfirmation_QuoteRevision') > -1 ? true : false;\n //#endregion\n\n }\n this.isSOVisible = filteredscreens.screens.indexOf('Sales Order') > -1 ? true : false;\n if (this.isSOVisible) {\n if (!(this.EnquiryObj.POValues == null || this.EnquiryObj.POValues?.length == 0)) {\n } else {\n this.getQuotationData();\n }\n\n //#region VisibleButtons\n\n this.AppGlobals.isSOEditable = filteredscreens.disableScreen.indexOf('Sales Order') > -1 ? false : true;\n if (!this.AppGlobals.isSOEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Sales Order')) {\n this.isSOVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.SO_SendtoSupplyChainByCustomerService = filteredscreens.visibleButtons.indexOf('SO_SendtoSupplyChainByCustomerService') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalByCustomerService = filteredscreens.visibleButtons.indexOf('ManagementApproval_SendOrderforApprovalByCustomerService') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_SO_SendtoSupplyChainByCustomerService = filteredscreens.buttons.indexOf('SO_SendtoSupplyChainByCustomerService') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_SendOrderforApprovalByCustomerService = filteredscreens.buttons.indexOf('ManagementApproval_SendOrderforApprovalByCustomerService') > -1 ? true : false;\n //#endregion\n }\n this.isSupplychainVisible = filteredscreens.screens.indexOf('Supply Chain') > -1 ? true : false;\n if (this.isSupplychainVisible) {\n this.AppGlobals.isSupplychainEditable = filteredscreens.disableScreen.indexOf('Supply Chain') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isSupplychainEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Supply Chain')) {\n this.isSupplychainVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.SupplyChain_SubmitBySupplyChain = filteredscreens.visibleButtons.indexOf('SupplyChain_SubmitBySupplyChain') > -1 ? true : false;\n // this.AppGlobals.OrderAcknowledmentNo = filteredscreens.visibleButtons.indexOf('OrderAcknowledmentNo') > -1 ? true: false;\n this.AppGlobals.MaterialReadyForDispatch = filteredscreens.visibleButtons.indexOf('MaterialReadyForDispatch') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_SupplyChain_SubmitBySupplyChain = filteredscreens.buttons.indexOf('SupplyChain_SubmitBySupplyChain') > -1 ? true : false;\n // this.AppGlobals.disable_OrderAcknowledmentNo = filteredscreens.buttons.indexOf('OrderAcknowledmentNo') > -1 ? true: false;\n\n //#endregion\n }\n this.isAccountsVisible = filteredscreens.screens.indexOf('Accounts') > -1 ? true : false;\n if (this.isAccountsVisible) {\n this.AppGlobals.isAccountsEditable = filteredscreens.disableScreen.indexOf('Accounts') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isAccountsEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Accounts')) {\n this.isAccountsVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n\n this.AppGlobals.Accounts_ConfimrOrderByAccounts = filteredscreens.visibleButtons.indexOf('Accounts_ConfimrOrderByAccounts') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_Accounts_ConfimrOrderByAccounts = filteredscreens.buttons.indexOf('Accounts_ConfimrOrderByAccounts') > -1 ? true : false;\n //#endregion\n }\n this.isOAGenerationVisible = filteredscreens.screens.indexOf('OAGenerate') > -1 ? true : false;\n if (this.isOAGenerationVisible) {\n this.AppGlobals.isOAGenerateEditable = filteredscreens.disableScreen.indexOf('OAGenerate') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isOAGenerateEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'OAGenerate')) {\n this.isOAGenerationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.OrderAcknowledmentNo = filteredscreens.visibleButtons.indexOf('OrderAcknowledmentNo') > -1 ? true : false;\n\n //#endregion\n //#region enableButtns\n\n //#endregion\n }\n }\n //TO SHOW THE SCREENS WHICH ARE PASSED BY CURRENT ROLE\n else {\n this.selectedIndexForStatus = 0;\n var screensVisibleAfterPassedArray = this.AppGlobals.screensVisibleAfterPassed.filter(x => x.role == role)[0]?.screens;\n var filterScreenArray = screensVisibleAfterPassedArray.filter(o1 => this.RoleWiseScreenDisplay.some(o2 => o1.screenName === o2));\n\n if (filterScreenArray != undefined) {\n var qgArray: any = filterScreenArray.filter(x => x.screenName == 'Quote Generation')[0]?.status;\n if (qgArray != undefined) {\n this.isQuoteGenerationVisible = qgArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isQuoteGenerationEditable = false;\n this.AppGlobals.QuoteGenearationAcceptByL1 = false;\n this.AppGlobals.QuoteGenearation_RemorkByL1 = false;\n this.AppGlobals.QuoteGenearation_ForwardtoL2ByL1 = false;\n this.AppGlobals.QuoteGenearation_ForwardtoL3ByL2 = false;\n this.AppGlobals.QuoteGenearation_SendtoL2ByL3 = false;\n this.AppGlobals.QuoteGenearation_SendtoL1ByL2 = false;\n this.AppGlobals.QuoteGenearation_SendtoCustomerServiceByL1 = false;\n this.AppGlobals.QuoteGenearation_SendforApprovalByCustomerService = false;\n this.AppGlobals.QuoteGenearation_SendBOMProposalByL1 = false;\n this.AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscard = false;\n }\n\n\n var maArray = filterScreenArray.filter(x => x.screenName == 'Management Approval')[0]?.status;\n if (maArray != undefined) {\n this.isManagementApprovalVisible = maArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isManagementApprovalEditable = false;\n this.AppGlobals.ManagementApproval_RejectBySalesDirector = false;\n this.AppGlobals.ManagementApproval_ApproveBySalesDirector = false;\n this.AppGlobals.ManagementApproval_HoldBySalesDirector = false;\n this.AppGlobals.ManagementApproval_SendQuotationforApprovalBySalesDirector = false;\n this.AppGlobals.ManagementApproval_Order_RejectBySalesDirector = false;\n this.AppGlobals.ManagementApproval_Order_ApproveBySalesDirector = false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalBySalesDirector = false;\n }\n\n var caArray = filterScreenArray.filter(x => x.screenName == 'CEO Approval')[0]?.status;\n if (caArray != undefined) {\n this.isCEOApprovalVisible = caArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isCEOApprovalEditable = false;\n this.AppGlobals.ManagementApproval_RejectByCEO = false;\n this.AppGlobals.ManagementApproval_HoldByCEO = false;\n this.AppGlobals.ManagementApproval_ApproveByCEO = false;\n\n this.AppGlobals.ManagementApproval_Order_ApproveByCEO = false;\n this.AppGlobals.ManagementApproval_Order_RejectByCEO = false;\n }\n\n\n var ecaArray = filterScreenArray.filter(x => x.screenName == 'Enquiry Confirmation')[0]?.status;\n if (ecaArray != undefined) {\n this.EnquiryConfirmationVisible = ecaArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isEnquiryConfirmationEditable = false;\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = false;\n }\n\n var soArray = filterScreenArray.filter(x => x.screenName == 'Sales Order')[0]?.status;\n if (soArray != undefined) {\n this.isSOVisible = soArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isSOEditable = false;\n this.AppGlobals.SO_SendtoSupplyChainByCustomerService = false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalByCustomerService = false;\n }\n\n\n var scArray = filterScreenArray.filter(x => x.screenName == 'Supply Chain')[0]?.status;\n if (scArray != undefined) {\n this.isSupplychainVisible = scArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isSupplychainEditable = false;\n this.AppGlobals.SupplyChain_SubmitBySupplyChain = false;\n this.AppGlobals.MaterialReadyForDispatch = false;\n }\n\n var acArray = filterScreenArray.filter(x => x.screenName == 'Accounts')[0]?.status;\n if (acArray != undefined) {\n this.isAccountsVisible = acArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isAccountsEditable = false;\n this.AppGlobals.Accounts_ConfimrOrderByAccounts = false;\n }\n\n var OAArray = filterScreenArray.filter(x => x.screenName == 'OAGenerate')[0]?.status;\n if (OAArray != undefined) {\n this.isOAGenerationVisible = OAArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isOAGenerateEditable = false;\n this.AppGlobals.OrderAcknowledmentNo = false;\n }\n }\n }\n\n }\n }\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n \n getQuotationData() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n this.QuotationDataForPO = data.QuotationObj;\n this.QuotationDataForPO.forEach(element => {\n var obj = new ProductModelPOValues();\n obj.ProductId = element.ProductId;\n obj.ProductModelName = element.ProductModelName;\n if (element.Variant1Name != undefined) obj.ProductModelName = obj.ProductModelName + ' (' + element.Variant1Name;\n if (element.Variant2Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant2Name;\n if (element.Variant3Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant3Name;\n if (element.Variant4Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant4Name;\n obj.ProductModelName = obj.ProductModelName + ')'\n obj.QUotationValue = element.FinalAmount;\n obj.ProductModelPOValue = \"\";\n this.EnquiryObj.POValues.push(obj);\n });\n });\n }\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n if(this.EnquiryObj.EnquiryDetails.segment!=undefined)\n {\n this.SubSegment = this.FinalSubSegment.filter(x=>x.SegmentId==this.EnquiryObj.EnquiryDetails.segment);\n this.Application= this.FinalApplication.filter(x=>x.SubSegmentId==this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if(this.EnquiryObj.EnquiryDetails.segment==null|| this.EnquiryObj.EnquiryDetails.subSegment==null || this.EnquiryObj.EnquiryDetails.application==null)\n {\n this.EnquiryObj.EnquiryDetails.segment=undefined;\n this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC=data.EnquiryDetails.IsFetchFromKYC;\n this.previousEnqStatus = this.EnquiryObj.EnquiryDetails.Status;\n \n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment; \n this.SubSegment = [];\n this.Application= []; \n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication= data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n //this.showLoader = false;\n });\n }\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n }\n OnQuantityChange(index) {\n if (this.EnquiryObj.RFQObject[index].Quantity < 1) {\n //alert('Quantity cannot be 0 or negative.');\n this.toastr.info('Quantity cannot be 0 or negative.');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n } else if (this.EnquiryObj.RFQObject[index].Quantity % 1 != 0) {\n // alert('Please enter the valid Quantity');\n this.toastr.info('Please enter the valid Quantity');\n\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n }\n this.EnquiryObj.RFQObject[index].QuantityValidation = false;\n }\n OnMDSOptionChange(index) {\n this.EnquiryObj.RFQObject[index].MDSOptionValidation = false;\n }\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n getCustomerList() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getProductDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.showLoader = false;\n });\n }\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n onEnquiryConfirmationStatusChange() {\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = null;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = this.WinLossDropdownDataForStatus[0].Id;\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == \"Lost\") {\n this.isPoValueDisable = true;\n this.EnquiryObj.EnquiryDetails.POValue = \"0\";\n } else {\n this.isPoValueDisable = false;\n this.EnquiryObj.EnquiryDetails.POValue = undefined;\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n GenerateOANumber() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Once OA Number Generated, can't be altered. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GenerateOANo', queryString).subscribe((data: any) => {\n\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = data;\n this.isOAGenerated = true;\n this.updateLoaderEvent.emit(false);\n this.toastr.success('Order Acknowledgement Number generated successfully!');\n\n }, error => {\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = undefined;\n this.toastr.error('Failed to Order Acknowledgement Number!');\n this.isOAGenerated = false;\n this.updateLoaderEvent.emit(false);\n });\n }\n });\n }\n onStepChange(data) {\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id && data.previouslySelectedIndex == 0 && this.activityDetails[0].Activity != \"\") {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Please make sure that you have saved the activity details. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n } else {\n this.stepper.selectedIndex = data.previouslySelectedIndex;\n }\n });\n }\n }\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n this.AddEnquiry();\n\n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n \n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard')\n {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions=null;\n }\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Customized')\n {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n } \n this.EnquiryObj.TermsAndConditions=null;\n } \n \n \n }\n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length==0)) {\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n // if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n // this.EnquiryObj.TermsAndConditions = null;\n \n // if(this.QGRFQEditable == true)\n // {\n // this.EnquiryObj.CustomTermsAndConditions;\n \n // }else{\n // this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n // }\n // }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n \n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n this.toastr.success(\"OA Number generated successfully\");\n }\n else {\n this.toastr.success(confimrmsg.successmsg);\n }\n\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n povalueChange(i) {\n var povalue: number = parseFloat(this.EnquiryObj.POValues[i].ProductModelPOValue);\n if (povalue == undefined || povalue == null) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue < 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue % 1 != 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (this.EnquiryObj.POValues[i].ProductModelPOValue.toString().includes(\".\")) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n }\n else {\n this.EnquiryObj.POValues[i].QUotationValueValidation = false;\n }\n }\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n \n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n\n getAllWorkFlow() {\n this.commonService.GetData(\"Workflow\", \"GetAll\", null).subscribe((data: any) => {\n \n if(data!=null){\n var workflowData = data;\n this.workflowId=workflowData.filter(x=>x.document_type_code == \"CEO_APPROVAL\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId); \n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getWorkflowActions(workflowId)\n { \n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId +\"&workflowId=\" + workflowId ;\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetTransitionRulesByStatus\",queryString).subscribe((data: any) => {\n this.workflowActionList=data;\n this.cd.detectChanges();\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus()\n {\n this.commonService.GetData(\"Enquiry\",\"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n OnWorkflowAction(myform10:NgForm,workflowActionId:number)\n { \n var rule= this.workflowActionList.filter(x=>x.workflowActionId==workflowActionId);\n \n myform10.control.markAllAsTouched();\n if(myform10.invalid)\n {\n this.toastr.error(\"Please fill required information\");\n return;\n } \n this.SetStatus(rule,myform10); \n }\n\n getUserRoles(){\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n \n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack(myform10: NgForm)\n { \n\n // myform10.control.markAllAsTouched();\n // if (myform10.invalid) {\n // this.toastr.error(\"Please fill required information\");\n // return;\n // }\n\n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n\n if(quotationRule[0].NextStatus != null)\n {\n this.rule = quotationRule[0];\n }\n else\n {\n if(this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationSentforMngmtApproval_CEO')[0].Pk_Id)\n {\n this.rule = quotationRule[0];\n this.rule.NextStatus = this.enquiryStatusList.filter(x=>x.Status=='QuotationSentforMngtApproval_SalesDirector')[0].Pk_Id\n }\n else if(this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_CEO')[0].Pk_Id)\n {\n this.rule = quotationRule[0];\n this.rule.NextStatus = this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0].Pk_Id;\n }\n \n \n }\n\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n // this.rule = quotationRule[0];\n // this.rule.EnquiryId=this.EnquiryObj.EnquiryDetails.EnquiryId;\n // this.rule.Comment = this.EnquiryObj.EnquiryDetails.Comments;\n \n // let rules = JSON.stringify(this.rule);\n // const frmData = new FormData();\n // frmData.append(\"rule\", rules);\n // this.commonService.PostData(\"EnquiryWorkflowTransitionRules\",\"SetStatus\",frmData,\"\",null).subscribe(data=>{\n // this.toastr.success(\"Enquiry sent one step back\");\n // window.location.reload();\n // }); \n }\n \n}\n\n","
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n CEO Approval - Quotation\n

    \n
    \n \n

    \n CEO Approval - Order\n

    \n
    \n
    \n

    \n CEO Approval\n

    \n
    \n\n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerName}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.IndustrySegment}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerType}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.Region}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.RFQTermsAndCondition}}\n
    \n
    \n \n
    \n €\n {{EnquiryObj.EnquiryDetails.FinalAmount |\n indianCurrency}}/-\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.KindAttention}}\n
    \n
    \n \n \n
    \n
    \n \n
    \n € {{EnquiryObj.EnquiryDetails.POValue |\n indianCurrency}}/-\n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n Upload\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n 0\">\n
      \n \n
    • \n {{item.name}}  
    • \n \n
    \n\n \n
    \n\n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n    \n\n\n \n\n \n\n
    \n\n
    \n
    \n
    \n\n
    \n \n
    \n
    \n\n\n \n \n
    \n \n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { EnquiryStatus } from 'src/app/EnquiryStatus';\nimport { EnquiryDetailsModel } from 'src/app/Model/EnquiryModel';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { Router } from '@angular/router';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { NgForm } from '@angular/forms';\n\n@Component({\n selector: 'app-close-opp-reason',\n templateUrl: './close-opp-reason.component.html',\n styleUrls: ['./close-opp-reason.component.scss']\n})\nexport class CloseOppReasonComponent implements OnInit {\n\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n\n @Input() showLoader: boolean = false;\n @Input() enquiryDataObj;\n closeOpportunityList: SingleFieldModel[] = [];\n enqId: any;\n enquiryStatus = EnquiryStatus;\n // closeOpportunityList: any;\n OppCloseId: any;\n role: string;\n enqNextStatusId:any;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n\n constructor(private toastr: ToastrService, private activeModal: NgbActiveModal,\n private commonService: CommonService, public dialog: MatDialog,\n private router: Router) { }\n // ngOnDestroy(): void {\n // this.showLoader=false;\n // }\n\n ngOnInit(): void {\n this.role = localStorage.getItem(\"UserRole\");\n this.enqId = this.enquiryDataObj.EnquiryId;\n //this.getAllCloseOpportunityReason();\n this.getAllCloseEnquiryReason();\n this.getEnquiryDetailsById(this.enqId);\n this.enqNextStatusId= this.enquiryDataObj.EnquiryStatusId;\n \n }\n \n\n getAllCloseOpportunityReason() {\n this.commonService.GetData(\"OpportunityCloseReason\", \"GetAll\", null).subscribe((data: any) => {\n this.closeOpportunityList = data;\n this.OppCloseId=undefined;\n },\n error => {\n this.toastr.error(\"Failed to load Data!\");\n this.showLoader = false;\n });\n }\n\n \n getAllCloseEnquiryReason() {\n let reasoncode = 'ENQ_CAT'\n let queryString = \"\";\n queryString = \"reasonCatCode=\" + reasoncode;\n this.commonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReason\", queryString).subscribe((data: any) => {\n this.closeOpportunityList = data;\n //this.OppCloseId=undefined;\n },\n error => {\n this.toastr.error(\"Failed to load Data!\");\n this.showLoader = false;\n });\n }\n\n \n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n\n getEnquiryDetailsById(id) {\n let queryString = \"\";\n queryString = \"id=\" + id;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n });\n }\n\n CloseOpportunityReason(closeOpportunityForm : NgForm){\n\n closeOpportunityForm.control.markAllAsTouched();\n if (closeOpportunityForm.invalid) {\n this.toastr.error(\"Please fill required information\");\n return;\n }\n var closereasondetails = this.closeOpportunityList.filter(x => x.Id == this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason)\n //this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus = closereasondetails[0].Name; \n this.EnquiryObj.EnquiryDetails.ReasonCategory = closereasondetails[0].ReasonCategoryId;\n this.EnquiryObj.EnquiryDetails.Status = this.enqNextStatusId;\n \n let enquiryDetails = JSON.stringify(this.EnquiryObj);\n const frmData = new FormData();\n frmData.append(\"enquiryDetails\", enquiryDetails);\n\n this.commonService.PostData(\"Enquiry\", \"CloseEnquiry\", frmData, null).subscribe((data: any) => { \n this.showLoader = false;\n this.toastr.success(\"Enquiry close approval sent to Sales Director.\"); \n this.router.navigate(['/Enquiry']);\n this.closePopup();\n \n }, error => {\n this.toastr.error('Failed to send approval to Sales Director');\n this.showLoader = false;\n });\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n \n}","\n
    \n \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n

    \n Close Enquiry Reason\n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Enquiry reason is required\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is required\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    ","import { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\n\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatus } from \"src/app/EnquiryStatus\";\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\ndeclare var require: any\n\n@Component({\n selector: 'app-confirm-invoice',\n templateUrl: './confirm-invoice.component.html',\n styleUrls: ['./confirm-invoice.component.scss']\n})\nexport class ConfirmInvoiceComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC: any[] = [];\n customTCValues: any[] = [];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean = false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable: boolean = false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange: any;\n Discounttorange: any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n QuotationPdfGenerationHostPath:any;\n\n workflowActionList: any[] = [];\n enquiryStatusList: EnquiryStatusList[] = [];\n workflowId: number;\n roleOfAdmin: any;\n @Output() updateLoaderEvent = new EventEmitter();\n UserRolesData: any[] = [];\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n\n }\n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n\n // const current = new Date();\n // this.config.minDate = { year: current.getFullYear(), month: current.getMonth() + 1, day: current.getDate() };\n // //this.config.maxDate = { year: 2020, month: 12, day: 31 };\n // this.config.outsideDays = 'hidden';\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);\n }, 2000);\n //this.stepper.selectedIndex = this.selectedIndexForStatus; \n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n this.getEnquiryDetailsById();\n this.getEnquiryStatus();\n this.getAllWorkFlow();\n this.getUserRoles();\n this.getSendbackWorkfow();\n this.isEnquiryLoaded = false;\n\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n\n this.roleOfAdmin = UserRoles.Admin;\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n deletePOAttachment(flag: any) {\n // this.EnquiryObj.EnquiryDetails.POAttchments = [];\n // this.isPOAttachment = false;\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.PO_filepath);\n this.isPOAttacmentDelete = true;\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.PO_filename = null;\n this.EnquiryObj.EnquiryDetails.PO_filepath = null;\n this.isPOAttachment = false;\n }\n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n editActivity() {\n this.isEditactivity = true;\n }\n cancelEditActivity() {\n this.isEditactivity = false;\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.updateLoaderEvent.emit(true);\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryObj.EnquiryDetails.EnquiryId;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n //this.isEditactivity = false;\n this.toastr.success(\"Activity details added successfully!\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getQuotationData() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n this.QuotationDataForPO = data.QuotationObj;\n this.QuotationDataForPO.forEach(element => {\n var obj = new ProductModelPOValues();\n obj.ProductId = element.ProductId;\n obj.ProductModelName = element.ProductModelName;\n if (element.Variant1Name != undefined) obj.ProductModelName = obj.ProductModelName + ' (' + element.Variant1Name;\n if (element.Variant2Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant2Name;\n if (element.Variant3Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant3Name;\n if (element.Variant4Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant4Name;\n obj.ProductModelName = obj.ProductModelName + ')'\n obj.QUotationValue = element.FinalAmount;\n obj.ProductModelPOValue = \"\";\n this.EnquiryObj.POValues.push(obj);\n });\n });\n }\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n\n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n\n //this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n\n if (this.EnquiryObj.EnquiryDetails.segment != undefined) {\n this.SubSegment = this.FinalSubSegment.filter(x => x.SegmentId == this.EnquiryObj.EnquiryDetails.segment);\n this.Application = this.FinalApplication.filter(x => x.SubSegmentId == this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if (this.EnquiryObj.EnquiryDetails.segment == null || this.EnquiryObj.EnquiryDetails.subSegment == null || this.EnquiryObj.EnquiryDetails.application == null) {\n this.EnquiryObj.EnquiryDetails.segment = undefined;\n this.EnquiryObj.EnquiryDetails.subSegment = undefined;\n this.EnquiryObj.EnquiryDetails.application = undefined;\n }\n\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = data.EnquiryDetails.IsFetchFromKYC;\n\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n // replaceAll(str, term, replacement) {\n // return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);\n // }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment;\n this.SubSegment = [];\n this.Application = [];\n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication = data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n //this.updateLoaderEvent.emit(false);\n });\n }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n\n this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n\n OnCustomValueChange1(index, id) {\n let CustTcObj1: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj1.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj1.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj1.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj1.CustTCId = id;\n\n let newCustomiseArr = this.EnquiryObj.CustomTermsAndConditions\n this.newCustomTc = newCustomiseArr.map((item, index) => {\n\n return {\n ...item,\n CustTCId: item.StandardTC == CustTcObj1.StandardTC ? Number(CustTcObj1.CustTCId) : Number(item.CustTCId),\n CustValue: item.StandardTC == CustTcObj1.StandardTC ? CustTcObj1.CustValue : item.CustValue\n }\n\n });\n this.EnquiryObj.CustomTermsAndConditions = this.newCustomTc;\n }\n\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n }\n OnQuantityChange(index) {\n if (this.EnquiryObj.RFQObject[index].Quantity < 1) {\n //alert('Quantity cannot be 0 or negative.');\n this.toastr.info('Quantity cannot be 0 or negative.');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n } else if (this.EnquiryObj.RFQObject[index].Quantity % 1 != 0) {\n // alert('Please enter the valid Quantity');\n this.toastr.info('Please enter the valid Quantity');\n\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n }\n this.EnquiryObj.RFQObject[index].QuantityValidation = false;\n }\n OnMDSOptionChange(index) {\n this.EnquiryObj.RFQObject[index].MDSOptionValidation = false;\n }\n OnSalesPriceChange(index) {\n\n this.EnquiryObj.RFQObject[index].SalesPriceValidation = false;\n\n // have to specify the id for Customer Special Discount /Contract Frame Agrrement \n\n if (this.EnquiryObj.RFQObject[index].SalesPrice == 4) {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnqCustomerDetails.CustomerId;\n this.commonService.GetData(\"CustomerSpecialDiscount\", \"GetById\", queryString).subscribe((data: any) => {\n this.EnquiryObj.CustomerSpecialDiscountdtls = data;\n if (this.EnquiryObj.CustomerSpecialDiscountdtls?.length == 0) {\n this.toastr.info('Customer Special Discount is not assigned to this Customer');\n this.EnquiryObj.RFQObject[index].SalesDiscount = \"0\";\n this.iseditable = false;\n\n }\n this.EnquiryObj.CustomerSpecialDiscountdtls.forEach(element => {\n if (element.Fk_ProductModel == this.EnquiryObj.RFQObject[index].ProductModel) {\n this.EnquiryObj.RFQObject[index].SalesDiscount = element.ProductDiscount.toString();\n\n this.iseditable = false\n }\n });\n\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n\n }\n\n if (this.EnquiryObj.RFQObject[index].SalesPrice != 4) {\n //this.getSalespricediscount(this.EnquiryObj.RFQObject[index].SalesPrice);\n\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.RFQObject[index].SalesPrice;\n this.commonService.GetData(\"SalesPrice\", \"GetById\", queryString).subscribe((data: any) => {\n\n this.EnquiryObj.RFQObject[index].SalesDiscount = data.DiscountFrom + \"-\" + data.DiscountTo;\n this.DiscountFromrange = data.DiscountFrom;\n this.Discounttorange = data.DiscountTo;\n this.iseditable = true;\n this.toastr.info(\"Enter the Sales Price in Range \" + this.EnquiryObj.RFQObject[index].SalesDiscount);\n\n if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) == 0 - 0) {\n this.EnquiryObj.RFQObject[index].SalesDiscount = \"0\";\n return;\n }\n }, error => {\n this.toastr.error(\"Failed to load data\");\n\n });\n this.updateLoaderEvent.emit(false);\n\n }\n\n }\n OnSalesDiscountChange(index) {\n if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) < 0) {\n //this.toastr.info('Sales Discount cannot be negative.');\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }\n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) > 100) {\n //this.toastr.info('Discount cannot be greater than 100.');\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }//10<23 && 23<20 10<18<20\n else if (!(this.DiscountFromrange <= this.EnquiryObj.RFQObject[index].SalesDiscount && this.EnquiryObj.RFQObject[index].SalesDiscount <= this.Discounttorange)) {\n this.toastr.info('Discount must be in range from' + ' ' + this.DiscountFromrange + ' ' + 'to' + ' ' + this.Discounttorange);\n return\n }\n\n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) % 1 != 0) {\n if (this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[1].length > 2 || this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[0].length > 2) {\n this.toastr.info(\"Only two numbers are allowed after decimal point\")\n // this.EnquiryObj.RFQObject[index].SalesDiscount = Math.round((this.EnquiryObj.RFQObject[index].SalesDiscount + Number.EPSILON) * 100) / 100;\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n }\n }\n this.EnquiryObj.RFQObject[index].SalesDiscountValidation = false;\n }\n\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n\n\n deleteAttachDocumentFromDB(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"MDS\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].MDS_filepath);\n this.EnquiryObj.RFQObject[index].MDS_filename = null;\n this.EnquiryObj.RFQObject[index].MDS_filepath = null;\n break;\n case \"ITC\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"ITC\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].ITC_filepath);\n this.EnquiryObj.RFQObject[index].deleted_ITC_filename = this.EnquiryObj.RFQObject[index].ITC_filename;\n this.EnquiryObj.RFQObject[index].deleted_ITC_filepath = this.EnquiryObj.RFQObject[index].ITC_filepath;\n this.EnquiryObj.RFQObject[index].ITC_filename = null;\n this.EnquiryObj.RFQObject[index].ITC_filepath = null;\n\n break;\n case \"Customer\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Customer\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Customer_filepath);\n this.EnquiryObj.RFQObject[index].Customer_filename = null;\n this.EnquiryObj.RFQObject[index].Customer_filepath = null;\n break;\n case \"Weiss\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Weiss\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Weiss_filepath);\n this.EnquiryObj.RFQObject[index].Weiss_filename = null;\n this.EnquiryObj.RFQObject[index].Weiss_filepath = null;\n break;\n }\n\n }\n\n deleteActivityDetails(index) {\n if (index != null) {\n this.activityDetails.splice(index, 1);\n }\n }\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n obj.ISNewActivityAdded = true;\n this.activityDetails.push(obj);\n }\n }\n\n getCustomerList() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getProductDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.updateLoaderEvent.emit(false);\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AddRFQDetails(index) {\n if (this.EnquiryObj.RFQObject[index].ProductLine != undefined && this.EnquiryObj.RFQObject[index].ProductModel != undefined &&\n this.EnquiryObj.RFQObject[index].Quantity != undefined) {\n\n this.EnquiryObj.RFQObject[index].IsRowDeleted = true;\n\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n openQuotationPopup(flag) {\n const frmData = new FormData();\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n this.updateLoaderEvent.emit(true);\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n this.commonService.PostData(\"Enquiry\", \"AddBOM\", frmData, null).subscribe((data: any) => {\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n const modalRef = this.modalService.open(EnquiryModalComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n modalRef.componentInstance.enquiObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n if (flag === 1) {\n } else {\n // this.saveQuoteLimit(this.QuotationNumber, result);\n }\n }\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n onEnquiryConfirmationStatusChange() {\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = null;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = this.WinLossDropdownDataForStatus[0].Id;\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == \"Lost\") {\n this.isPoValueDisable = true;\n this.EnquiryObj.EnquiryDetails.POValue = \"0\";\n } else {\n this.isPoValueDisable = false;\n this.EnquiryObj.EnquiryDetails.POValue = undefined;\n }\n }\n\n deleteRFQDetails(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.EnquiryObj.RFQObject.splice(index, 1);\n } else {\n this.EnquiryObj.RFQObject.pop();\n }\n }\n });\n }\n\n setTermsAndConditions() {\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true;\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n this.EnquiryObj.TermsAndConditions.forEach(element => {\n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0];\n element.TnCValue = tnc?.Value;\n });\n } else {\n this.isStandardCondition = false;\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n });\n\n }\n }\n\n setTermsAndConditionsEditRfq() {\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true;\n //this.EnquiryObj.TnCObject = this.demoObject; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n\n this.EnquiryObj.TermsAndConditions.forEach(element => {\n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0];\n element.TnCValue = tnc?.Value;\n\n });\n }\n else {\n this.isStandardCondition = false;\n\n if (this.EnquiryObj.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedDropDownForEditRfq2\n }\n\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n\n });\n }\n }\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n\n\n\n GenerateOANumber() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Once OA Number Generated, can't be altered. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GenerateOANo', queryString).subscribe((data: any) => {\n\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = data;\n this.isOAGenerated = true;\n this.updateLoaderEvent.emit(false);\n this.toastr.success('Order Acknowledgement Number generated successfully!');\n\n }, error => {\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = undefined;\n this.toastr.error('Failed to Order Acknowledgement Number!');\n this.isOAGenerated = false;\n this.updateLoaderEvent.emit(false);\n });\n }\n });\n }\n\n onStepChange(data) {\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id && data.previouslySelectedIndex == 0 && this.activityDetails[0].Activity != \"\") {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Please make sure that you have saved the activity details. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n } else {\n this.stepper.selectedIndex = data.previouslySelectedIndex;\n }\n });\n }\n }\n\n radioChange(event) {\n\n }\n\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n this.AddEnquiry();\n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n\n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions = null;\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Customized') {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n }\n this.EnquiryObj.TermsAndConditions = null;\n }\n\n\n }\n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'SendBOMandProposal')[0]?.Pk_Id || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.EnquiryObj.TermsAndConditions = null;\n\n if (this.QGRFQEditable == true) {\n this.EnquiryObj.CustomTermsAndConditions;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n }\n }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n\n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OANoGenerated')[0]?.Pk_Id) {\n this.toastr.success(\"OA Number generated successfully\");\n }\n else {\n this.toastr.success(confimrmsg.successmsg);\n }\n\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n povalueChange(i) {\n var povalue: number = parseFloat(this.EnquiryObj.POValues[i].ProductModelPOValue);\n if (povalue == undefined || povalue == null) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue < 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue % 1 != 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (this.EnquiryObj.POValues[i].ProductModelPOValue.toString().includes(\".\")) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n }\n else {\n this.EnquiryObj.POValues[i].QUotationValueValidation = false;\n }\n }\n editRFQ() {\n if (this.showQuotationLink) {\n this.toastr.info('Please note that editing the RFQ will reset the quotation.');\n }\n this.EnquiryObj.RFQObject.forEach(element => {\n element.deleted_MDS_filename = element.MDS_filename;\n element.deleted_MDS_filepath = element.MDS_filepath;\n\n element.deleted_ITC_filename = element.ITC_filename;\n element.deleted_ITC_filepath = element.ITC_filepath;\n\n element.deleted_Customer_filename = element.Customer_filename;\n element.deleted_Customer_filepath = element.Customer_filepath;\n\n element.deleted_Weiss_filename = element.Weiss_filename;\n element.deleted_Weiss_filepath = element.Weiss_filepath;\n });\n\n\n this.QGRFQEditable = true;\n\n }\n cancelEditingRFQ() {\n\n window.location.reload();\n this.QGRFQEditable = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n element.MDSAttachment = [];\n element.ITCAttachment = [];\n element.CustomerAttachment = [];\n element.WeissAttachment = [];\n element.isMDSAttachment = false;\n element.isITCAttachment = false;\n element.isCustomerAttachment = false;\n element.isWeissAttachment = false;\n element.MDS_filename = element.deleted_MDS_filename;\n element.MDS_filepath = element.deleted_MDS_filepath;\n\n element.ITC_filename = element.deleted_ITC_filename;\n element.ITC_filepath = element.deleted_ITC_filepath;\n\n element.Customer_filename = element.deleted_Customer_filename;\n element.Customer_filepath = element.deleted_Customer_filepath;\n\n element.Weiss_filename = element.deleted_Weiss_filename;\n element.Weiss_filepath = element.deleted_Weiss_filepath;\n });\n }\n\n onActivityChange(i) {\n if (this.activityDetails[i].Activity == undefined || this.activityDetails[i].Activity == null || this.activityDetails[i].Activity == \"\") {\n this.activityDetails[i].ActivityValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityValidation = false;\n }\n }\n onActivityDateChange(i) {\n if (this.activityDetails[i].ActivityDate == undefined || this.activityDetails[i].ActivityDate == null || this.activityDetails[i].ActivityDate == \"\") {\n this.activityDetails[i].ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityDateValidation = false;\n }\n }\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n calculateTotalPricesForProduct(index) {\n var modelprice = 0;\n var var1price = 0;\n var var2price = 0;\n var var3price = 0;\n var var4price = 0;\n var optionprice = 0;\n\n\n modelprice = this.QuotationData.QuotationObj[index].ProductModelPrice == undefined ? 0 : this.QuotationData.QuotationObj[index].ProductModelPrice;\n var1price = this.QuotationData.QuotationObj[index].Variant1Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant1Price;\n var2price = this.QuotationData.QuotationObj[index].Variant2Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant2Price;\n var3price = this.QuotationData.QuotationObj[index].Variant3Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant3Price;\n var4price = this.QuotationData.QuotationObj[index].Variant4Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant4Price;\n this.QuotationData.QuotationObj[index].PerUnitAmount = this.QuotationData.QuotationObj[index].PerUnitAmount == undefined ? 0 : this.QuotationData.QuotationObj[index].PerUnitAmount;\n this.QuotationData.QuotationObj[index].TotalAmount = this.QuotationData.QuotationObj[index].TotalAmount == undefined ? 0 : this.QuotationData.QuotationObj[index].TotalAmount;\n this.QuotationData.QuotationObj[index].FinalAmount = this.QuotationData.QuotationObj[index].FinalAmount == undefined ? 0 : this.QuotationData.QuotationObj[index].FinalAmount;\n\n this.QuotationData.QuotationObj[index].OptionsPrice = 0;\n this.QuotationData.QuotationObj[index].Options.forEach(element => {\n this.QuotationData.QuotationObj[index].OptionsPrice = this.QuotationData.QuotationObj[index].OptionsPrice + element.Price;\n optionprice = optionprice + element.Price;\n });\n\n this.QuotationData.QuotationObj[index].PerUnitAmount = modelprice + var1price + var2price + var3price + var4price + optionprice;\n this.QuotationData.QuotationObj[index].Variant1 = (this.QuotationData.QuotationObj[index].Variant1 == null || this.QuotationData.QuotationObj[index].Variant1 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant1;\n this.QuotationData.QuotationObj[index].Variant2 = (this.QuotationData.QuotationObj[index].Variant2 == null || this.QuotationData.QuotationObj[index].Variant2 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant2;\n this.QuotationData.QuotationObj[index].Variant3 = (this.QuotationData.QuotationObj[index].Variant3 == null || this.QuotationData.QuotationObj[index].Variant3 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant3;\n this.QuotationData.QuotationObj[index].Variant4 = (this.QuotationData.QuotationObj[index].Variant4 == null || this.QuotationData.QuotationObj[index].Variant4 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant4;\n this.QuotationData.QuotationObj[index].Discount = this.QuotationData.QuotationObj[index].Discount == undefined ? 0 : this.QuotationData.QuotationObj[index].Discount;\n\n var percent = 100 - this.QuotationData.QuotationObj[index].Discount;\n this.QuotationData.QuotationObj[index].TotalAmount = this.QuotationData.QuotationObj[index].PerUnitAmount * this.QuotationData.QuotationObj[index].Quantity;\n var final = this.QuotationData.QuotationObj[index].TotalAmount * (percent / 100);\n this.QuotationData.QuotationObj[index].FinalAmount = parseInt(final.toString());\n this.calculateTotalQuotationValues();\n }\n\n calculateTotalQuotationValues() {\n this.QuotationData.QuotationInfo.PerUnitAmount = 0;\n this.QuotationData.QuotationInfo.TotalAmount = 0;\n this.QuotationData.QuotationInfo.FinalAmount = 0;\n var final = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n this.QuotationData.QuotationInfo.PerUnitAmount = this.QuotationData.QuotationInfo.PerUnitAmount + element.PerUnitAmount;\n this.QuotationData.QuotationInfo.TotalAmount = this.QuotationData.QuotationInfo.TotalAmount + element.TotalAmount;\n final = parseFloat(final.toString()) + parseFloat(element.FinalAmount);\n });\n //this.QuotationData.QuotationInfo.FinalAmount = parseFloat(final.toString()).toFixed(2);\n this.QuotationData.QuotationInfo.FinalAmount = parseInt(final.toString());\n }\n\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n EditPO() {\n this.UpdatePO = true;\n\n setTimeout(() => {\n this.editpovalue.nativeElement.focus();\n }, 0);\n }\n\n\n openTechnicalDiscardPopup() {\n const modalRef = this.modalService.open(TechnicalDiscardComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n\n onIndustrySegmentSelect(value) {\n if (value != null) {\n this.SubSegment = this.FinalSubSegment.filter(x => x.SegmentId == value);\n this.Application = [];\n this.EnquiryObj.EnquiryDetails.subSegment = undefined;\n this.EnquiryObj.EnquiryDetails.application = undefined;\n }\n }\n onSubSegmentSelect(value) {\n if (value != null) {\n this.Application = this.FinalApplication.filter(x => x.SubSegmentId == value);\n }\n }\n\n\n getAllWorkFlow() {\n this.commonService.GetData(\"Workflow\", \"GetAll\", null).subscribe((data: any) => {\n var workflowData = data;\n if (workflowData != null) {\n this.workflowId = workflowData.filter(x => x.document_type_code == \"CONFIRM_INVOICE\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId);\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getWorkflowActions(workflowId: any) {\n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId + \"&workflowId=\" + workflowId;\n\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"GetTransitionRulesByStatus\", queryString).subscribe((data: any) => {\n this.workflowActionList = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus() {\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n OnWorkflowAction(myform9: NgForm, workflowActionId: number) {\n var rule = this.workflowActionList.filter(x => x.workflowActionId == workflowActionId);\n\n myform9.control.markAllAsTouched();\n if (myform9.invalid) {\n this.toastr.error(\"Please fill required information\");\n return;\n }\n this.SetStatus(rule, myform9);\n }\n\n getUserRoles() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n sendbackRules: EnquirySendBack[] = [];\n getSendbackWorkfow() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule: EnquirySendBack;\n SendBack() {\n var quotationRule = this.sendbackRules.filter(x => x.WorkflowId == this.workflowId);\n this.rule = quotationRule[0];\n\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n // this.rule.EnquiryId=this.EnquiryObj.EnquiryDetails.EnquiryId;\n\n // let rules = JSON.stringify(this.rule);\n // const frmData = new FormData();\n // frmData.append(\"rule\", rules);\n // this.commonService.PostData(\"EnquiryWorkflowTransitionRules\",\"SetStatus\",frmData,\"\",null).subscribe(data=>{\n // this.toastr.success(\"Enquiry sent one step back\");\n // window.location.reload();\n // }); \n }\n\n}\n","\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n

    \n Confirm Invoice\n

    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerName}}\n
    \n
    \n Segment:\n
    \n {{EnquiryObj.EnqCustomerDetails.IndustrySegment}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerType}}\n
    \n
    \n Region:\n
    \n {{EnquiryObj.EnqCustomerDetails.Region}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.RFQTermsAndCondition}}\n
    \n
    \n \n
    \n €\n {{EnquiryObj.EnquiryDetails.FinalAmount |\n indianCurrency}}/-\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.KindAttention}}\n
    \n
    \n \n \n
    \n
    \n \n
    \n € {{EnquiryObj.EnquiryDetails.POValue |\n indianCurrency}}/-\n
    \n
    \n \n \n\n
    \n\n
    \n\n \n \n
    \n \n
    \n \n
    \n\n\n
    \n
    \n \n
    \n \n
    \n
    \n Invoice Number is\n required\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n Attach Invoice\n \n
    \n
    \n \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n
    \n Invoice attachment is\n required\n
    \n
    \n {{EnquiryObj.EnquiryDetails.InvoiceAttachment\n != undefined &&\n EnquiryObj.EnquiryDetails.InvoiceAttachment[0]\n != undefined ?\n EnquiryObj.EnquiryDetails.InvoiceAttachment[0].name:\n \"\"}}\n
    \n
    \n\n \n
    \n\n
    \n\n
    \n\n \n
    \n
    \n Upload\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n \n
      \n \n
    • \n {{item.name}}  \n
    • \n \n
    \n
    \n
    \n\n
    \n
    \n Comments: *\n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n \n Comment is\n required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n    \n \n    \n Cancel\n
    \n
    \n
    \n \n\n\n\n","import { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, Inject, Renderer2, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { AlertsDetailsComponent } from '../../masters/Alerts/alerts-details/alerts-details.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n@Component({\n selector: 'app-edit-view-enquiry',\n templateUrl: './edit-view-enquiry.component.html',\n styleUrls: ['./edit-view-enquiry.component.scss']\n})\nexport class EditViewEnquiryComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n Id: any;\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean = false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable: boolean = false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange: any;\n Discounttorange: any;\n maxCharLimit: any = 50;\n remCharLimit: any = 50;\n maxappdescLimit: any = 1500;\n remappdescLimit: any = 1500;\n hasAccessForCustomersCustomer:boolean;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n enquiryStatusCode = EnquiryStatusCode;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 100;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n\n // @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n AlertReminderDays: number;\n showReminder: boolean = false;\n ReminderDays:number[]=[5,10,15,20];\n enquiryStatusList: any;\n isQuotation: boolean;\n workflowId=1;\n transitionRule:any;\n workflowActionList:any[] = [];\n closeOpportunityList: any;\n showRFQBtn: boolean;\n WinLossDataForStatus: any;\n @ViewChild('buttonclk', { static: false, read: ElementRef }) buttonclk: ElementRef;\n falseSetup: boolean;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title,\n private renderer: Renderer2, private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,private appConfigService: AppConfigService) \n {\n this.getEnquiryStatus();\n this.getReasonCategory();\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n }\n\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n this.getUserProfileInfo();\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\"); \n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n \n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getAllCloseOpportunityReason();\n this.getWorkflowActions();\n this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n this.getEnquiryDetailsById();\n this.isEnquiryLoaded = false;\n \n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n \n this.Id = this.route.snapshot.params[\"id\"];\n \n }\n \n ngAfterViewInit() { \n this.showLoader = true;\n this.falseSetup=true;\n setTimeout(() => {\n this.isprocessing = false; \n this.showLoader = true;\n this.triggerFalseClick();\n }, 2000);\n }\n \n\n hasScreenAccess()\n {\n if (this.RoleWiseScreenDisplay.some(x => x == 'Enquiry Form')) {\n this.isEnquiryFormVisible = true; \n } \n \n if (this.RoleWiseScreenDisplay.some(x => x == 'RFQ')) {\n this.isRFQVisible = true;\n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'Quote Generation')) {\n this.isQuoteGenerationVisible = true;\n }\n \n \n if (this.RoleWiseScreenDisplay.some(x => x == 'Management Approval')) {\n this.isManagementApprovalVisible = true; \n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'CEO Approval')) {\n this.isCEOApprovalVisible = true; \n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'Enquiry Confirmation')) {\n this.EnquiryConfirmationVisible = true;\n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'Sales Order')) {\n this.isSOVisible = true; \n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'Supply Chain')) {\n this.isSupplychainVisible = true; \n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'Accounts')) {\n this.isAccountsVisible = true; \n }\n \n if (this.RoleWiseScreenDisplay.some(x => x == 'OAGenerate')) {\n this.isOAGenerationVisible = true; \n }\n }\n \n //enquiryStatusCode:string;\n isVisibleStep(workflowCode){ \n \n let rfqVisible=[\n this.enquiryStatusCode.EnquiryClosePendingAtSalesDirector,\n this.enquiryStatusCode.EnquiryClosePendingAtCS,\n ]\n\n\n let quotationAllowedStatus= [this.enquiryStatusCode.RFQAcceptedbyL1,\n this.enquiryStatusCode.RFQsentbyL1toL2,\n this.enquiryStatusCode.RFQsentbyL2toL3,\n this.enquiryStatusCode.RFQSubmittedbyL1,\n this.enquiryStatusCode.RFQSubmittedbyL2,\n this.enquiryStatusCode.RFQSubmittedbyL3,\n this.enquiryStatusCode.RFQSubmittedbySalesEngg, \n this.enquiryStatusCode.SendBOMandProposal,\n this.enquiryStatusCode.QuotationPriceOnRequestbyL1,\n this.enquiryStatusCode.QuotationGeneratedbyL1,\n this.enquiryStatusCode.QuotationsentbyL2toL1,\n this.enquiryStatusCode.EnquiryTechnicalDiscardbyL1,\n this.enquiryStatusCode.QuotationPriceOnRequestbyL2,\n this.enquiryStatusCode.QuotationGeneratedbyL2,\n this.enquiryStatusCode.QuotationsentbyL3toL2,\n this.enquiryStatusCode.RFQsentbyL2toL3,\n this.enquiryStatusCode.RFQSubmittedbyL3,\n this.enquiryStatusCode.QuotationSaveAsDraftbyL3,\n this.enquiryStatusCode.QuotationPriceOnRequestbyL3,\n this.enquiryStatusCode.QuotationGeneratedbyL3,\n this.enquiryStatusCode.RFQSubmittedbyCustomerService,\n this.enquiryStatusCode.QuotationSaveAsDraftbyCustomerService,\n this.enquiryStatusCode.QuotationPriceOnRequestbyCustomerService,\n this.enquiryStatusCode.QuotationGeneratedbyCustomerService,\n this.enquiryStatusCode.QuotationSentForPriceDiscountApprovalToLevel1,\n this.enquiryStatusCode.PriceDiscountApprovedByL1,\n this.enquiryStatusCode.PriceDiscountApprovedByL2,\n this.enquiryStatusCode.PriceDiscountApprovedByL3,\n this.enquiryStatusCode.QuotationSentForPriceDiscountApprovalToLevel3,\n this.enquiryStatusCode.QuotationSentForPriceDiscountApprovalToLevel2,\n this.enquiryStatusCode.PriceDiscountRejectedByL1,\n this.enquiryStatusCode.PriceDiscountRejectedByL2,\n this.enquiryStatusCode.PriceDiscountRejectedByL3,\n this.enquiryStatusCode.QuotationSendtoCustomerServicebyL1,\n this.enquiryStatusCode.QuotationSendtoCustomerServicebyL2,\n this.enquiryStatusCode.QuotationSendtoCustomerServicebyL3,\n this.enquiryStatusCode.QuotationSenttoCustomerService,\n this.enquiryStatusCode.QuotationApprovedbyMngmt_CEO,\n this.enquiryStatusCode.EnquiryOrderConfirmedbySalesEngg,\n this.enquiryStatusCode.OrderApprovedbyMngmt_SalesDirector,\n this.enquiryStatusCode.OrderApprovedbyMngmt_CEO,\n this.enquiryStatusCode.QuotationSentforMngtApproval_SalesDirector,\n this.enquiryStatusCode.QuotationOnHoldbyMngmt_SalesDirector,\n this.enquiryStatusCode.OrdersentforMngmtApproval_SalesDirector,\n this.enquiryStatusCode.QuotationApprovedbyMngmt_SalesDirector,\n this.enquiryStatusCode.OrderRejectedbyMngmt_SalesDirector,\n this.enquiryStatusCode.OrderRejectedbyMngmt_CEO,\n this.enquiryStatusCode.OrdersentforMngmtApproval_CEO,\n this.enquiryStatusCode.QuotationSentforMngmtApproval_CEO,\n this.enquiryStatusCode.QuotationOnHoldbyMngmt_CEO,\n this.enquiryStatusCode.OrderConfirmedbyCustomerServiceSendSO,\n this.enquiryStatusCode.MaterialReadyForDistpatch,\n this.enquiryStatusCode.SupplyChainConfirmedDeliveryDate,\n this.enquiryStatusCode.QuotationSaveAsDraftbyL1,\n this.enquiryStatusCode.QuotationSaveAsDraftbyL2,\n this.enquiryStatusCode.QuotationGeneratedbyL1,\n this.enquiryStatusCode.QuotationGeneratedbyL2,\n this.enquiryStatusCode.QuotationGeneratedbyL3,\n this.enquiryStatusCode.EnquiryLost,\n this.enquiryStatusCode.AccountsConfirmInvoiceNo,\n this.enquiryStatusCode.PriceOnRequestSubmitted,\n this.enquiryStatusCode.OANoGenerated,\n ];\n\n let confirmationAllowedStatus= [this.enquiryStatusCode.SendBOMandProposal,\n this.enquiryStatusCode.OrderRejectedbyMngmt_SalesDirector, \n this.enquiryStatusCode.OrderRejectedbyMngmt_CEO,\n this.enquiryStatusCode.EnquiryOrderConfirmedbySalesEngg,\n this.enquiryStatusCode.OrdersentforMngmtApproval_SalesDirector,\n this.enquiryStatusCode.OrdersentforMngmtApproval_CEO,\n this.enquiryStatusCode.OrderConfirmedbyCustomerServiceSendSO,\n this.enquiryStatusCode.SupplyChainConfirmedDeliveryDate,\n this.enquiryStatusCode.OrderApprovedbyMngmt_CEO, \n this.enquiryStatusCode.OrderApprovedbyMngmt_SalesDirector,\n this.enquiryStatusCode.EnquiryLost,\n this.enquiryStatusCode.MaterialReadyForDistpatch,\n this.enquiryStatusCode.AccountsConfirmInvoiceNo,\n this.enquiryStatusCode.OANoGenerated,\n ];\n \n let salesOrderAllowedStatus= [\n this.enquiryStatusCode.EnquiryOrderConfirmedbySalesEngg,\n this.enquiryStatusCode.OrderApprovedbyMngmt_CEO,\n this.enquiryStatusCode.OrderApprovedbyMngmt_SalesDirector,\n this.enquiryStatusCode.OrdersentforMngmtApproval_SalesDirector,\n this.enquiryStatusCode.OrdersentforMngmtApproval_CEO,\n this.enquiryStatusCode.OrderConfirmedbyCustomerServiceSendSO,\n this.enquiryStatusCode.SupplyChainConfirmedDeliveryDate,\n this.enquiryStatusCode.MaterialReadyForDistpatch,\n this.enquiryStatusCode.AccountsConfirmInvoiceNo,\n this.enquiryStatusCode.OANoGenerated,\n ];\n \n let managementApprovalAllowedStatus= \n [\n this.enquiryStatusCode.OrdersentforMngmtApproval_SalesDirector, \n this.enquiryStatusCode.QuotationSentforMngtApproval_SalesDirector,\n this.enquiryStatusCode.QuotationOnHoldbyMngmt_CEO,\n this.enquiryStatusCode.QuotationSentforMngmtApproval_CEO,\n this.enquiryStatusCode.QuotationOnHoldbyMngmt_SalesDirector,\n this.enquiryStatusCode.QuotationSentForPriceDiscountApprovalToLevel1,\n this.enquiryStatusCode.QuotationSentForPriceDiscountApprovalToLevel2,\n this.enquiryStatusCode.QuotationSentForPriceDiscountApprovalToLevel3, \n ];\n\n let ceoApprovalAllowedStatus= \n [\n this.enquiryStatusCode.OrdersentforMngmtApproval_CEO,\n this.enquiryStatusCode.QuotationOnHoldbyMngmt_CEO,\n this.enquiryStatusCode.QuotationSentforMngmtApproval_CEO,\n \n ];\n let oaAllowedStatus= [\n this.enquiryStatusCode.OANoGenerated,\n this.enquiryStatusCode.OrderConfirmedbyCustomerServiceSendSO,\n this.enquiryStatusCode.SupplyChainConfirmedDeliveryDate,\n this.enquiryStatusCode.MaterialReadyForDistpatch, \n this.enquiryStatusCode.AccountsConfirmInvoiceNo\n ];\n\n let supplytChainAllowedStatus= [\n this.enquiryStatusCode.OANoGenerated,\n this.enquiryStatusCode.SupplyChainConfirmedDeliveryDate,\n this.enquiryStatusCode.MaterialReadyForDistpatch,\n this.enquiryStatusCode.AccountsConfirmInvoiceNo\n ];\n\n let confirmInvoiceAllowedStatus= [ \n this.enquiryStatusCode.MaterialReadyForDistpatch,\n this.enquiryStatusCode.AccountsConfirmInvoiceNo,\n ];\n \n if(workflowCode == 'RFQ'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n \n\n if(this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryLost')[0]?.Pk_Id)\n {\n let reasonCategoryDetails=this.WinLossDataForStatus.filter(y=>y.ReasonCategoryId==this.EnquiryObj.EnquiryDetails.ReasonCategory);\n if(reasonCategoryDetails.length>0)\n {\n if(reasonCategoryDetails[0]?.AvailableAtWorkflowScreen==1)\n {\n return false;\n } \n }\n }\n\n if(enquiryStatusCode.length>0)\n {\n let canShowtab=rfqVisible.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return false; \n } \n } \n return true;\n } \n if(workflowCode == 'QUOTATION'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n\n if(this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryLost')[0]?.Pk_Id)\n {\n let reasonCategoryDetails=this.WinLossDataForStatus.filter(y=>y.ReasonCategoryId==this.EnquiryObj.EnquiryDetails.ReasonCategory);\n if(reasonCategoryDetails.length>0)\n {\n if(reasonCategoryDetails[0]?.AvailableAtWorkflowScreen==1)\n {\n return false;\n } \n }\n }\n\n if(enquiryStatusCode.length>0)\n {\n let canShowtab=quotationAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n }\n \n } \n return false;\n } \n else if(workflowCode == 'ENQUIRY_CONFIRMATION'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n\n if(this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryLost')[0]?.Pk_Id)\n {\n let reasonCategoryDetails=this.WinLossDataForStatus.filter(y=>y.ReasonCategoryId==this.EnquiryObj.EnquiryDetails.ReasonCategory);\n if(reasonCategoryDetails.length>0)\n {\n if(reasonCategoryDetails[0]?.AvailableAtWorkflowScreen==1 || reasonCategoryDetails[0]?.AvailableAtWorkflowScreen==3)\n {\n return false;\n } \n }\n }\n\n if(enquiryStatusCode.length>0)\n {\n let canShowtab=confirmationAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n }\n \n } \n return false; \n } \n else if(workflowCode == 'SALES_ORDER'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n let canShowtab=salesOrderAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n }\n \n } \n return false; \n } \n else if(workflowCode == 'MANAGEMNT_APPROVAL'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n let canShowtab=managementApprovalAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n } \n } \n return false; \n } \n else if(workflowCode == 'CEO_APPROVAL'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n let canShowtab=ceoApprovalAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n } \n } \n return false; \n } \n else if(workflowCode == 'ORDER_ACK'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n let canShowtab = oaAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n } \n } \n return false; \n } \n else if(workflowCode == 'SUPPLY_CHAIN'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n let canShowtab=supplytChainAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n } \n } \n return false; \n } \n else if(workflowCode == 'CONFIRM_INVOICE'){ \n let enquiryStatusCode = this.enquiryStatusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n var canShowtab=confirmInvoiceAllowedStatus.filter(x=>x==enquiryStatusCode[0].Status);\n if(canShowtab.length>0)\n {\n return true; \n } \n } \n return false; \n } \n }\n\n\n getEnquiryStatus()\n {\n this.commonService.GetData(\"Enquiry\",\"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList=data; \n \n }, error => {\n this.showLoader=false;\n });\n }\n\n \n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n limitTextOnKeyUpDown2(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxCharLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxCharLimit);\n } else {\n this.remCharLimit = this.maxCharLimit - goalText.length;\n }\n }\n\n limitTextOnKeyUpDown3(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxappdescLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxappdescLimit);\n } else {\n this.remappdescLimit = this.maxappdescLimit - goalText.length;\n }\n }\n\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n\n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n editActivity() {\n this.isEditactivity = true;\n }\n cancelEditActivity() {\n this.isEditactivity = false;\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.showLoader = true;\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryObj.EnquiryDetails.EnquiryId;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n //this.isEditactivity = false;\n this.toastr.success(\"Activity details added successfully!\");\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.showLoader = false;\n });\n\n }\n\n \n\n getEnquiryDetailsById() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n \n this.EnquiryObj.EnquiryDetails = data?.EnquiryDetails;\n\n this.remLimit = this.maxLimit - data?.EnquiryDetails.EnquiryDescription?.length;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data?.CustomerDetails;\n this.EnquiryObj.RFQObject = data?.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data?.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data?.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data?.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data?.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data?.Comments == undefined ? [] : data?.Comments;\n this.EnquiryObj.POValues = data?.POValues;\n\n this.WinLossDropdownData = data?.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n\n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0 && data.EnquiryDetails.PreviousRFQTermsAndCondition == \"Standard\") {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n //this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n this.hasScreenAccess();\n \n if (this.EnquiryObj.EnquiryDetails.segment != undefined) {\n this.SubSegment = this.FinalSubSegment.filter(x => x.SegmentId == this.EnquiryObj.EnquiryDetails.segment);\n this.Application = this.FinalApplication.filter(x => x.SubSegmentId == this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if (this.EnquiryObj.EnquiryDetails.segment == null || this.EnquiryObj.EnquiryDetails.subSegment == null || this.EnquiryObj.EnquiryDetails.application == null) {\n this.EnquiryObj.EnquiryDetails.segment = undefined;\n this.EnquiryObj.EnquiryDetails.subSegment = undefined;\n this.EnquiryObj.EnquiryDetails.application = undefined;\n }\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = data.EnquiryDetails.IsFetchFromKYC;\n \n this.getReminderData();\n this.showGoToRFQPage();\n \n }, error => {\n this.showLoader = false;\n });\n\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n // replaceAll(str, term, replacement) {\n // return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);\n // }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.showLoader = true;\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment;\n this.SubSegment = [];\n this.Application = [];\n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication = data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n //this.showLoader = false;\n });\n }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n\n this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n\n\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n obj.ISNewActivityAdded = true;\n this.activityDetails.push(obj);\n }\n }\n\n getCustomerList() {\n this.showLoader = true;\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.showLoader = false;\n });\n }\n\n getEnquirySourceDetails() {\n this.showLoader = true;\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.showLoader = false;\n });\n }\n\n getProductDetails() {\n this.showLoader = true;\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.showLoader = false;\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AddRFQDetails(index) {\n if (this.EnquiryObj.RFQObject[index].ProductLine != undefined && this.EnquiryObj.RFQObject[index].ProductModel != undefined &&\n this.EnquiryObj.RFQObject[index].Quantity != undefined) {\n\n this.EnquiryObj.RFQObject[index].IsRowDeleted = true;\n\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n openQuotationPopup(flag) {\n const frmData = new FormData();\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n this.showLoader = true;\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n this.commonService.PostData(\"Enquiry\", \"AddBOM\", frmData, null).subscribe((data: any) => {\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n const modalRef = this.modalService.open(EnquiryModalComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n modalRef.componentInstance.enquiObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n if (flag === 1) {\n } else {\n // this.saveQuoteLimit(this.QuotationNumber, result);\n }\n }\n }, error => {\n this.showLoader = false;\n });\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n } \n\n\n // onStepChange(data) {\n\n // if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id && data.previouslySelectedIndex == 0 && this.activityDetails[0].Activity != \"\") {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: \"Please make sure that you have saved the activity details. Do you want to continue?\"\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n // } else {\n // this.stepper.selectedIndex = data.previouslySelectedIndex;\n // }\n // });\n // }\n // }\n\n\n SetStatus(status) { \n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status; \n this.AddEnquiry(); \n }\n\n AddEnquiry() {\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n // if (this.newRFQDetails != {}) {\n // this.isEnquirySubmit = true;\n // this.AddRFQDetails();\n // }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments?.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.MngOrderApprovalAttachments?.length; i++) {\n frmData.append(\"MngOrderApprovalAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.MngOrderApprovalAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.MngApprovalAttachments?.length; i++) {\n frmData.append(\"MngApprovalAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.MngApprovalAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.CEOApprovalAttachments?.length; i++) {\n frmData.append(\"CEOApprovalAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.CEOApprovalAttachments[i]);\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject?.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n \n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n \n this.toastr.success(\"Enquiry Updated successfully\");\n \n\n this.showLoader = false;\n \n this.router.navigate(['/Enquiry']);\n \n }, error => {\n this.toastr.error('Failed to Update enquiry');\n this.showLoader = false;\n });\n } else {\n this.showLoader=false;\n }\n });\n\n }\n \n\n onActivityChange(i) {\n if (this.activityDetails[i].Activity == undefined || this.activityDetails[i].Activity == null || this.activityDetails[i].Activity == \"\") {\n this.activityDetails[i].ActivityValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityValidation = false;\n }\n }\n onActivityDateChange(i) {\n if (this.activityDetails[i].ActivityDate == undefined || this.activityDetails[i].ActivityDate == null || this.activityDetails[i].ActivityDate == \"\") {\n this.activityDetails[i].ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityDateValidation = false;\n }\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n \n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n alert('No attachment present.');\n return;\n }\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n\n getReminderData() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetByReminderData', queryString).subscribe((data: any) => {\n let regionData = data;\n regionData.forEach(el => {\n if(el.ReminderType == 3 && el.isSent && this.UserRole==1){\n this.showReminder = true;\n }\n if (el.ReminderType == 3 && el.isSent && this.EnquiryObj.EnquiryDetails.PendingAtRoleId==this.UserRole) {\n this.showReminder = true;\n }\n if (el.ReminderType == 4 && el.isPostpone) {\n this.showReminder = false;\n } \n if (el.ReminderType == 4 && el.isSent) {\n this.showReminder = false;\n } \n });\n this.showLoader = false;\n });\n }\n\n AddReminderDays( myform: any){\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n queryString += \"&ReminderDay=\" + this.AlertReminderDays;\n this.commonService.GetData('Enquiry', 'UpdateReminderData', queryString).subscribe((data: any) => {\n if(data==1){\n this.toastr.success(\"Escalation Date Updated successfully\")\n window.location.reload();\n }\n })\n this.showLoader=false;\n }\n \n updateLoader(value: boolean) {\n if(this.falseSetup==true)\n {\n this.showLoader=true;\n }\n else\n {\n this.showLoader = value;\n }\n \n }\n\n getWorkflowActions()\n { \n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId +\"&workflowId=\" + this.workflowId ;\n\n this.showLoader=true;\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetTransitionRulesByStatus\",queryString).subscribe((data: any) => {\n if(data!=null)\n {\n this.workflowActionList=data;\n // this.workflowActionList=this.workflowActionList.filter(x=>x.workflowActionCode=='CloseEnquiry' || x.workflowActionCode=='Approve' ||x.workflowActionCode=='Reject' || x.workflowActionCode==\"Close\");\n } \n this.showLoader=false;\n }, error => {\n this.showLoader=false;\n });\n }\n\n\n OnWorkflowAction(myform1:NgForm,workflowActionId:number)\n { \n var rule= this.workflowActionList.filter(x=>x.workflowActionId==workflowActionId);\n var closeEnquiryRule= this.workflowActionList.filter(x=>x.workflowActionCode==\"CloseEnquiry\"); \n //var nextStatus=this.enquiryStatusList.filter(x=>x.Status=='EnquiryClosePendingAtSalesDirector')[0].Pk_Id;\n if(closeEnquiryRule.length>0 && rule[0].workflowActionId == closeEnquiryRule[0].workflowActionId){\n this.openCloseOppReasonPopup(closeEnquiryRule[0].workflowNextStatusId);\n return;\n }\n else\n {\n myform1.control.markAllAsTouched();\n if(myform1.invalid)\n {\n this.toastr.error(\"Please fill required information\");\n return;\n } \n }\n \n this.CloseEnquiry(rule);\n }\n \n openCloseOppReasonPopup(enquiryStatusId:any) {\n const modalRef = this.modalService.open(CloseOppReasonComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatusId: enquiryStatusId,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n \n CloseEnquiry(rule){\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to \" + rule[0].workflowActionCode + \"?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) { \n var closereasondetails = this.closeOpportunityList.filter(x => x.Id == this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason);\n if(rule[0].workflowNextStatusId==this.enquiryStatusList.filter(x=>x.Status=='EnquiryClosePendingAtSalesDirector')[0].Pk_Id)\n {\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus = closereasondetails[0].Name; \n } \n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n this.EnquiryObj.EnquiryDetails.Status=rule[0].workflowNextStatusId;\n // this.EnquiryObj.EnquiryDetails.ReasonCategory = closereasondetails[0].ReasonCategoryId;\n // this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n let enquiryDetails = JSON.stringify(this.EnquiryObj);\n \n const frmData = new FormData();\n frmData.append(\"enquiryDetails\", enquiryDetails);\n \n this.commonService.PostData(\"Enquiry\", \"CloseEnquiry\", frmData, null).subscribe((data: any) => { \n this.showLoader = false;\n if(rule[0].workflowActionCode==\"Approve\")\n this.toastr.success(\"Enquiry closure \" + rule[0].workflowActionCode +\"d successfully!\"); \n else if(rule[0].workflowActionCode==\"Reject\")\n this.toastr.success(\"Enquiry closure \" + rule[0].workflowActionCode +\"ed successfully!\"); \n else if(rule[0].workflowActionCode==\"Close\")\n this.toastr.success(\"Enquiry \" + rule[0].workflowActionCode +\"d successfully!\"); \n this.router.navigate(['/Enquiry']); \n }, error => {\n this.toastr.error('Failed to ' + rule[0].workflowActionCode);\n this.showLoader = false;\n });\n }\n }); \n }\n \n getAllCloseOpportunityReason() {\n this.commonService.GetData(\"OpportunityCloseReason\", \"GetAll\", null).subscribe((data: any) => {\n this.closeOpportunityList = data; \n },\n error => {\n this.toastr.error(\"Failed to load Data!\");\n this.showLoader = false;\n });\n }\n\n showGoToRFQPage()\n {\n this.showRFQBtn=true;\n let statusList=this.enquiryStatusList.filter(x=> x.Status=='EnquiryClosePendingAtSalesDirector' || x.Status=='EnquiryLost');\n \n if(statusList.length>0)\n { \n let enquiryStatusCode = statusList.filter(x=>x.Pk_Id == this.EnquiryObj.EnquiryDetails.Status); \n if(enquiryStatusCode.length>0)\n {\n this.showRFQBtn=false;\n } \n }\n }\n getReasonCategory()\n { \n this.showLoader=true;\n this.commonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReasonCategory\", null).subscribe((data: any) => {\n this.WinLossDataForStatus = data; \n \n this.showLoader=false;\n },\n error => {\n this.toastr.error(\"Failed to load Data!\");\n this.showLoader = false;\n });\n\n }\n checkStep(stepper: MatStepper){ \n this.selectedIndexForStatus=stepper.steps.length-1;\n }\n \n triggerFalseClick() {\n this.showLoader=true; \n setTimeout(() => { \n if(this.buttonclk!=undefined)\n {\n const buttonElement = this.buttonclk.nativeElement;\n this.renderer.selectRootElement(buttonElement).click();\n } \n this.showLoader=false; \n this.falseSetup=false;\n this.updateLoader(false);\n }, 6000); \n } \n\n getUserProfileInfo() {\n this.showLoader = true;\n this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n this.hasAccessToViewCustomersCustomer(data.RoleType); \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n hasAccessToViewCustomersCustomer(RoleType:any)\n {\n if(RoleType==3){\n this.hasAccessForCustomersCustomer=false\n }\n else{\n this.hasAccessForCustomersCustomer=true\n } \n }\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Edit/View Enquiry\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n\n \n
    \n \n
    \n
    \n This is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n \n\n \n
    \n Enquiry\n \n
    \n
    \n
    \n
    \n \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n
    {{EnquiryObj.EnquiryDetails.InitiatorName}}\n
    \n
    \n
    \n \n
    \n
    {{EnquiryObj.EnquiryDetails.RoleName}}
    \n   \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Details\n

    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerName}}\n
    \n
    \n \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerCode}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.IndustrySegment}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerType}}\n
    \n \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerCategory}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerClassification}}\n
    \n
    \n
    \n \n \n
    \n {{EnquiryObj.EnqCustomerDetails.Region}}\n
    \n
    \n \n
    \n \n
    \n
    \n Enquiry source is required\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Details\n

    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n Date is\n required\n
    \n
    \n
    \n \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.EnquiryNumber}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.EnquiryStatusDescription}}\n
    \n
    \n \n
    \n \n \n
    \n {{EnquiryObj.EnquiryDetails.ReasonCategoryName}}\n
    \n \n
    \n \n \n
    \n {{EnquiryObj.EnquiryDetails.EnquiryConfirmReasonName}}\n
    \n
    \n \n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}}\n characters remaining.\n
    \n
    \n Enquiry description is required\n
    \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n \n Limit {{maxappdescLimit}} characters,\n {{remappdescLimit}} characters\n remaining.\n
    \n
    \n Comment is required\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Engagement Activities\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n\n \n \n RFQ\n \n\n
    \n
    \n\n \n \n Quote\n Generation\n \n \n\n \n \n Enquiry\n Confirmation\n\n \n \n\n \n \n Sales Order(SO)\n Generation\n \n \n\n \n \n Management\n Approval\n \n \n \n\n \n \n CEO\n Approval\n\n \n \n\n\n \n \n Order\n Acknowledgement\n \n \n \n\n \n \n Supply\n Chain\n \n \n \n\n \n \n Confirm\n Invoice\n \n\n \n \n\n
    \n\n
    \n \n \n \n \n Enquiry Status\n \n \n Pending at Role\n \n \n Action by\n \n \n Action by Role\n \n \n Comment\n \n \n Comment Date\n \n \n Attachments\n \n \n \n \n \n \n \n {{field.DisplayStatus}}\n \n \n {{field.PendingAtRole}}\n \n \n {{field.CommentsBy}}\n \n \n {{field.RoleName}}\n \n \n {{field.Comments}}\n \n \n {{field.CommentDate | date: \"dd-MMM-yyyy h:mm a\"}}\n \n \n See\n Attachments\n Hide\n Attachments\n \n \n \n \n \n {{f.FileName}}
    \n
    \n \n \n \n\n \n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { QuotationDetailsModel, ProductDetailsModel, ProductDrpdnDetails, OptionsModel, QuotationCustomerDetails, TechnicalSpecifications, QuotationInfo } from 'src/app/Model/QuotationModel';\nimport { number } from '@amcharts/amcharts4/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as htmlToImage from 'html-to-image';\nimport { toPng, toJpeg, toBlob, toPixelData, toSvg } from 'html-to-image';\nimport { NgbActiveModal, NgbModal, NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Form, NgForm } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { EnquiryStatus } from \"src/app/EnquiryStatus\";\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { EnquiryDetailsModel, ProductDetails } from 'src/app/Model/EnquiryModel';\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { empty, forkJoin } from 'rxjs';\nimport { element } from 'protractor';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { map } from '@amcharts/amcharts4/.internal/core/utils/Iterator';\nimport { tap } from 'rxjs/operators';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-enquiry-modal',\n templateUrl: 'enquiry-modal.component.html',\n styleUrls: ['./enquiry-modal.component.scss']\n})\n\nexport class EnquiryModalComponent implements OnInit {\n dropdownData: any;\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n QuotationDatatoExport: QuotationDetailsModel = new QuotationDetailsModel();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n EmployeeDetails: EmployeeGuestModel = new EmployeeGuestModel();\n dropdownSettings = {};\n enquiryStatus = EnquiryStatus;\n IsQuotationDataValid: boolean = true;\n isQtyDiscountEditable:boolean=false;\n AppRoles: UserRoles;\n WeissLogoPath = \"SITELOGO\";\n Roles: any[] = [];\n isMenu:boolean=true;\n currentDate: Date = new Date();\n QuotationPdfGenerationHostPath:any;\n\n @Output() updateLoaderEvent = new EventEmitter();\n\n @ViewChild('QuotationForm') QuotationForm: NgForm;\n @ViewChild('refDateElement') refDateElement: ElementRef;\n @ViewChild('yourRefElement') yourRefElement: ElementRef;\n @ViewChild('keyPerElement') keyPerElement: ElementRef;\n @ViewChild('techspec') techspec: ElementRef;\n @ViewChild('keyPerEmail') keyPerEmail: ElementRef;\n @ViewChild('keyPerCNo') keyPerCNo: ElementRef;\n @ViewChild('QuoteComm') QuoteComm: ElementRef;\n\n @Input() enquiObj;\n productseriesDropdownData: any;\n productmdodelDropdownData: any;\n variantDropdownData: any;\n variant1Data: any[];\n variant2Data: any[];\n variant3Data: any[];\n variant4Data: any[];\n variantLabl1: any;\n variantLabl2: any;\n variantLabl3: any;\n variantLabl4: any;\n Options: any[] = [];\n optionsList: any[];\n selectedOptions: any[] = [];\n OptionsNameList: any[] = [];\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n enquiryStatusPassed: any;\n OptionsPrice: number;\n IsQuotationPriceOnRequest: any;\n optionsSelected: any[] = [];\n btnforL1: boolean = false;\n btnforL2: boolean = false;\n btnforL3: boolean = false;\n btn_PriceOnRequest: boolean = false;\n isPriceOnRequestVisible: boolean;\n user: string;\n isQuotationEditable: boolean;\n isfetchfromRFQ: boolean = false;\n isfinalamount: boolean = false;\n\n finalpricewithoutspecialdiscount: any = 0;\n discountaddmanually: boolean ;\n isPricesRequestedBeforeSubmit: boolean;\n TermsandConditions: any;\n SalesContactPersonValidation:boolean;\n YourRefValidation: boolean;\n RefDateValidation: boolean;\n KindAttValidation: boolean;\n isPriceOnRequestValid: boolean;\n columnCount: any = 0;\n showTechnicalSpecs: TechnicalSpecifications[] = new Array();\n role: string;\n btnforCS: boolean;\n charCode: any;\n KindAttContactNoValidilation: boolean;\n KingAttConactNumberValidationMsg: string = \"\";\n KindAttEmailValidilation: boolean;\n KingAttEmailValidationMsg: string = \"\";\n minDate: NgbDate;\n maxDate: NgbDate;\n displayfurtherrows: boolean = false;\n\n\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n QuoteCommentsValidation: Boolean;\n DiscountforOneOrAll: number;\n showVarientandOptionPrice: boolean = false;\n showVarientDiscount: boolean = false;\n showSpecialPrice: boolean = false;\n specialPkgDiscount: number;\n\n PendingAtRoleId: any;\n CustomTermsAndConditions: any;\n enqTcSelected: any;\n isenqTcSelected: boolean;\n transitionRule: any;\n EmployeeData: any[] = [];\n\n workflowActionList: any[] = [];\n enquiryStatusList: EnquiryStatusList[] = [];\n workflowId: number = 6;\n @Input() showLoader: boolean = false;\n authorityLevels: any;\n priceOnRequestAuthorities:any;\n \n priceonRequestDisabled:boolean=true;\n ispriceOnrequestTrigger: boolean=false;\n frameAgreemtdiscountDisabled: boolean=false;\n userRole: string;\n UserRolesData: any;\n isAppEngRoles: boolean=true;\n showOverallDiscount: boolean;\n mailIdFormat : any;\n salesPersonOfWhichComapany : any;\n \n constructor(\n private modalService: NgbModal\n , private commonService: CommonService\n , private activeModal: NgbActiveModal\n , public dialog: MatDialog\n , private toastr: ToastrService\n , private route: ActivatedRoute\n , private cd: ChangeDetectorRef\n , private router: Router\n , private Service: CommonService,\n private appConfigService: AppConfigService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(this.currentDate.getFullYear(), 12, 31);\n // Initialize KingAttEmailValidationMsg with a placeholder message\n this.KingAttEmailValidationMsg = 'Should be in Email Id format ([emailFormat])';\n }\n\n\n ngOnInit(): void {\n this.showLoader=true;\n this.mailIdFormat = this.appConfigService.getConfig().mailIdFormat;\n this.QuotationPdfGenerationHostPath=this.appConfigService.getConfig().QuotationPdfGenerationHostPath;\n this.salesPersonOfWhichComapany = this.appConfigService.getConfig().salesPersonOfWhichComapany;\n this.role = localStorage.getItem(\"UserRole\");\n this.QuotationData.QuotationInfo.EnquiryId = this.route.snapshot.params[\"id\"];//this.enquiObj.EnquiryId;\n \n this.hasAccesstoFillQtyDiscount();\n this.enquiryStatusPassed = this.enquiObj.EnquiryStatus;\n this.IsQuotationPriceOnRequest = this.enquiObj.IsQuotationPriceOnRequest;\n this.enqTcSelected = this.enquiObj.EnqTermsConditionSelected;\n this.TermsandConditions = this.enquiObj.TermsAndCondition;\n this.CustomTermsAndConditions = this.enquiObj.CustomTermsAndCondition;\n this.PendingAtRoleId = this.enquiObj.PendingAtRoleId;\n this.EnquiryObj = this.enquiObj;\n let enquirystatus = this.enquiryStatusPassed;\n\n if (this.enqTcSelected == 'Standard') {\n this.isenqTcSelected = true;\n } else {\n this.isenqTcSelected = false;\n }\n this.getAllEmployeeData();\n this.getUserRoles();\n \n this.getEnquiryStatus().subscribe((data:any)=>{ \n this.getQuotationDetailsById(); \n this.getWorkflowActions(); \n this.getPORAuthorities();\n });\n \n \n }\n\n GetXMLData() {\n this.showLoader=true;\n let queryString = \"\";\n queryString = \"id=\" + this.enquiObj.EnquiryId;\n this.commonService.GetData(\"Enquiry\", \"GetQuotationFromXMl\", queryString).subscribe((data: any) => {\n if (data != null) {\n this.QuotationData.QuotationInfo = data.QuotationInfo;\n this.QuotationData.QuotationObj = data.QuotationObj;\n\n if (this.QuotationData.QuotationInfo.ReferenceDateISO == undefined) this.QuotationData.QuotationInfo.ReferenceDateISO = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n else this.QuotationData.QuotationInfo.ReferenceDateISO = new NgbDate(new Date(this.QuotationData.QuotationInfo.ReferenceDate).getFullYear(), new Date(this.QuotationData.QuotationInfo.ReferenceDate).getMonth() + 1, new Date(this.QuotationData.QuotationInfo.ReferenceDate).getDate());\n if (this.QuotationData.QuotationObj.length == 0) {\n var obj = new ProductDetailsModel();\n this.QuotationData.QuotationObj.push(obj);\n }\n \n //all series data\n this.dropdownData = data.allseriesmodel;\n this.productDrpdnDetails.ProductSeries = this.dropdownData.ProductSeries;\n this.CustomerDetailsObj = data.allseriesmodel.CustomerDetails;\n\n this.QuotationData.QuotationInfo.KindAttention = this.CustomerDetailsObj.KindAttention;\n var inde = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n\n \n this.discountaddmanually = false;\n \n this.calculateTotalPricesForProduct(inde, 0);\n this.specialPkgDiscount = element.Special_pkg_Discount === null ? 0 : element.Special_pkg_Discount;\n \n this.showVarientandOptionPrice = element.showVariantOptionPrice === null ? false : element.showVariantOptionPrice;\n this.showVarientDiscount = element.showVariantOptionDiscount === null ? false : element.showVariantOptionDiscount;\n this.showSpecialPrice = element.showSpecialPrice === null ? false : element.showSpecialPrice;\n\n inde++;\n\n });\n\n\n }\n if(this.IsQuotationPriceOnRequest)\n {\n this.btn_PriceOnRequest = true;\n }\n //this.getPriceDiscountApprovalAuthority();\n this.showLoader=false;\n }, error => {\n this.toastr.error(\"Failed to load data.\");\n this.showLoader=false;\n });\n }\n getQuotationDetailsById() {\n this.showLoader=true;\n let queryString = \"\";\n queryString = \"id=\" + this.enquiObj.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n\n this.QuotationData.QuotationInfo = data.QuotationInfo;\n this.QuotationData.QuotationObj = data.QuotationObj;\n this.QuotationData.QuotationInfo.ReferenceDateISO = new NgbDate(new Date(this.QuotationData.QuotationInfo.ReferenceDate).getFullYear(), new Date(this.QuotationData.QuotationInfo.ReferenceDate).getMonth() + 1, new Date(this.QuotationData.QuotationInfo.ReferenceDate).getDate());\n //all series data\n this.dropdownData = data.allseriesmodel;\n this.productDrpdnDetails.ProductSeries = this.dropdownData.ProductSeries;\n this.CustomerDetailsObj = data.allseriesmodel.CustomerDetails;\n this.QuotationData.QuotationInfo.KindAttention = this.CustomerDetailsObj.KindAttention;\n // this.QuotationData.QuotationInfo.QuotationComments=this.CustomerDetailsObj. \n if(!this.QuotationData || !this.QuotationData.QuotationObj || this.QuotationData.QuotationObj.length==0)\n {\n this.GetXMLData();\n }\n else\n {\n this.QuotationData.QuotationObj?.forEach(element => {\n if (!(element.Discount==0 || element.Discount==null || element.Discount==undefined)) {\n this.discountaddmanually = false;\n }else{\n this.discountaddmanually = true;\n }\n element.selectedOptions?.forEach(a => {\n if (element.productmodeldata.Options.length != 0) {\n element.productmodeldata.Options?.forEach(b => {\n if (a.Id == b.Id && b.IsPriceOnRequest == true) {\n a.IsPriceOnRequest = true;\n }\n });\n }\n element.Options?.forEach(ele => {\n element.Option_Discount = ele.Option_Discount;\n element.Option_FinalDiscount = ele.Option_FinalDiscount;\n \n });\n this.specialPkgDiscount = element.Special_pkg_Discount === null ? 0 : element.Special_pkg_Discount;\n this.showVarientandOptionPrice = element.showVariantOptionPrice === null ? false : element.showVariantOptionPrice;\n this.showVarientDiscount = element.showVariantOptionDiscount === null ? false : element.showVariantOptionDiscount;\n this.showSpecialPrice = element.showSpecialPrice === null ? false : element.showSpecialPrice;\n });\n\n let data = element.Options.filter(x => x.IsPriceOnRequest == true);\n if (data.length > 0 && data.length != null && data.length != undefined) {\n element.IsPriceOnRequest_Option = true;\n }\n else {\n element.IsPriceOnRequest_Option = false;\n }\n });\n\n var inde = 0;\n this.QuotationData.QuotationObj?.forEach(element => {\n element.OptionSelected = [];\n\n // if (enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSendtoCustomerServicebyL1')[0]?.Pk_Id ||\n // enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSendtoCustomerServicebyL2')[0]?.Pk_Id ||\n // enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSendtoCustomerServicebyL3')[0]?.Pk_Id ||\n // enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSaveAsDraftbyCustomerService')[0]?.Pk_Id ||\n // enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSaveAsDraftbyL1')[0]?.Pk_Id ||\n // enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSaveAsDraftbyL2')[0]?.Pk_Id ||\n // enquirystatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationSaveAsDraftbyL3')[0]?.Pk_Id) {\n // this.calculateTotalPricesForProduct(inde, 1);\n // } else {\n // this.calculateTotalPricesForProduct(inde, 0);\n // }\n this.calculateTotalPricesForProduct(inde, 0);\n element.Options?.forEach(ele => {\n element.OptionSelected.push(ele.OptionId.toString());\n });\n inde++;\n });\n if(this.IsQuotationPriceOnRequest)\n {\n this.btn_PriceOnRequest = true;\t\n }\n }\n \n // this.getPriceDiscountApprovalAuthority();\n // this.showLoader=false;\n }, error => {\n this.toastr.error(\"Failed to load data.\");\n this.showLoader=false;\n });\n }\n\n getAllEmployeeData() {\n this.showLoader = true;\n this.Service.GetData(\"Employee\", \"GetAllEmployeeData\", null).subscribe((data: any) => {\n this.EmployeeData = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n showTechnicalSpecifications(i) {\n if (this.QuotationData.QuotationObj[i].ProductModel == undefined) {\n this.QuotationData.QuotationObj[i].ProductModelValidation = true;\n this.QuotationData.QuotationObj[i].ProductSeriesValidation = true;\n return;\n }\n this.QuotationData.QuotationObj[i].showTechnicalSpecifications = !this.QuotationData.QuotationObj[i].showTechnicalSpecifications;\n if (this.QuotationData.QuotationObj[i].showTechnicalSpecifications\n &&\n (this.QuotationData.QuotationObj[i].TechnicalSpecifications == undefined || this.QuotationData.QuotationObj[i].TechnicalSpecifications?.length == 0)) {\n\n\n var temp = [];\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = [];\n var obj = new TechnicalSpecifications();\n obj.ProductId = this.QuotationData.QuotationObj[i].ProductId;\n obj.uniqueid = this.makeRandom();\n temp.push(obj);\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = temp;\n }\n }\n\n ShowOptionPriceOnRequestGrid(i) {\n if (this.QuotationData.QuotationObj[i].ShowOptionPriceOnRequestGrid) {\n this.QuotationData.QuotationObj[i].ShowOptionPriceOnRequestGrid = false;\n }\n else {\n this.QuotationData.QuotationObj[i].ShowOptionPriceOnRequestGrid = true;\n }\n }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n addTechnicalSpec(i, index) {\n if (this.QuotationData.QuotationObj[i].TechnicalSpecifications[index].value != undefined) {\n var temp = this.QuotationData.QuotationObj[i].TechnicalSpecifications;\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = [];\n var obj = new TechnicalSpecifications();\n obj.ProductId = this.QuotationData.QuotationObj[i].ProductId;\n obj.uniqueid = this.makeRandom();\n temp.push(obj);\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = temp;\n\n }\n }\n deleteTechnicalSpec(i, tempindex) {\n var currentproduct = this.QuotationData.QuotationObj[i].TechnicalSpecifications;\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = [];\n currentproduct.splice(tempindex, 1);\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = currentproduct;\n }\n ButtonsAccess() {\n this.isQuotationEditable = true;\n /**************************Admin Access******************************* */\n if (this.role == UserRoles.Admin) {\n if (this.enquiObj.PendingAtRoleId == UserRoles.L1) {\n this.btnforL1 = true;\n }\n if (this.enquiObj.PendingAtRoleId == UserRoles.L2) {\n this.btnforL2 = true;\n }\n if (this.enquiObj.PendingAtRoleId == UserRoles.L3) {\n this.btnforL3 = true;\n }\n if (this.enquiObj.PendingAtRoleId == UserRoles.CustomerService) {\n this.btnforCS = true;\n }\n this.isQuotationEditable = true;\n }\n /**************************End Admin Access******************************* */\n if (this.role == UserRoles.L1) {\n this.btnforL1 = true;\n this.isQuotationEditable = true;\n }\n if (this.role == UserRoles.L2) {\n this.btnforL2 = true;\n this.isQuotationEditable = true;\n }\n if (this.role == UserRoles.L3) {\n this.btnforL3 = true;\n this.isQuotationEditable = true;\n }\n if (this.role == UserRoles.CustomerService) {\n this.btnforCS = true;\n this.isQuotationEditable = true;\n }\n if (this.IsQuotationPriceOnRequest) { \n this.btn_PriceOnRequest = true;\n \n }\n if (this.enquiryStatusPassed != this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n this.isPriceOnRequestVisible = true;\n }\n }\n\n\n clearRow(index) {\n this.productDrpdnDetails.ProductModel = [];\n this.QuotationData.QuotationObj[index].ProductModel = undefined;\n this.QuotationData.QuotationObj[index].Variant1Label = null;\n this.QuotationData.QuotationObj[index].Variant2Label = null;\n this.QuotationData.QuotationObj[index].Variant3Label = null;\n this.QuotationData.QuotationObj[index].Variant4Label = null;\n this.QuotationData.QuotationObj[index].Variant1 = undefined;\n this.QuotationData.QuotationObj[index].Variant2 = undefined;\n this.QuotationData.QuotationObj[index].Variant3 = undefined;\n this.QuotationData.QuotationObj[index].Variant4 = undefined;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = false;\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].Variant1Price = 0;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].OptionsPrice = 0;\n this.QuotationData.QuotationObj[index].Options = [];\n this.QuotationData.QuotationObj[index].OptionSelected = [];\n this.QuotationData.QuotationObj[index].selectedOptions = [];\n this.QuotationData.QuotationObj[index].selectedVariant1 = [];\n this.QuotationData.QuotationObj[index].selectedVariant2 = [];\n this.QuotationData.QuotationObj[index].selectedVariant3 = [];\n this.QuotationData.QuotationObj[index].selectedVariant4 = [];\n this.Options = [];\n\n this.QuotationData.QuotationObj[index].Variant1Validation = false;\n this.QuotationData.QuotationObj[index].Variant2Validation = false;\n this.QuotationData.QuotationObj[index].Variant3Validation = false;\n this.QuotationData.QuotationObj[index].Variant4Validation = false;\n\n this.QuotationData.QuotationObj[index].Options_POR_Validation = false;\n this.QuotationData.QuotationObj[index].ProductModelPrice = 0;\n this.QuotationData.QuotationObj[index].TotalforRfqdiscount = 0;\n\n this.QuotationData.QuotationObj[index].TotalAfterDiscount=0;\n this.QuotationData.QuotationObj[index].TotalAmount = 0;\n\n this.QuotationData.QuotationObj[index].Model_Discount = 0;\n this.QuotationData.QuotationObj[index].Model_FinalPrice = 0;\n\n this.QuotationData.QuotationObj[index].Units_Variant1 = 0;\n this.QuotationData.QuotationObj[index].Variant1Price = 0;\n this.QuotationData.QuotationObj[index].Varient1_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient1_FinalPrice = 0;\n\n this.QuotationData.QuotationObj[index].Units_Variant2 = 0;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].Varient2_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient2_FinalPrice = 0;\n\n this.QuotationData.QuotationObj[index].Units_Variant3 = 0;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].Varient3_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient3_FinalPrice = 0;\n\n this.QuotationData.QuotationObj[index].Units_Variant4 = 0;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].Varient4_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient4_FinalPrice = 0;\n\n this.QuotationData.QuotationObj[index].Option_Discount = 0;\n this.QuotationData.QuotationObj[index].Option_FinalDiscount = 0;\n this.QuotationData.QuotationInfo.FinalAmount = 0;\n\n }\n\n onProductFamilyChange(index) {\n //this.clearRow(index);\n //var selectedProductFamily = this.QuotationData.QuotationObj[index].ProductFamily;\n var selectedProductFamily = 1;\n this.productDrpdnDetails.ProductSeries = this.dropdownData.Product.filter(x => x.ProductFamily.Id == selectedProductFamily)?.ProductSeries;\n this.QuotationData.QuotationObj[index].selectedProductSeries = this.productDrpdnDetails.ProductSeries;\n this.QuotationData.QuotationObj[index].selectedProductModel = [];\n this.QuotationData.QuotationObj[index].ProductModel = undefined;\n\n }\n onProductSeriesChange(index) {\n this.showLoader=true;\n this.clearRow(index);\n this.QuotationData.QuotationObj[index].ProductSeriesValidation = false;\n var selectedProductSeries = this.QuotationData.QuotationObj[index].ProductSeries;\n this.QuotationData.QuotationObj[index].selectedProductModel = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.ProductModels;\n //currentProduct.selectedProductModel = this.productDrpdnDetails.ProductModel;\n\n this.QuotationData.QuotationObj[index].Variant1Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant1Label;\n this.QuotationData.QuotationObj[index].Variant2Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant2Label;\n this.QuotationData.QuotationObj[index].Variant3Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant3Label;\n this.QuotationData.QuotationObj[index].Variant4Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant4Label;\n this.setColspan(index);\n\n this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1 = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.IsLevel2DepOnLevel1;\n this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2 = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.IsLevel3DepOnLevel2;\n this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3 = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.IsLevel4DepOnLevel3;\n\n if (this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Name == 'HN' ||\n this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Name == 'HG') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n } else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n this.displayfurtherrows = true;\n this.showLoader=false;\n }\n onProductModelChange(index) {\n this.getFrameAgreement(index);\n this.showLoader=true;\n this.QuotationData.QuotationObj[index].ProductModelValidation = false;\n let queryString = \"\";\n queryString = \"ProductModelId=\" + this.QuotationData.QuotationObj[index].ProductModel;\n this.commonService.GetData(\"Enquiry\", \"GetQuotationVariantDropdownData\", queryString).subscribe((data: any) => {\n\n this.variantDropdownData = data;\n // this.productDrpdnDetails.Variant1 = this.variantDropdownData.Variant1;\n this.QuotationData.QuotationObj[index].productmodeldata = undefined;\n this.QuotationData.QuotationObj[index].selectedVariant1 = this.variantDropdownData.Variant1;\n\n if (!this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1 && this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1!=undefined) {\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2 && this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2!=undefined ) {\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3 && this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3!=undefined ) {\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4;\n\n }\n this.QuotationData.QuotationObj[index].Variant1 = null;\n this.QuotationData.QuotationObj[index].Variant2 = null;\n this.QuotationData.QuotationObj[index].Variant3 = null;\n this.QuotationData.QuotationObj[index].Variant4 = null;\n this.QuotationData.QuotationObj[index].OptionSelected = [];\n this.QuotationData.QuotationObj[index].selectedOptions = [];\n this.QuotationData.QuotationObj[index].Options = [];\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = false;\n if (this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name == 'HN' ||\n this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name == 'HG') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n } else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].Variant1Price = 0;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].OptionsPrice = 0;\n this.QuotationData.QuotationObj[index].selectedOptions = this.variantDropdownData.Options;\n this.QuotationData.QuotationObj[index].OptionSelected = [];\n this.QuotationData.QuotationObj[index].ProductModelPrice = this.variantDropdownData.Price;\n this.showLoader=false;\n\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader=false;\n }, error => {\n this.showLoader=false;\n });\n }\n\n onOptionSelect(item, index) {\n if (!item.isUserInput) {\n return;\n }\n var optionname;\n // this.QuotationData.QuotationObj[index].selectedOptions = [];\n // this.QuotationData.QuotationObj[index].selectedOptions = this.QuotationData.QuotationObj[index].productmodeldata.Options;\n if (this.Options.length == 0) {\n optionname = this.QuotationData.QuotationObj[index].selectedOptions.filter(x => x.Id == item.source.value)[0];\n } else {\n optionname = this.Options.filter(x => x.Id == item.source.value)[0];\n }\n if (item.source._selected) {\n var opObj = new OptionsModel();\n opObj.OptionId = optionname.Id;\n opObj.ProductOptionId = optionname.ProductOptionId;\n opObj.Price = optionname.Price;\n opObj.Name = optionname.Name;\n opObj.IsPriceOnRequest = optionname.IsPriceOnRequest;\n opObj.optionValid = false;\n\n this.QuotationData.QuotationObj[index]?.Options.push(opObj);\n } else {\n this.QuotationData.QuotationObj[index].Options = this.QuotationData.QuotationObj[index]?.Options.filter(x => x.OptionId != item.source.value);\n }\n let anyOptionPOR = this.QuotationData.QuotationObj[index]?.Options.filter(x => x.IsPriceOnRequest == true);\n if (anyOptionPOR.length > 0 && anyOptionPOR.length != null && anyOptionPOR.length != undefined) {\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = true;\n }\n else {\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = false;\n }\n // if (this.QuotationData.QuotationObj[index].Options.length == 0) {\n // this.QuotationData.QuotationObj[index].OptionsValidation = true;\n // } else {\n // this.QuotationData.QuotationObj[index].OptionsValidation = false;\n // }\n\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n onVariant1Change(index) {\n this.showLoader=true;\n this.QuotationData.QuotationObj[index].Variant1Validation = false;\n this.productDrpdnDetails.IsLevel2DepOnLevel1 = this.dropdownData.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0].IsLevel2DepOnLevel1;\n\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var var1Obj = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = var1Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant1) {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant1;\n } else {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = var1Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].Variant2 = null;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n this.productDrpdnDetails.Variant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n }\n } else {\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var var1Obj = this.QuotationData.QuotationObj[index].selectedVariant1.filter(x => x.Id == selectedVariant1)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = var1Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant1) {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant1;\n } else {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = var1Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].Variant2 = null;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n this.productDrpdnDetails.Variant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n }\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader=false;\n }\n onVariant2Change(index) {\n this.showLoader=true;\n this.QuotationData.QuotationObj[index].Variant2Validation = false;\n this.productDrpdnDetails.IsLevel3DepOnLevel2 = this.dropdownData.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0].IsLevel3DepOnLevel2;\n\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n this.QuotationData.QuotationObj[index].IsUnits_Variant2 = var2Obj?.IsUnits;\n var var2Obj = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0];\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant2) {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant2;\n } else {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = var2Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].Variant3 = null;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n this.productDrpdnDetails.Variant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n }\n } else {\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n var var2Obj = this.QuotationData.QuotationObj[index].selectedVariant2.filter(x => x.Id == selectedVariant2)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant2 = var2Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant2) {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant2;\n } else {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = var2Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].Variant3 = null;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n this.productDrpdnDetails.Variant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n }\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader=false;\n }\n onVariant3Change(index) {\n this.showLoader=true;\n this.QuotationData.QuotationObj[index].Variant3Validation = false;\n this.productDrpdnDetails.IsLevel4DepOnLevel3 = this.dropdownData.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0].IsLevel4DepOnLevel3;\n\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var var3Obj = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant3 = var3Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant3) {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant3;\n } else {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = var3Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].Variant4 = null;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n this.productDrpdnDetails.Variant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n }\n } else {\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var var3Obj = this.QuotationData.QuotationObj[index].selectedVariant3.filter(x => x.Id == selectedVariant3)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant3 = var3Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant3) {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant3;\n } else {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = var3Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].Variant4 = null;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n this.productDrpdnDetails.Variant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n }\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader=false;\n }\n onVariant4Change(index) {\n this.showLoader=true;\n this.QuotationData.QuotationObj[index].Variant4Validation = false;\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n var var4Obj = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant4 = var4Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant4) {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant4;\n } else {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = var4Obj?.IsPriceOnRequest;\n } else {\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n\n var var4Obj = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant4 = var4Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant4) {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant4;\n } else {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = var4Obj?.IsPriceOnRequest;\n\n /*************************************************************************************************** */\n\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader=false;\n }\n // var1UnitsChange(index) {\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant1.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant1 == undefined || this.QuotationData.QuotationObj[index].Units_Variant1 == null) {\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant1 < 0) {\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant1 % 1 != 0) {\n // this.toastr.info('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // } else if (strunits.includes(\".\")) {\n // this.toastr.info('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n\n // else {\n\n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant1 % 100 != 0)) {\n // this.toastr.info('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n // var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n // this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n // } else {\n // var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n // var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n // this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n // //this.QuotationData.QuotationObj[index].Variant1Price = this.QuotationData.QuotationObj[index].selectedVariant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n\n // var2UnitsChange(index) {\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant2.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant2 == undefined || this.QuotationData.QuotationObj[index].Units_Variant2 == null) {\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant2 < 0) {\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant2 % 1 != 0) {\n // this.toastr.info('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n // else if (strunits.includes(\".\")) {\n // this.toastr.info('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n // else {\n\n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant2 % 100 != 0)) {\n // this.toastr.info('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n // var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n // this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n // } else {\n // var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n // var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n // this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n // // this.QuotationData.QuotationObj[index].Variant2Price = this.productDrpdnDetails.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n // var3UnitsChange(index) {\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant3.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant3 == undefined || this.QuotationData.QuotationObj[index].Units_Variant3 == null) {\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant3 < 0) {\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant3 % 1 != 0) {\n // this.toastr.info('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n // else if (strunits.includes(\".\")) {\n // this.toastr.info('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n // else {\n\n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant3 % 100 != 0)) {\n // this.toastr.info('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n // var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n // this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n // } else {\n // var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n // var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n // this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n // //this.QuotationData.QuotationObj[index].Variant3Price = this.productDrpdnDetails.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n // var4UnitsChange(index) {\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant4.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant4 == undefined || this.QuotationData.QuotationObj[index].Units_Variant4 == null) {\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant4 < 0) {\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant4 % 1 != 0) {\n // this.toastr.info('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n // else if (strunits.includes(\".\")) {\n // this.toastr.info('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n // }\n\n // this.IsQuotationDataValid = false;\n // }\n // else {\n\n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant4 % 100 != 0)) {\n // this.toastr.info('Please enter the units in multiple of 100');\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n // var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n // this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n // } else {\n // var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n // var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n // this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n // // this.QuotationData.QuotationObj[index].Variant4Price = this.productDrpdnDetails.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n\n var1PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant1Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant1 && (element.Variant1Price == undefined || element.Variant1Price == null || (element.Variant1Price == 0 && element.Units_Variant1 != 0) || (element.Variant1Price != 0 && element.Units_Variant1 == 0))) {\n element.var1_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant1 && (element.Variant1Price < 0)) {\n element.var1_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant1Price % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n element.Variant1Price = 0;\n this.IsQuotationDataValid = false;\n } else if (strprice.includes(\".\")) {\n this.toastr.info('Please enter valid price');\n element.Variant1Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var1_POR_Validation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n var2PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant2Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant2 && (element.Variant2Price == undefined || element.Variant2Price == null || (element.Variant2Price == 0 && element.Units_Variant2 != 0) || (element.Variant2Price != 0 && element.Units_Variant2 == 0))) {\n element.var2_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant2 && (element.Variant2Price < 0)) {\n element.var2_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant2Price % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n element.Variant2Price = 0;\n this.IsQuotationDataValid = false;\n } else if (strprice.includes(\".\")) {\n this.toastr.info('Please enter valid price');\n element.Variant2Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var2_POR_Validation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n var3PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant3Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant3 && (element.Variant3Price == undefined || element.Variant3Price == null || (element.Variant3Price == 0 && element.Units_Variant3 != 0) || (element.Variant3Price != 0 && element.Units_Variant3 == 0))) {\n element.var3_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant3 && (element.Variant3Price < 0)) {\n element.var3_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant3Price % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n element.Variant3Price = 0;\n this.IsQuotationDataValid = false;\n } else if (strprice.includes(\".\")) {\n this.toastr.info('Please enter valid price');\n element.Variant3Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var3_POR_Validation = false;\n this.IsQuotationDataValid = true;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n var4PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant4Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant4 && (element.Variant4Price == undefined || element.Variant4Price == null || (element.Variant4Price == 0 && element.Units_Variant4 != 0) || (element.Variant4Price != 0 && element.Units_Variant4 == 0))) {\n element.var4_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant4 && (element.Variant4Price < 0)) {\n element.var4_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant4Price % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n element.Variant4Price = 0;\n this.IsQuotationDataValid = false;\n }\n else if (strprice.includes(\".\")) {\n this.toastr.info('Please enter valid price');\n element.Variant4Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var4_POR_Validation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n varOptionPORChange(i, j) {\n var element = this.QuotationData.QuotationObj[i];\n let strprice = element.Options[j].Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Option && (element.Options[j].Price == undefined || element.Options[j].Price == null || element.Options[j].Price == 0)) {\n element.Options[j].optionValid = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Option && element.Options[j].Price < 0) {\n element.Options[j].optionValid = true;\n this.IsQuotationDataValid = false;\n } else if (element.Options[j].Price % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n element.Options[j].Price = 0;\n this.IsQuotationDataValid = false;\n }\n else if (strprice.includes(\".\")) {\n this.toastr.info('Please enter valid price');\n element.Options[j].Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.Options[j].optionValid = false;\n this.IsQuotationDataValid = true;\n }\n this.calculateTotalPricesForProduct(i, 1);\n }\n\n onQuatityChange(index) {\n\n let strquantity = this.QuotationData.QuotationObj[index].Quantity.toString();\n if ((this.QuotationData.QuotationObj[index].Quantity == 0 || this.QuotationData.QuotationObj[index].Quantity == null || this.QuotationData.QuotationObj[index].Quantity == undefined)) {\n this.QuotationData.QuotationObj[index].Quantity = 1;\n } else if (this.QuotationData.QuotationObj[index].Quantity % 1 != 0) {\n this.QuotationData.QuotationObj[index].QuantityValidation = true;\n return;\n } else {\n this.QuotationData.QuotationObj[index].QuantityValidation = false;\n }\n if (this.QuotationData.QuotationObj[index].Quantity > 1000) {\n this.QuotationData.QuotationObj[index].QuantityRangeValidation = true;\n return;\n } else if (this.QuotationData.QuotationObj[index].Quantity < 1) {\n this.QuotationData.QuotationObj[index].QuantityValidation = true;\n return;\n } else if (strquantity.includes(\".\")) {\n this.toastr.info('Please enter valid Quantity');\n this.QuotationData.QuotationObj[index].Quantity = null;\n return;\n }\n else {\n this.QuotationData.QuotationObj[index].QuantityRangeValidation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n maxDiscount: number = 0;\n getMaxDiscountAndAuthorities() {\n //FOR EVERY CHANGE OF DISCOUNT WE ARE FETCHING THE SALES PRICE AUTHORITIES FOR WORKFLOW PROCESS\n this.maxDiscount = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n if (this.maxDiscount < element.Discount) {\n this.maxDiscount = element.Discount;\n }\n });\n //this.getPriceDiscountApprovalAuthority();\n }\n\n onDiscountChange(index) {\n \n this.getPriceDiscountApprovalAuthorityByPayload();\n // this.getPriceDiscountApprovalAuthority();\n\n if ((this.QuotationData.QuotationObj[index].Discount < 0) || (this.QuotationData.QuotationObj[index].Varient1_Discount < 0)\n || (this.QuotationData.QuotationObj[index].Varient2_Discount < 0) || (this.QuotationData.QuotationObj[index].Varient4_Discount < 0)\n || (this.QuotationData.QuotationObj[index].Varient4_Discount < 0) || (this.QuotationData.QuotationObj[index].Option_Discount < 0)\n || (this.specialPkgDiscount < 0) ||(this.QuotationData.QuotationObj[index].Model_Discount<0)) {\n this.QuotationData.QuotationObj[index].Discount = 0;\n this.QuotationData.QuotationObj[index].Model_Discount=0;\n this.QuotationData.QuotationObj[index].Varient1_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient2_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient3_Discount = 0;\n this.QuotationData.QuotationObj[index].Varient4_Discount = 0;\n this.QuotationData.QuotationObj[index].Option_Discount = 0;\n }\n else if ((this.QuotationData.QuotationObj[index].Discount > 100)) {\n this.QuotationData.QuotationObj[index].Discount = 0;\n return;\n }\n else if ((this.QuotationData.QuotationObj[index].Model_Discount > 100)) {\n this.QuotationData.QuotationObj[index].Model_Discount = 0;\n return;\n }\n else if ((this.QuotationData.QuotationObj[index].Varient1_Discount > 100)) {\n this.QuotationData.QuotationObj[index].Varient1_Discount = 0;\n return;\n }\n else if ((this.QuotationData.QuotationObj[index].Varient2_Discount > 100)) {\n this.QuotationData.QuotationObj[index].Varient2_Discount = 0;\n return;\n }\n else if ((this.QuotationData.QuotationObj[index].Varient3_Discount > 100)) {\n this.QuotationData.QuotationObj[index].Varient3_Discount = 0;\n return;\n }\n else if ((this.QuotationData.QuotationObj[index].Varient4_Discount > 100)) {\n this.QuotationData.QuotationObj[index].Varient4_Discount = 0;\n return;\n }\n else if ((this.QuotationData.QuotationObj[index].Option_Discount > 100)) {\n this.QuotationData.QuotationObj[index].Option_Discount = 0;\n return;\n }\n else if (this.QuotationData.QuotationObj[index].Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Discount;\n }\n else if (this.QuotationData.QuotationObj[index].Model_Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Model_Discount ;\n }\n else if (this.QuotationData.QuotationObj[index].Varient1_Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Varient1_Discount ;\n }\n else if (this.QuotationData.QuotationObj[index].Varient2_Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Varient2_Discount ;\n }\n else if (this.QuotationData.QuotationObj[index].Varient3_Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Varient3_Discount ;\n }\n else if (this.QuotationData.QuotationObj[index].Varient4_Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Varient4_Discount ;\n }\n else if (this.QuotationData.QuotationObj[index].Option_Discount % 1 != 0) {\n this.QuotationData.QuotationObj[index].Option_Discount ;\n }\n else {\n this.QuotationData.QuotationObj[index].DiscountValidation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n\n SetStatus(rule) {\n this.QuotationData.QuotationInfo.EnquiryStatus = rule.workflowNextStatusId;\n this.AddQuotation(rule);\n }\n\n checkQuotationGridValidation(flag) {\n var inde = 0;\n this.ispriceOnrequestTrigger=false;\n this.QuotationData.QuotationObj.forEach(element => {\n if (element.ProductSeries == undefined || element.ProductSeries == null || element.ProductSeries == 0) {\n element.ProductSeriesValidation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n element.ProductModelValidation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant1Label && (element.Variant1 == undefined || element.Variant1 == null || element.Variant1 == 0)) {\n element.Variant1Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant2Label && (element.Variant2 == undefined || element.Variant2 == null || element.Variant2 == 0)) {\n element.Variant2Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant3Label && (element.Variant3 == undefined || element.Variant3 == null || element.Variant3 == 0)) {\n element.Variant3Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant4Label && (element.Variant4 == undefined || element.Variant4 == null || element.Variant4 == 0)) {\n element.Variant4Validation = true;\n this.IsQuotationDataValid = false;\n }\n // if (element.Options == undefined || element.Options == null || element.Options.length == 0) {\n // element.OptionsValidation = true;\n // this.IsQuotationDataValid = false;\n // }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n element.QuantityValidation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.Discount < 0) {\n element.DiscountValidation = true;\n this.IsQuotationDataValid = false;\n }\n\n if (element.Discount > 100) {\n element.DiscountValidation = true;\n this.IsQuotationDataValid = false;\n }\n\n // {\n\n if (this.IsQuotationPriceOnRequest && flag == 1 && element.IsPriceOnRequest_Option && x.IsPriceOnRequest && (x.Price == undefined || x.Price == null || x.Price == 0)) {\n element.ShowOptionPriceOnRequestGrid = true;\n x.optionValid = true;\n this.IsQuotationDataValid = false;\n this.ispriceOnrequestTrigger=true;\n }\n\n });\n\n }\n //>\n //\n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == element.ProductSeries)[0]?.Name;\n if ((seriesname == 'HG' || seriesname == 'HN')) {\n if (element.IsUnits_Variant1 && element.Units_Variant1 % 100 != 0) {\n element.var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.IsUnits_Variant2 && element.Units_Variant2 % 100 != 0) {\n element.var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.IsUnits_Variant3 && element.Units_Variant3 % 100 != 0) {\n element.var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.IsUnits_Variant4 && element.Units_Variant4 % 100 != 0) {\n element.var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n }\n inde++;\n });\n }\n onKindAttChange() {\n if (this.QuotationData.QuotationInfo.KindAttention == \"\" || this.QuotationData.QuotationInfo.KindAttention == undefined || this.QuotationData.QuotationInfo.KindAttention == null) {\n this.IsQuotationDataValid = false;\n this.KindAttValidation = true;\n } else {\n this.KindAttValidation = false;\n }\n }\n onKindAttContactNumberChange() {\n if (this.QuotationData.QuotationInfo.KindAttContactNo == \"\" || this.QuotationData.QuotationInfo.KindAttContactNo == undefined || this.QuotationData.QuotationInfo.KindAttContactNo == null) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Contact Number is required\"\n }\n else if (this.QuotationData.QuotationInfo.KindAttContactNo.match(/^[0-9]+$/) == null) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Please enter valid contact number\"\n }\n else if (this.QuotationData.QuotationInfo.KindAttContactNo.length < 10) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Contact number should be 10-15 digits\"\n }\n\n else {\n this.KindAttContactNoValidilation = false;\n this.KingAttConactNumberValidationMsg = \"\"\n }\n }\n onKindAttEmailChange() {\n if (this.QuotationData.QuotationInfo.KindAttEmailId == \"\" || this.QuotationData.QuotationInfo.KindAttEmailId == undefined || this.QuotationData.QuotationInfo.KindAttEmailId == null) {\n this.IsQuotationDataValid = false;\n this.KindAttEmailValidilation = true;\n this.KingAttEmailValidationMsg = \"Email is required\"\n }\n else if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(this.QuotationData.QuotationInfo.KindAttEmailId))) {\n this.IsQuotationDataValid = false;\n this.KindAttEmailValidilation = true;\n // Replace the placeholder [emailFormat] with the dynamic email format\n this.KingAttEmailValidationMsg = this.KingAttEmailValidationMsg.replace('[emailFormat]', this.mailIdFormat);\n // this.KingAttEmailValidationMsg = \"Should be in Email Id format (e.g. user@ecotech.com)\"\n }\n\n else {\n this.KindAttEmailValidilation = false;\n this.KingAttEmailValidationMsg = \"\"\n }\n }\n onYourRefChange() {\n if (this.QuotationData.QuotationInfo.YourReference == \"\" || this.QuotationData.QuotationInfo.YourReference == undefined || this.QuotationData.QuotationInfo.YourReference == null) {\n this.IsQuotationDataValid = false;\n this.YourRefValidation = true;\n } else {\n this.YourRefValidation = false;\n }\n }\n onRefDateChange() {\n if (this.QuotationData.QuotationInfo.ReferenceDateISO == \"\" || this.QuotationData.QuotationInfo.ReferenceDateISO == undefined || this.QuotationData.QuotationInfo.ReferenceDateISO == null) {\n this.IsQuotationDataValid = false;\n this.RefDateValidation = true;\n } else {\n this.RefDateValidation = false;\n }\n }\n\n checkPriceOnRequestCostsAndUnits() {\n var inde = 0;\n this.isPricesRequestedBeforeSubmit = true;\n this.QuotationData.QuotationObj.forEach(element => {\n // {\n ele.Option_Discount = element.Option_Discount;\n ele.Option_FinalDiscount = element.Option_FinalDiscount;\n });\n element.showVariantOptionDiscount = this.showVarientDiscount;\n element.showVariantOptionPrice = this.showVarientandOptionPrice;\n element.showSpecialPrice = this.showSpecialPrice;\n element.Special_pkg_Discount = this.specialPkgDiscount;\n\n inde++;\n });\n\n }\n\n\n checkQuotationHeaderValidation() {\n this.IsQuotationDataValid = true;\n if (this.QuotationData.QuotationInfo.YourReference == \"\" || this.QuotationData.QuotationInfo.YourReference == undefined || this.QuotationData.QuotationInfo.YourReference == null) {\n this.YourRefValidation = true;\n this.IsQuotationDataValid = false;\n setTimeout(() => {\n this.yourRefElement.nativeElement.focus();\n }, 0);\n } else {\n this.YourRefValidation = false;\n }\n if (this.QuotationData.QuotationInfo.ReferenceDateISO == \"\" || this.QuotationData.QuotationInfo.ReferenceDateISO == undefined || this.QuotationData.QuotationInfo.ReferenceDateISO == null) {\n this.IsQuotationDataValid = false;\n this.RefDateValidation = true;\n setTimeout(() => {\n this.refDateElement.nativeElement.focus();\n }, 0);\n } else {\n this.RefDateValidation = false;\n }\n if (this.QuotationData.QuotationInfo.KindAttention == \"\" || this.QuotationData.QuotationInfo.KindAttention == undefined || this.QuotationData.QuotationInfo.KindAttention == null) {\n this.IsQuotationDataValid = false;\n this.KindAttValidation = true;\n setTimeout(() => {\n this.keyPerElement.nativeElement.focus();\n }, 0);\n } else {\n this.KindAttValidation = false;\n }\n if (this.QuotationData.QuotationInfo.KindAttEmailId == \"\" || this.QuotationData.QuotationInfo.KindAttEmailId == undefined || this.QuotationData.QuotationInfo.KindAttEmailId == null) {\n this.IsQuotationDataValid = false;\n this.KindAttEmailValidilation = true;\n this.KingAttEmailValidationMsg = \"Email is required\"\n setTimeout(() => {\n this.keyPerEmail.nativeElement.focus();\n }, 0);\n }\n else {\n this.KindAttEmailValidilation = false;\n }\n if (this.QuotationData.QuotationInfo.KindAttContactNo == \"\" || this.QuotationData.QuotationInfo.KindAttContactNo == undefined || this.QuotationData.QuotationInfo.KindAttContactNo == null) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Contact Number is required\"\n setTimeout(() => {\n this.keyPerCNo.nativeElement.focus();\n }, 0);\n }\n else if (this.QuotationData.QuotationInfo.KindAttContactNo.match(/^[0-9]+$/) == null) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Please enter valid contact number\";\n setTimeout(() => {\n this.keyPerCNo.nativeElement.focus();\n }, 0);\n }\n else if (this.QuotationData.QuotationInfo.KindAttContactNo.length < 10) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Contact number should be 10-15 digits\";\n setTimeout(() => {\n this.keyPerCNo.nativeElement.focus();\n }, 0);\n }\n else {\n this.KindAttContactNoValidilation = false;\n }\n if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(this.QuotationData.QuotationInfo.KindAttEmailId))) {\n this.IsQuotationDataValid = false;\n this.KindAttEmailValidilation = true;\n this.KingAttEmailValidationMsg = \"Should be in Email Id format (e.g. user@weiss.com)\"\n setTimeout(() => {\n this.keyPerEmail.nativeElement.focus();\n }, 0);\n }\n else {\n this.KindAttEmailValidilation = false;\n }\n\n if (this.QuotationData.QuotationInfo.QuotationComments == \"\" || this.QuotationData.QuotationInfo.QuotationComments == undefined || this.QuotationData.QuotationInfo.QuotationComments == null) {\n this.IsQuotationDataValid = false;\n this.QuoteCommentsValidation = true;\n setTimeout(() => {\n this.QuoteComm.nativeElement.focus();\n }, 0);\n }\n else {\n this.QuoteCommentsValidation = false;\n }\n \n if (this.QuotationData.QuotationInfo.SalesContactPerson == \"\" || this.QuotationData.QuotationInfo.SalesContactPerson == undefined || this.QuotationData.QuotationInfo.SalesContactPerson == null) {\n this.IsQuotationDataValid = false;\n this.SalesContactPersonValidation = true;\n setTimeout(() => {\n this.QuoteComm.nativeElement.focus();\n }, 0);\n }\n else {\n this.SalesContactPersonValidation = false;\n }\n\n }\n\n AddQuotation(rule) {\n \n this.checkQuotationHeaderValidation();\n if (!this.IsQuotationDataValid) {\n this.showLoader=false;\n return;\n }\n //CHECK IF ALL THE VALID FIELDS ARE PUT\n this.checkQuotationGridValidation(1);\n if(this.ispriceOnrequestTrigger)\n {\n this.toastr.info('It seems that the prices are provided which needs to be request first. Please press Price on Request button.');\n this.showLoader=false;\n return;\n }\n if (!this.IsQuotationDataValid) {\n this.showLoader=false;\n return;\n }\n //if (rule[0].workflowNextStatusId == this.enquiryStatusList.filter(x => x.Status == 'QuotationSaveAsDraftbyCustomerService')[0]?.Pk_Id) {\n this.assignValuetoObjects();\n //}\n\n this.role = localStorage.getItem(\"UserRole\");\n var isapplicationEng=this.UserRolesData.filter(x=>x.Name=='Internal Sales/Customer Service');\n if(isapplicationEng.length>0 && isapplicationEng[0].Id==this.role)\n {\n this.checkPriceOnRequestCostsAndUnits();\n if (!this.isPricesRequestedBeforeSubmit) {\n this.toastr.info('It seems that the prices are provided which needs to be request first. Please press Price on Request button.');\n this.showLoader=false;\n return;\n } \n }\n \n\n this.QuotationData.QuotationInfo.EnquiryStatus = rule[0].workflowNextStatusId;\n var confimrmsg = AppGlobals.successMessages.filter(x => x.id == rule[0].workflowNextStatusId)[0];\n if (this.QuotationData.QuotationInfo.FinalAmount < 0) {\n this.toastr.info(\"Quotation total amount can't be negative\");\n this.showLoader=false;\n return;\n }\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to proceed?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n \n if (dialogResult) {\n this.showLoader=true;\n\n var kd = this.QuotationData.QuotationInfo.ReferenceDateISO.year + \"-\" + this.QuotationData.QuotationInfo.ReferenceDateISO.month + \"-\" + this.QuotationData.QuotationInfo.ReferenceDateISO.day;\n this.QuotationData.QuotationInfo.ReferenceDate = kd;\n //this.QuotationData.QuotationInfo.Fk_Customer_Id = this.CustomerDetailsObj.CustomerId;\n this.QuotationData.allseriesmodel = [];\n this.commonService.PostData(\"Enquiry\", \"AddQuotation\", this.QuotationData, null).subscribe((data: any) => {\n if (this.QuotationData.QuotationInfo.EnquiryStatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationGeneratedbyCustomerService')[0]?.Pk_Id) {\n this.generatePDF();\n // this.getDatatoExport();\n } else {\n // this.getDatatoExport();\n this.showLoader=false;\n this.toastr.success(\"Quotation processed successfully\");\n this.activeModal.close('Close Click');\n window.location.reload();\n }\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.showLoader=false;\n //this.router.navigate(['/Enquiry']);\n });\n }\n else\n {\n this.showLoader=false;\n }\n });\n }\n\n generatePDF() {\n this.showLoader=true;\n let queryString = \"\";\n let url = this.QuotationPdfGenerationHostPath + \"PrintPdf/GeneratePdf?EnquiryId=\" + this.enquiObj.EnquiryId;\n queryString = \"Url=\" + url;\n\n this.commonService.GetData('Enquiry', 'GeneratePdf', queryString).subscribe((data: any) => {\n let res = data;\n this.toastr.success('Quotation Generated Successfully!');\n this.activeModal.close('Close Click');\n window.location.reload();\n this.showLoader=false;\n }, error => {\n this.toastr.error('Quotation not generated successfully!');\n this.showLoader=false;\n\n });\n }\n\n checkifPORPresent() {\n this.isPriceOnRequestValid = false;\n this.QuotationData.QuotationObj.forEach(element => {\n if (element.IsPriceOnRequest_Variant1) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Variant2) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Variant3) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Variant4) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Option) {\n this.isPriceOnRequestValid = true;\n }\n\n });\n }\n quotationPriceOnRequest(status) {\n\n this.checkQuotationHeaderValidation();\n if (!this.IsQuotationDataValid) {\n return;\n }\n //CHECK IF ALL THE VALID FIELDS ARE PUT\n this.checkQuotationGridValidation(0);\n if (!this.IsQuotationDataValid) {\n return;\n }\n this.checkifPORPresent();\n if (!this.isPriceOnRequestValid) {\n this.toastr.info('The price on request is not applicable as no product is present for price on request.');\n return;\n }\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"500px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to proceed for Price on Request?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader=true;\n\n var kd = this.QuotationData.QuotationInfo.ReferenceDateISO.year + \"-\" + this.QuotationData.QuotationInfo.ReferenceDateISO.month + \"-\" + this.QuotationData.QuotationInfo.ReferenceDateISO.day;\n this.QuotationData.QuotationInfo.ReferenceDate = kd;\n this.QuotationData.QuotationInfo.EnquiryStatus = status;\n //this.QuotationData.QuotationInfo.Fk_Customer_Id = this.CustomerDetailsObj.CustomerId;\n\n this.commonService.PostData(\"Enquiry\", \"AddQuotation\", this.QuotationData, null).subscribe((data: any) => {\n\n this.toastr.success(\"Prices requested successfully!\");\n this.showLoader=false;\n this.activeModal.close('Close Click');\n window.location.reload();\n }, error => {\n this.toastr.error(\"Failed to add enquiry details!\");\n this.showLoader=false;\n });\n }\n });\n }\n\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n AddNewProduct() {\n var obj = new ProductDetailsModel();\n this.QuotationData.QuotationObj.push(obj);\n }\n DeleteProduct(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.QuotationData.QuotationObj.splice(index, 1);\n } else {\n this.QuotationData.QuotationObj.pop();\n }\n // this.calculateTotalQuotationValues();\n this.calculateTotalPricesForProduct(index - 1, 0)\n }\n });\n }\n setColspan(index) {\n this.columnCount = 0;\n if (this.QuotationData.QuotationObj[index]?.Variant1Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.QuotationData.QuotationObj[index]?.Variant2Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.QuotationData.QuotationObj[index]?.Variant3Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.QuotationData.QuotationObj[index]?.Variant4Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.columnCount == 4) {\n this.QuotationData.QuotationObj[index].colspan1 = 1;\n this.QuotationData.QuotationObj[index].colspan2 = 1;\n this.QuotationData.QuotationObj[index].colspan3 = 1;\n this.QuotationData.QuotationObj[index].colspan4 = 1;\n } else if (this.columnCount == 3) {\n this.QuotationData.QuotationObj[index].colspan1 = 1;\n this.QuotationData.QuotationObj[index].colspan2 = 1;\n this.QuotationData.QuotationObj[index].colspan3 = 1;\n this.QuotationData.QuotationObj[index].colspan4 = 0;\n } else if (this.columnCount == 2) {\n this.QuotationData.QuotationObj[index].colspan1 = 1;\n this.QuotationData.QuotationObj[index].colspan2 = 1;\n this.QuotationData.QuotationObj[index].colspan3 = 0;\n this.QuotationData.QuotationObj[index].colspan4 = 0;\n } else if (this.columnCount == 1) {\n this.QuotationData.QuotationObj[index].colspan1 = 1;\n this.QuotationData.QuotationObj[index].colspan2 = 0;\n this.QuotationData.QuotationObj[index].colspan3 = 0;\n this.QuotationData.QuotationObj[index].colspan4 = 0;\n }\n }\n\n calculateTotalPricesForProduct(index, flag) {\n var modelprice = 0;\n var var1price = 0;\n var var2price = 0;\n var var3price = 0;\n var var4price = 0;\n var optionprice = 0;\n var QuotationObj = this.QuotationData.QuotationObj[index];\n\n modelprice = QuotationObj?.ProductModelPrice == undefined ? 0 : QuotationObj.ProductModelPrice;\n var1price = QuotationObj?.Variant1Price == undefined ? 0 : QuotationObj.Variant1Price;\n var2price = QuotationObj?.Variant2Price == undefined ? 0 : QuotationObj.Variant2Price;\n var3price = QuotationObj?.Variant3Price == undefined ? 0 : QuotationObj.Variant3Price;\n var4price = QuotationObj?.Variant4Price == undefined ? 0 : QuotationObj.Variant4Price;\n\n this.setColspan(index);\n\n if (flag == 0) {\n if (QuotationObj?.Units_Variant1 >= 0 && QuotationObj?.IsUnits_Variant1) {\n QuotationObj.Variant1Price = QuotationObj.Variant1Price * QuotationObj.Units_Variant1;\n var1price = QuotationObj.Variant1Price;\n }\n if (QuotationObj?.Units_Variant2 >= 0 && QuotationObj?.IsUnits_Variant2) {\n QuotationObj.Variant2Price = QuotationObj.Variant2Price * QuotationObj.Units_Variant2;\n var2price = QuotationObj.Variant2Price;\n }\n if (QuotationObj?.Units_Variant3 >= 0 && QuotationObj?.IsUnits_Variant3) {\n QuotationObj.Variant3Price = QuotationObj.Variant3Price * QuotationObj.Units_Variant3;\n var3price = QuotationObj.Variant3Price;\n }\n if (QuotationObj?.Units_Variant4 >= 0 && QuotationObj?.IsUnits_Variant4) {\n QuotationObj.Variant4Price = QuotationObj.Variant4Price * QuotationObj.Units_Variant4;\n var4price = QuotationObj.Variant4Price;\n }\n }\n\n QuotationObj.PerUnitAmount = QuotationObj?.PerUnitAmount == undefined ? 0 : QuotationObj.PerUnitAmount;\n QuotationObj.TotalAmount = QuotationObj?.TotalAmount == undefined ? 0 : QuotationObj.TotalAmount;\n QuotationObj.FinalAmount = QuotationObj?.FinalAmount == undefined ? 0 : QuotationObj.FinalAmount;\n QuotationObj.OptionsPrice = 0;\n QuotationObj.Options?.forEach(element => {\n QuotationObj.OptionsPrice = QuotationObj?.OptionsPrice + element.Price;\n optionprice = optionprice + element.Price;\n });\n\n QuotationObj.PerUnitAmount = modelprice + var1price + var2price + var3price + var4price + optionprice;\n QuotationObj.Variant1 = (QuotationObj.Variant1 == null || QuotationObj.Variant1 == undefined) ? null : QuotationObj.Variant1;\n QuotationObj.Variant2 = (QuotationObj.Variant2 == null || QuotationObj.Variant2 == undefined) ? null : QuotationObj.Variant2;\n QuotationObj.Variant3 = (QuotationObj.Variant3 == null || QuotationObj.Variant3 == undefined) ? null : QuotationObj.Variant3;\n QuotationObj.Variant4 = (QuotationObj.Variant4 == null || QuotationObj.Variant4 == undefined) ? null : QuotationObj.Variant4;\n QuotationObj.Discount = (QuotationObj.Discount == null || QuotationObj.Discount == undefined) ? null : QuotationObj.Discount;\n\n\n //****************for All Discount selection******************** */\n // if(this.discountaddmanually)\n // {\n if (this.QuotationData.QuotationObj[index]?.colspan1 == 1) {\n var percent = 100 - QuotationObj.Varient1_Discount;\n QuotationObj.Varient1_FinalPrice = Math.round(var1price * QuotationObj.Quantity * (percent / 100));\n }\n\n if (this.QuotationData.QuotationObj[index]?.colspan2 == 1) {\n var percent = 100 - QuotationObj.Varient2_Discount;\n QuotationObj.Varient2_FinalPrice = Math.round(var2price * QuotationObj.Quantity * (percent / 100));\n }\n\n if (this.QuotationData.QuotationObj[index]?.colspan3 == 1) {\n\n var percent = 100 - QuotationObj.Varient3_Discount;\n QuotationObj.Varient3_FinalPrice = Math.round(var3price * QuotationObj.Quantity * (percent / 100));\n }\n\n if (this.QuotationData.QuotationObj[index]?.colspan4 == 1) {\n var percent = 100 - QuotationObj.Varient4_Discount;\n QuotationObj.Varient4_FinalPrice = Math.round(var4price * QuotationObj.Quantity * (percent / 100));\n }\n\n var percen=100-QuotationObj.Model_Discount;\n QuotationObj.Model_FinalPrice=Math.round(modelprice * QuotationObj.Quantity*(percen/100));\n\n this.QuotationData.QuotationObj[index].Option_Discount = this.QuotationData.QuotationObj[index]?.Option_Discount == undefined ? 0 : this.QuotationData.QuotationObj[index]?.Option_Discount;\n var percent = 100 - QuotationObj.Option_Discount;\n QuotationObj.Option_FinalDiscount = Math.round(optionprice * QuotationObj.Quantity * (percent / 100));\n\n var percent = 100 - QuotationObj.Discount;\n QuotationObj.TotalAfterDiscount = Math.round(QuotationObj.PerUnitAmount * QuotationObj.Quantity * (percent / 100));\n\n if (this.discountaddmanually) {\n var modelfinalprice = this.QuotationData.QuotationObj[index].ProductModelPrice * QuotationObj.Quantity;\n\n QuotationObj.TotalAfterDiscount = Math.round(QuotationObj.Varient1_FinalPrice + QuotationObj.Varient2_FinalPrice + QuotationObj.Varient3_FinalPrice + QuotationObj.Varient4_FinalPrice + QuotationObj.Option_FinalDiscount + QuotationObj.Model_FinalPrice);\n var final = QuotationObj.TotalAfterDiscount;\n }\n else {\n final = QuotationObj.TotalAfterDiscount;\n }\n\n QuotationObj.FinalAmount = Math.round(final);\n\n this.calculateTotalQuotationValues();\n this.setspecialDiscountPrice();\n //}\n\n //****************for individual Discount selection******************** */\n // else \n // {\n // var percent = 100 - QuotationObj.Discount;\n // QuotationObj.TotalforRfqdiscount = QuotationObj.PerUnitAmount * QuotationObj.Quantity * (percent / 100);\n // final= QuotationObj.TotalforRfqdiscount;\n\n // QuotationObj.FinalAmount = Math.round(final);\n // this.calculateTotalQuotationValues();\n // this.setspecialDiscountPrice();\n // }\n }\n\n calculateTotalQuotationValues() {\n this.QuotationData.QuotationInfo.PerUnitAmount = 0;\n this.QuotationData.QuotationInfo.TotalAmount = 0;\n this.QuotationData.QuotationInfo.FinalAmount = 0;\n var final = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n this.QuotationData.QuotationInfo.PerUnitAmount = this.QuotationData.QuotationInfo.PerUnitAmount + element.PerUnitAmount;\n this.QuotationData.QuotationInfo.TotalAmount = this.QuotationData.QuotationInfo.TotalAmount + element.TotalAmount;\n\n final = parseFloat(final.toString()) + parseFloat(element.FinalAmount);\n\n var amount = this.QuotationData.QuotationInfo.FinalAmount + element.FinalAmount;\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(amount);\n\n });\n\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(final);\n this.finalpricewithoutspecialdiscount = this.QuotationData.QuotationInfo.FinalAmount;\n }\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if\n (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n\n }\n else {\n return true;\n }\n }\n\n\n\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n\n if (this.QuotationData.QuotationInfo.QuotationComments == \"\" || this.QuotationData.QuotationInfo.QuotationComments == undefined || this.QuotationData.QuotationInfo.QuotationComments == null) {\n this.IsQuotationDataValid = false;\n this.QuoteCommentsValidation = true;\n } else {\n this.QuoteCommentsValidation = false;\n }\n }\n\n //********************************* For Discount Fields ************* Variant1Label*/\n setDiscountType() {\n if (this.DiscountforOneOrAll == 1) {\n this.QuotationData.QuotationObj.forEach(element => {\n this.discountaddmanually = false;\n this.isfetchfromRFQ = true;\n this.showOverallDiscount=false;\n element.Model_Discount=0;\n element.Varient1_Discount = 0;\n element.Varient2_Discount = 0;\n element.Varient3_Discount = 0;\n element.Varient4_Discount = 0;\n element.Option_Discount = 0;\n\n // element.Varient1_Discount = element.Variant1Label.trim().length === 0 ? 0 : element.Discount;\n // element.Varient2_Discount = element.Variant2Label.trim().length === 0 ? 0 : element.Discount;\n // element.Varient3_Discount = element.Variant3Label.trim().length === 0 ? 0 : element.Discount;\n // element.Varient4_Discount = element.Variant4Label.trim().length === 0 ? 0 : element.Discount;\n \n // element.Option_Discount = element.Options.length === 0 ? 0 : element.Discount;\n var inde = 0;\n this.calculateTotalPricesForProduct(inde, 1);\n inde++;\n });\n }\n else {\n this.QuotationData.QuotationObj.forEach(element => {\n this.discountaddmanually = true;\n this.isfetchfromRFQ = false;\n this.showOverallDiscount=true;\n element.Discount=0;\n if (element.Varient1_Discount == null || element.Varient2_Discount == null || element.Varient3_Discount == null || element.Varient4_Discount == null || element.Option_Discount == null||element.Model_Discount==null) {\n element.Model_Discount=0;\n element.Varient1_Discount = 0;\n element.Varient2_Discount = 0;\n element.Varient3_Discount = 0;\n element.Varient4_Discount = 0;\n element.Option_Discount = 0;\n }\n var inde = 0;\n this.calculateTotalPricesForProduct(inde, 1);\n inde++;\n });\n }\n }\n checkVarientPrice(event) {\n if (event.target.checked) {\n this.showVarientandOptionPrice = true;\n this.showSpecialPrice = false;\n }\n else {\n this.showVarientandOptionPrice = false;\n }\n }\n checkVarientDiscount(event) {\n if (event.target.checked) {\n this.showVarientDiscount = true;\n this.showSpecialPrice = false;\n }\n else {\n this.showVarientDiscount = false;\n }\n }\n checkSpecialPrice(event) {\n if (event.target.checked) {\n this.showSpecialPrice = true;\n this.showVarientandOptionPrice = false;\n this.showVarientDiscount = false;\n }\n else {\n this.showSpecialPrice = false;\n }\n }\n\n setspecialDiscountPrice() {\n if ((this.specialPkgDiscount < 0)) {\n this.specialPkgDiscount = 0;\n return;\n }\n else if ((this.specialPkgDiscount > 100)) {\n this.specialPkgDiscount = 0;\n return;\n }\n else if (this.specialPkgDiscount != 0) {\n var percent = 100 - this.specialPkgDiscount;\n var calculate = this.finalpricewithoutspecialdiscount * (percent / 100);\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(calculate);\n this.specialPkgDiscount = this.specialPkgDiscount;\n }\n else if (this.specialPkgDiscount == 0) {\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(this.finalpricewithoutspecialdiscount);\n }\n }\n\n assignValuetoObjects() {\n var ind = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n element.Options.forEach(ele => {\n ele.Option_Discount = element.Option_Discount;\n ele.Option_FinalDiscount = element.Option_FinalDiscount;\n });\n element.showVariantOptionDiscount = this.showVarientDiscount;\n element.showVariantOptionPrice = this.showVarientandOptionPrice;\n element.showSpecialPrice = this.showSpecialPrice;\n element.Special_pkg_Discount = this.specialPkgDiscount;\n\n ind++;\n });\n }\n\n\n getWorkflowActions() {\n let queryString = \"\";\n queryString = \"enquiryId=\" + this.enquiObj.EnquiryId + \"&workflowId=\" + this.workflowId;\n\n this.showLoader=true;\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"GetTransitionRulesByStatus\", queryString).subscribe((data: any) => {\n \n if (data != null) { \n this.workflowActionList=data;\n }\n this.showLoader=false;\n }, error => {\n this.showLoader=false;\n });\n }\n\n getEnquiryStatus() {\n \n this.showLoader=true;\n \n let tracker = this.commonService.GetData(\"Enquiry\", \"GetEnquiryStatus\", null);\n \n tracker.subscribe((data: any) => {\n this.enquiryStatusList = data;\n this.showLoader=false;\n }, error => {\n this.showLoader=false;\n });\n\n return tracker;\n\n }\n\n OnWorkflowAction(QuotationForm: NgForm, workflowActionId: number) {\n this.showLoader=true;\n var rule = this.workflowActionList.filter(x => x.workflowActionId == workflowActionId);\n var priceOnRequestRule = this.workflowActionList.filter(x => x.workflowActionCode == \"PriceOnRequest\");\n if (priceOnRequestRule.length > 0 && rule[0].workflowActionId == priceOnRequestRule[0].workflowActionId) {\n this.quotationPriceOnRequest(priceOnRequestRule[0].workflowNextStatusId);\n this.showLoader=false;\n return;\n }\n\n QuotationForm.control.markAllAsTouched();\n if (QuotationForm.invalid) {\n this.toastr.error(\"Please fill required information\");\n this.showLoader=false;\n return;\n }\n this.AddQuotation(rule);\n // this.showLoader=false;\n }\n// getPriceDiscountApprovalAuthority() {\n// let queryString = \"\";\n// queryString = \"enquiryId=\" + this.QuotationData.QuotationInfo.EnquiryId;\n// this.showLoader=true;\n// this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"getPriceDiscountApprovalAuthority\", queryString).subscribe((data: any) => {\n// this.authorityLevels = data;\n \n// this.showLoader=false;\n \n// this.cd.detectChanges();\n// }, error => {\n// this.showLoader=false;\n// });\n// }\n \n\n changeSalesContactPerson(value: any) {\n var employee = this.EmployeeData?.filter(x => x.Fk_User_Id == value);\n this.QuotationData.QuotationInfo.ContactNumber = employee[0].ContactNumber;\n if (this.QuotationData.QuotationInfo.SalesContactPerson == \"\" || this.QuotationData.QuotationInfo.SalesContactPerson == undefined || this.QuotationData.QuotationInfo.SalesContactPerson == null) {\n this.IsQuotationDataValid = false;\n this.SalesContactPersonValidation = true;\n } else {\n this.SalesContactPersonValidation = false;\n }\n }\n\n hasAccesstoFillQtyDiscount()\n {\n this.showLoader = true;\n this.commonService.GetData(\"Account\", \"GetAllRoles\", null).subscribe((data: any) => {\n this.Roles = data;\n this.Roles=this.Roles.filter(x=>x.Id==this.role);\n this.showOverallDiscount=true;\n if(this.Roles[0].Id==\"1\"||this.Roles[0].Id==\"14\"){\n this.isQtyDiscountEditable=false;\n this.isfetchfromRFQ=true;\n this.discountaddmanually=true;\n \n }else{\n this.isQtyDiscountEditable=true;\n this.isfetchfromRFQ=true;\n this.discountaddmanually=true;\n }\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n getPORAuthorities()\n {\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"getPriceOnRequestAuthority\", null).subscribe((data: any) => {\n this.priceOnRequestAuthorities = data; \n if(this.priceOnRequestAuthorities.length>0)\n {\n if(this.priceOnRequestAuthorities.filter(x=>x.Fk_RoleId==localStorage.getItem(\"UserRole\")).length>0)\n {\n this.priceonRequestDisabled=false;\n }\n }\n this.cd.detectChanges();\n // console.log(this.QuotationData.QuotationObj);\n }, error => {\n this.showLoader=false;\n });\n }\n OnSalesPriceChange(index) {\n //this.QuotationData.QuotationObj[index] = false;\n \n }\n\n getFrameAgreement(index) {\n //this.QuotationData.QuotationObj[index].ProductModelValidation = false;\n let queryString = \"\";\n queryString = \"id=\" + this.CustomerDetailsObj.CustomerId;\n this.commonService.GetData(\"CustomerSpecialDiscount\", \"GetById\", queryString).subscribe((data: any) => {\n this.EnquiryObj.CustomerSpecialDiscountdtls = data; \n var productModelList=data.filter(x=>x.Fk_ProductModel==this.QuotationData.QuotationObj[index].ProductModel);\n if(productModelList.length >0)\n {\n this.QuotationData.QuotationObj[index].Discount=productModelList[0].ProductDiscount;\n // this.getPriceDiscountApprovalAuthority();\n //this.frameAgreemtdiscountDisabled=true;\n } \n });\n }\n getUserRoles(){\n this.showLoader=true;\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n this.isAppEngRoles=false;\n let appEngRoles=data.filter(x=>x.Name=='Application Engineering L1' || x.Name=='Application Engineering L2' || x.Name=='Application Engineering L3');\n if(appEngRoles.length>0)\n {\n if(appEngRoles.filter(x=>x.Id==this.role).length>0)\n {\n this.isAppEngRoles=true;\n }\n }\n this.showLoader=false;\n }, error => {\n this.showLoader=false;\n });\n }\n\n getPriceDiscountApprovalAuthorityByPayload() {\n \n //this.showLoader=true;\n \n this.commonService.PostData(\"EnquiryWorkflowTransitionRules\", \"getPriceDiscountApprovalAuthorityByPayload\", this.QuotationData,null).subscribe((data: any) => {\n // th(is.authorityLevels = data;\n if(!(data==null || data==0))\n {\n this.workflowActionList.filter(x=>x.workflowActionName==\"Submit\")[0].workflowNextStatusId=data;\n }\n //this.showLoader=false;\n \n this.cd.detectChanges();\n }, error => {\n //this.showLoader=false;\n });\n }\n\n GetVarientDropdowndataforModel(index) {\n \n let queryString = \"\";\n queryString = \"ProductModelId=\" + this.QuotationData.QuotationObj[index].ProductModel;\n // this.commonService.GetData(\"Enquiry\", \"GetQuotationVariantDropdownData\", queryString).subscribe((data: any) => {\n\n // this.variantDropdownData = data;\n // // this.productDrpdnDetails.Variant1 = this.variantDropdownData.Variant1;\n // this.QuotationData.QuotationObj[index].productmodeldata = undefined;\n // this.QuotationData.QuotationObj[index].selectedVariant1 = this.variantDropdownData.Variant1;\n\n // if (!this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1) {\n // this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2;\n // }\n // if (!this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2) {\n // this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3;\n // }\n // if (!this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3) {\n // this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4;\n\n // }\n \n // });\n\n let tracker = this.commonService.GetData(\"Enquiry\", \"GetQuotationVariantDropdownData\", queryString);\n\n tracker.subscribe((data: any) => {\n this.variantDropdownData = data;\n this.QuotationData.QuotationObj[index].productmodeldata = undefined;\n this.QuotationData.QuotationObj[index].selectedVariant1 = this.variantDropdownData.Variant1;\n\n if (!this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4;\n\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n var1UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => { \n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant1.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant1 == undefined || this.QuotationData.QuotationObj[index].Units_Variant1 == null) {\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant1 < 0) {\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant1 % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n }\n \n this.IsQuotationDataValid = false;\n } else if (strunits.includes(\".\")) {\n this.toastr.info('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n \n else {\n \n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant1 % 100 != 0)) {\n this.toastr.info('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n } else {\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n //this.QuotationData.QuotationObj[index].Variant1Price = this.QuotationData.QuotationObj[index].selectedVariant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n \n var2UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => { \n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant2.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant2 == undefined || this.QuotationData.QuotationObj[index].Units_Variant2 == null) {\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant2 < 0) {\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant2 % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n else if (strunits.includes(\".\")) {\n this.toastr.info('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n else {\n \n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant2 % 100 != 0)) {\n this.toastr.info('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n } else {\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n // this.QuotationData.QuotationObj[index].Variant2Price = this.productDrpdnDetails.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n var3UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => {\n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant3.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant3 == undefined || this.QuotationData.QuotationObj[index].Units_Variant3 == null) {\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant3 < 0) {\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant3 % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n else if (strunits.includes(\".\")) {\n this.toastr.info('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n else {\n \n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant3 % 100 != 0)) {\n this.toastr.info('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n } else {\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n //this.QuotationData.QuotationObj[index].Variant3Price = this.productDrpdnDetails.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n var4UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => {\n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant4.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant4 == undefined || this.QuotationData.QuotationObj[index].Units_Variant4 == null) {\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant4 < 0) {\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant4 % 1 != 0) {\n this.toastr.info('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n else if (strunits.includes(\".\")) {\n this.toastr.info('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }\n else {\n \n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant4 % 100 != 0)) {\n this.toastr.info('Please enter the units in multiple of 100');\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n } else {\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n // this.QuotationData.QuotationObj[index].Variant4Price = this.productDrpdnDetails.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n\n}\n","\n\n\n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n

    \n Quotation\n

    \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n \n \n \n Quotation No: {{QuotationData.QuotationInfo.QuotationNumber}}\n \n \n Quotation Date:\n {{(QuotationData.QuotationInfo.QuotationDate != undefined ?\n QuotationData.QuotationInfo.QuotationDate: currentDate) | date:\n \"dd-MMM-yyyy\"}}\n \n \n \n \n\n
    \n  Your Reference: * \n \n
    \n Reference person name is required\n
    \n
    \n\n\n \n \n\n
    \n  Reference Date: * \n \n
    \n Reference Date is required\n
    \n\n
    \n\n \n\n
    \n\n \n \n \n \n \n\n \n \n \n \n
    \n Kind Attn: * \n \n
    \n Key Person is required\n
    \n
    \n \n \n
    \n  Contact Number: * \n \n
    \n {{KingAttConactNumberValidationMsg}}\n
    \n\n
    \n\n\n \n\n
    \n \n \n \n \n \n \n\n \n\n \n
    \n  Contact Number:  \n {{QuotationData.QuotationInfo.ContactNumber}}\n
    \n \n
    \n
    To,
    {{CustomerDetailsObj.CustomerName}}
    \n {{CustomerDetailsObj.City}}, {{CustomerDetailsObj.State}}
    \n
    \n Email: * \n \n
    \n {{KingAttEmailValidationMsg}}\n
    \n
    \n
    \n \n
    \n \n {{salesPersonOfWhichComapany}} Sales Person: * \n\n \n
    \n \n {{salesPersonOfWhichComapany}} Sales Person is required\n
    \n\n
    \n
    \n
    \n \n \n
    \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n\n \n \n 0\">\n \n \n \n\n \n \n \n \n \n \n\n \n\n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n \n \n\n \n \n \n\n \n \n
    SeriesModelUnit PriceQtyDiscount (%)\n \n Total Price (€)
    \n \n
    \n \n ProductSeries is required\n
    \n
    \n\n \n \n
    \n \n Product Model is required\n
    \n
    \n \n \n \n
    \n \n Quantity is not valid\n
    \n
    \n \n Quantity should be in between 0 to 1000\n
    \n
    \n \n\n \n \n \n \n
    \n
    \n\n
    {{field.Variant1Label}}\n
    \n\n \n \n
    \n \n {{field.Variant1Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n Price on Request\n \n \n
    \n € {{field.Variant1Price == undefined ? 0: field.Variant1Price |\n indianCurrency}}/-\n
    \n
    \n \n\n \n \n {{field.Variant1Price}} is\n substracted from Total.\n
    \n
    \n {{field.Variant2Label}}\n
    \n\n \n \n
    \n \n {{field.Variant2Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n Price on Request\n \n \n
    \n € {{field.Variant2Price == undefined ? 0: field.Variant2Price |\n indianCurrency}}/-\n
    \n
    \n \n \n \n {{field.Variant2Price}} is\n substracted from Total.\n
    \n
    \n {{field.Variant3Label}}\n
    \n \n \n
    \n \n {{field.Variant3Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n Price on Request\n \n \n
    \n € {{field.Variant3Price == undefined ? 0: field.Variant3Price |\n indianCurrency}}/-\n
    \n
    \n \n \n \n {{field.Variant3Price}} is\n substracted from Total.\n
    \n
    \n {{field.Variant4Label}}\n
    \n \n \n
    \n \n {{field.Variant4Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n Price on Request\n \n \n
    \n € {{field.Variant4Price == undefined ? 0: field.Variant4Price |\n indianCurrency}}/-\n
    \n
    \n \n \n \n {{field.Variant4Price}} is\n substracted from Total.\n
    \n
    \n Select Options\n
    \n\n \n \n {{item.Name}}\n\n \n \n \n {{item.Name}}\n \n\n\n
    \n   {{o+1}}. {{j.Name}}(€ {{j.Price == undefined ? 0:\n j.Price |indianCurrency}})
    \n
    \n
    \n \n Options are required\n
    \n\n
    \n
    \n Price on Request\n\n\n
    \n \n \n\n \n
    \n € {{field.OptionsPrice == undefined ? 0:\n field.OptionsPrice |indianCurrency}}/-\n
    \n
    \n \n \n \n {{field.optionprice}} is substracted\n from Total.\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Product OptionsPrice (€)
    {{t1.Name}}\n \n
    \n\n \n Please enter valid price\n
    \n
    \n
    \n\n
    \n
    Technical\n Specifications:\n
    \n \n\n
    \n\n
    Overall Discount\n
    \n \n
    \n
    Total Price (€)\n
    \n \n \n \n \n
    \n
    \n\n \n
    \n
    \n
    Special\n Package Discount\n
    \n
    \n \n
    Total\n \n
    \n\n
    \n\n \n
    \n\n \n\n
    \n
    \n
    \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n\n
    \n Comment is\n required\n
    \n\n
    \n\n
    \n \n \n \n \n \n Show Variant and Option Price on Quotation\n \n \n \n \n \n Show Variant and Option Discount On Quotation\n \n \n \n\n \n \n Show Special Price on Quotation\n \n \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n\n \n
    \n
    \n\n\n\n\n\n\n","import { Component, OnInit, Input, EventEmitter, Output, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { string } from '@amcharts/amcharts4/core';\n//import { EnquiryDetailsModel, EnquiryExportToExcelModel, EnquiryGridFilterList, EnquiryGridModel, EnquiryModel, EnquiryPaginationGrid } from 'src/app/Model/EnquiryModel';\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ActivityDetailsComponent } from '../activity-details/activity-details.component';\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { PassOnComponent } from '../pass-on/pass-on.component';\nimport { isNgContent } from '@angular/compiler';\nimport { AppGlobals } from 'src/app/app.global';\nimport { DatePipe } from '@angular/common';\n\nimport * as Excel from 'exceljs/dist/exceljs'\n//import * as XLSX from 'xlsx';\nimport * as FileSaver from 'file-saver';\nimport { HttpClient } from '@angular/common/http';\nimport { from } from 'rxjs';\nimport { EnquiryStatus } from 'src/app/EnquiryStatus';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { EnquiryGridFilterList, EnquiryGridModel, EnquiryDetailsModel, EnquiryPaginationGrid, EnquiryExportToExcelModel } from 'src/app/Model/EnquiryModel';\nimport { AddActivityComponent } from '../../customer-engagement/activity/add-activity/add-activity.component';\nimport { Activity } from 'src/app/Model/ActivityModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n\n@Component({\n selector: 'app-enquiry',\n templateUrl: './enquiry.component.html',\n styleUrls: ['./enquiry.component.scss']\n})\nexport class EnquiryComponent implements OnInit {\n\n AppRoles = UserRoles;\n\n displayedColumns: string[] = ['EnquiryId', 'EnquiryDate', 'CustomerName', 'QuotationNumber', 'Products',\n 'EnquiryValue', 'Discount', 'EnquiryWinLostOpenStatus', 'EstimatedProductvalue', 'RegionName',\n 'IndustrySegment', 'SubSegment', 'CustomerClassification', 'ActivityType', 'Activity_Subject', 'ActivityStatus', 'ActivityPurpose', 'ActivityPurposeDesc', 'Activity_Outcome', 'Activity_OutcomeDesc', 'EnquiryStatus', 'InitiatorName', 'Action'];\n\n EnquiryGridFilterList: EnquiryGridFilterList = new EnquiryGridFilterList();\n minDate: NgbDate;\n maxDate: NgbDate;\n datePipe = new DatePipe('en-US');\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n @Input()\n EnquiryId: number;\n AppGlobals = AppGlobals;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n EnquiryngbDateFromFiter: NgbDate | null;\n EnquiryngbDateToFiter: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n charCode: any;\n\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n enquiryStatus = EnquiryStatus;\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 100;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter\n @ViewChild(MatPaginator) paginator: MatPaginator;\n SearchColname: string = \"\";\n SearchColKeyword: string = \"\";\n\n PaginationModel: EnquiryPaginationGrid = new EnquiryPaginationGrid();\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n closeResult: string;\n salesEnggList: any[] = [];\n selectedRegion: any = 0;\n seList: any[] = [];\n selectedSalesEngg: any = 0;\n SelectedEnquiryID: any;\n role: string;\n userid: string;\n salesEnggValidation: boolean;\n salesRegionValidation: boolean;\n currentSalesEngg: any;\n ExportToExcelData: EnquiryExportToExcelModel[] = [];\n TempEnquiryData: any[] = [];\n isEnquiryDataExport: boolean = false;\n\n /************************USED FOR ROWSPAN************************/\n gridData: any[] = [];\n spans = [];\n tempRowId = null;\n tempRowCount = null;\n /************************USED FOR ROWSPAN END************************/\n\n\n constructor(private toastr: ToastrService,\n private accessservice: AccessPermissionService,\n private cd: ChangeDetectorRef, private commonService: CommonService, private modalService: NgbModal, public dialog: MatDialog, private titleService: Title, private route: ActivatedRoute,\n private calendar: NgbCalendar, public formatter: NgbDateParserFormatter, private activeModal: NgbActiveModal, private router: Router,\n private appConfigService: AppConfigService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n }\n\n ngOnInit() {\n\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.role = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isEnquiryDataExport = AppGlobals.EnquiryDataExportAccessArray.filter(x => x.role == this.role)[0]?.isEditable;\n\n this.userid = localStorage.getItem(\"UserID\");\n this.GetAllEnquiryGridFilterList();\n this.GetAllEnquiry();\n }\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllEmployeeDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllEnquiry() {\n // var x = document.getElementsByClassName(\"table-responsive\");\n // var i;\n // for (i = 0; i < x.length; i++) {\n // x[i].scrollLeft = 0;\n\n // }\n this.showLoader = true;\n\n this.PaginationModel.pageNumber = this.pageNumber;\n this.PaginationModel.pageSize = this.pageSize;\n this.PaginationModel.SearchText = this.SearchText;\n this.PaginationModel.direction = this.direction;\n this.PaginationModel.ColumnName = this.ColumnName;\n\n if (this.EnquiryngbDateToFiter != undefined && this.EnquiryngbDateToFiter != null) {\n this.PaginationModel.EnquiryDateToFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateToFiter = null;\n }\n\n if (this.EnquiryngbDateFromFiter != undefined && this.EnquiryngbDateFromFiter != null) {\n this.PaginationModel.EnquiryDateFromFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateFromFiter = null;\n }\n\n let QuotationValueFromFilter: number = +this.PaginationModel.QuotationValueFromFilter;\n let QuotationValueToFilter: number = +this.PaginationModel.QuotationValueToFilter;\n if (this.PaginationModel.QuotationValueFromFilter != null && QuotationValueFromFilter > 0 && QuotationValueToFilter > 0 && this.PaginationModel.QuotationValueToFilter != null) {\n if (QuotationValueToFilter < QuotationValueFromFilter) {\n alert(\"To Quotation value should be greater than From Quotation value.\")\n this.PaginationModel.QuotationValueFromFilter = null;\n }\n }\n\n\n let DiscountFromFilter: number = +this.PaginationModel.DiscountFromFilter;\n let DiscounToFilter: number = +this.PaginationModel.DiscounToFilter;\n if (this.PaginationModel.DiscountFromFilter != null && DiscountFromFilter > 0 && DiscounToFilter > 0 && this.PaginationModel.DiscounToFilter != null) {\n if (DiscounToFilter < DiscountFromFilter) {\n alert(\"To Discount should be greater than From Discount.\")\n this.PaginationModel.DiscountFromFilter = null;\n\n }\n }\n\n this.commonService.PostData('Enquiry', 'GetAllPagination', this.PaginationModel, null).subscribe((data: any) => {\n this.data = data.Data;\n if (data.Data != null) {\n this.BindGridData();\n }\n this.length = data.Total;\n\n this.dataSource = new MatTableDataSource(this.gridData);\n this.showLoader = false;\n\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n\n var x = document.getElementsByClassName(\"table-responsive\");\n var i;\n for (i = 0; i < x.length; i++) {\n x[i].scrollLeft = 0;\n }\n this.GetAllEnquiry();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllEnquiry();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n var x = document.getElementsByClassName(\"table-responsive\");\n var i;\n for (i = 0; i < x.length; i++) {\n x[i].scrollLeft = 0;\n\n }\n\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllEnquiry();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n SetEnquiryId(EnquiryId) {\n this.EnquiryId = EnquiryId;\n }\n\n convertDate(date: any) {\n date = date.split('T')[0];\n return date;\n }\n\n openPassOn(rowObject) {\n const modalRef = this.modalService.open(PassOnComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var EnquiryId = rowObject;\n\n modalRef.componentInstance.enqObj = EnquiryId;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.GetAllEnquiry();\n }\n });\n }\n\n openQuotationPopup(enqid, enqNo, initiatorID, status, PendingAtRoleId) {\n const modalRef = this.modalService.open(ActivityDetailsComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var EnquiryId = {\n enqid: enqid,\n endNo: enqNo,\n initID: initiatorID,\n status: status,\n PendingAtRoleId: PendingAtRoleId\n };\n\n modalRef.componentInstance.EnquiryId = EnquiryId;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n // this.GetAllEnquiry();\n // if (flag === 1) {\n // } else {\n // // this.saveQuoteLimit(this.QuotationNumber, result);\n // }\n }\n });\n }\n\n // openPassOnPopup(enqid) {\n\n // const modalRef = this.modalService.open(PassonEnquiryComponent, {\n // size: 'lg', backdrop: 'static', keyboard: false\n // });\n\n // var EnquiryId= enqid; \n\n // modalRef.componentInstance.EnquiryId = EnquiryId;\n // modalRef.result.then((result) => {\n // this.closeResult = `Closed with:${result}`;\n // if (this.closeResult !== 'Closed with:Close click') {\n // // if (flag === 1) {\n // // } else {\n // // // this.saveQuoteLimit(this.QuotationNumber, result);\n // // }\n // }\n // });\n // }\n\n\n /************************************************************************\n * Grid RowSpan Methods \n * **********************************************************************/\n\n BindGridData() {\n this.showLoader = true;\n this.gridData = [];\n this.spans = [];\n this.data.forEach(item => {\n item.EnquiryDate = this.convertDate(item.EnquiryDate);\n if (item.QuotationDetailsList != null && item.QuotationDetailsList.length > 0 && item.QuotationDetailsList.length != null && item.QuotationDetailsList.length != undefined) {\n for (let i = 0; i < item.QuotationDetailsList.length; i++) {\n var obj = {\n \"Products\": item.QuotationDetailsList[i].ModelName,\n \"EnquiryValue\": item.QuotationDetailsList[i].FinalAmount,\n \"Discount\": item.QuotationDetailsList[i].Discount,\n \"EnquiryId\": item.EnquiryId,\n \"Initiator_Id\": item.Initiator_Id,\n \"InitiatorName\": item.InitiatorName,\n \"RoleName\": item.RoleName,\n \"CustomerId\": item.CustomerId,\n \"CustomerName\": item.CustomerName,\n \"CustomerCode\": item.CustomerCode,\n \"IndustrySegment\": item.IndustrySegment,\n \"SubSegment\": item.SubSegment,\n \"CustomerType\": item.CustomerType,\n \"CustomerClassification\": item.CustomerClassification,\n \"CustomerCategory\": item.CustomerCategory,\n \"RegionName\": item.RegionName,\n \"Country\": item.Country,\n \"EstimatedProductvalue\": item.EstimatedProductvalue,\n \"EnquiryNumber\": item.EnquiryNumber,\n \"EnquiryDate\": item.EnquiryDate,\n \"EnquirySourceId\": item.EnquirySourceId,\n \"EnquirySource\": item.EnquirySource,\n \"EnquiryDescription\": item.EnquiryDescription,\n \"Status\": item.Status,\n \"PendingAtRoleId\": item.PendingAtRoleId,\n \"EnquiryStatus\": item.EnquiryStatus,\n \"EnquiryWinLostOpenStatus\": item.EnquiryWinLostOpenStatus,\n \"CreatedOn\": item.CreatedOn,\n \"RFQNumber\": item.RFQNumber,\n \"RFQTermsAndCondition\": item.RFQTermsAndCondition,\n \"POValue\": item.POValue,\n \"EnquiryConfirmStatus\": item.EnquiryConfirmStatus,\n \"POStdReason\": item.POStdReason,\n \"OrdAcknowledgeNumber\": item.OrdAcknowledgeNumber,\n \"SupplyChainType\": item.SupplyChainType,\n \"TentativeDeliveryDate\": item.TentativeDeliveryDate,\n \"ModifiedOn\": item.ModifiedOn,\n \"EnquiryYear\": item.EnquiryYear,\n \"QuotationNumber\": item.QuotationNumber,\n \"QuotationPdf_filename\": item.QuotationPdf_filename,\n \"ActivityType\": item.ActivityType,\n \"Activity_Subject\": item.Activity_Subject,\n \"ActivityStatus\": item.ActivityStatus,\n \"ActivityPurpose\": item.ActivityPurpose,\n \"ActivityPurposeDesc\": item.ActivityPurposeDesc,\n \"Activity_Outcome\": item.Activity_Outcome,\n \"Activity_OutcomeDesc\": item.Activity_OutcomeDesc,\n //\"Activity_ActionPlan\": item.Activity_ActionPlan\n }\n\n this.gridData.push(obj);\n\n }\n }\n else {\n var obj1 = {\n \"Products\": null,\n \"EnquiryValue\": null,\n \"Discount\": null,\n \"EnquiryId\": item.EnquiryId,\n \"Initiator_Id\": item.Initiator_Id,\n \"InitiatorName\": item.InitiatorName,\n \"RoleName\": item.RoleName,\n \"CustomerId\": item.CustomerId,\n \"CustomerName\": item.CustomerName,\n \"CustomerCode\": item.CustomerCode,\n \"IndustrySegment\": item.IndustrySegment,\n \"SubSegment\": item.SubSegment,\n \"CustomerType\": item.CustomerType,\n \"CustomerClassification\": item.CustomerClassification,\n \"CustomerCategory\": item.CustomerCategory,\n \"RegionName\": item.RegionName,\n \"Country\": item.Country,\n \"EstimatedProductvalue\": item.EstimatedProductvalue,\n \"EnquiryNumber\": item.EnquiryNumber,\n \"EnquiryDate\": item.EnquiryDate,\n \"EnquirySourceId\": item.EnquirySourceId,\n \"EnquirySource\": item.EnquirySource,\n \"EnquiryDescription\": item.EnquiryDescription,\n \"Status\": item.Status,\n \"PendingAtRoleId\": item.PendingAtRoleId,\n \"EnquiryStatus\": item.EnquiryStatus,\n \"EnquiryWinLostOpenStatus\": item.EnquiryWinLostOpenStatus,\n \"CreatedOn\": item.CreatedOn,\n \"RFQNumber\": item.RFQNumber,\n \"RFQTermsAndCondition\": item.RFQTermsAndCondition,\n \"POValue\": item.POValue,\n \"EnquiryConfirmStatus\": item.EnquiryConfirmStatus,\n \"POStdReason\": item.POStdReason,\n \"OrdAcknowledgeNumber\": item.OrdAcknowledgeNumber,\n \"SupplyChainType\": item.SupplyChainType,\n \"TentativeDeliveryDate\": item.TentativeDeliveryDate,\n \"ModifiedOn\": item.ModifiedOn,\n \"EnquiryYear\": item.EnquiryYear,\n \"QuotationNumber\": item.QuotationNumber,\n \"QuotationPdf_filename\": item.QuotationPdf_filename,\n \"ActivityType\": item.ActivityType,\n \"Activity_Subject\": item.Activity_Subject,\n \"ActivityStatus\": item.ActivityStatus,\n \"ActivityPurpose\": item.ActivityPurpose,\n \"ActivityPurposeDesc\": item.ActivityPurposeDesc,\n \"Activity_Outcome\": item.Activity_Outcome,\n \"Activity_OutcomeDesc\": item.Activity_OutcomeDesc,\n //\"Activity_ActionPlan\": item.Activity_ActionPlan\n }\n\n this.gridData.push(obj1);\n\n }\n\n\n });\n this.RowSpanData();\n }\n\n RowSpanData() {\n this.cacheSpan('EnquiryNo', d => d.EnquiryId);\n this.cacheSpan('EnquiryDate', d => d.EnquiryId);\n this.cacheSpan('RegionName', d => d.EnquiryId);\n this.cacheSpan('EstimatedProductvalue', d => d.EnquiryId);\n this.cacheSpan('IndustrySegment', d => d.EnquiryId);\n this.cacheSpan('SubSegment', d => d.EnquiryId);\n this.cacheSpan('CustomerClassification', d => d.EnquiryId);\n this.cacheSpan('QuotationNumber', d => d.EnquiryId);\n this.cacheSpan('CustomerName', d => d.EnquiryId);\n this.cacheSpan('EnquiryStatus', d => d.EnquiryId);\n this.cacheSpan('EnquiryWinLostOpenStatus', d => d.EnquiryId);\n this.cacheSpan('ActivityType', d => d.EnquiryId);\n this.cacheSpan('Activity_Subject', d => d.EnquiryId);\n this.cacheSpan('ActivityStatus', d => d.EnquiryId);\n this.cacheSpan('ActivityPurpose', d => d.EnquiryId);\n this.cacheSpan('ActivityPurposeDesc', d => d.EnquiryId);\n this.cacheSpan('Activity_Outcome', d => d.EnquiryId);\n this.cacheSpan('Activity_OutcomeDesc', d => d.EnquiryId);\n\n //this.cacheSpan('Activity_ActionPlan', d => d.EnquiryId);\n this.cacheSpan('InitiatorName', d => d.EnquiryId);\n this.cacheSpan('Action', d => d.EnquiryId);\n this.showLoader = false;\n }\n cacheSpan(key, accessor) {\n for (let i = 0; i < this.gridData.length;) {\n let currentValue = accessor(this.gridData[i]);\n let count = 1;\n\n // Iterate through the remaining rows to see how many match\n // the current value as retrieved through the accessor.\n for (let j = i + 1; j < this.gridData.length; j++) {\n if (currentValue != accessor(this.gridData[j])) {\n break;\n }\n\n count++;\n }\n\n if (!this.spans[i]) {\n this.spans[i] = {};\n }\n\n // Store the number of similar values that were found (the span)\n // and skip i to the next unique row.\n this.spans[i][key] = count;\n i += count;\n\n }\n }\n\n getRowSpan(col, index) {\n return this.spans[index] && this.spans[index][col];\n }\n\n\n /************************************************************************\n * Grid RowSpan Methods End \n * **********************************************************************/\n\n\n /************************************************************************\n * Grid filter\n * **********************************************************************/\n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.EnquiryngbDateToFiter = this.EnquiryngbDateFromFiter;\n this.cd.detectChanges();\n\n }\n //this.GetAllEnquiry();\n\n }\n\n OnToDateFilterChange() {\n\n // this.GetAllEnquiry();\n }\n\n ConvertNgbDateToDate(ngbdate: any) {\n if (ngbdate != null) {\n return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n\n }\n\n convertDateToString(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n OnQuotationValueFilterChange(CallFrom: any) {\n let QuotationValueFromFilter: number = +this.PaginationModel.QuotationValueFromFilter;\n let QuotationValueToFilter: number = +this.PaginationModel.QuotationValueToFilter;\n if (CallFrom == 'From') {\n if (QuotationValueFromFilter == null || isNaN(QuotationValueFromFilter)) {\n this.PaginationModel.QuotationValueFromFilter = null;\n }\n // if (QuotationValueToFilter < QuotationValueFromFilter) {\n // this.PaginationModel.QuotationValueToFilter = null;\n\n // }\n\n }\n else {\n if (QuotationValueToFilter == null || isNaN(QuotationValueToFilter)) {\n this.PaginationModel.QuotationValueToFilter = null;\n }\n // if (QuotationValueToFilter < QuotationValueFromFilter) {\n // this.PaginationModel.QuotationValueFromFilter = null;\n\n // }\n\n }\n this.cd.detectChanges();\n // this.GetAllEnquiry();\n\n }\n\n onDiscountChange(callType: any) {\n let DiscountFromFilter: number = +this.PaginationModel.DiscountFromFilter;\n let DiscounToFilter: number = +this.PaginationModel.DiscounToFilter;\n\n if (callType == 'From') {\n\n if (DiscountFromFilter > 100 || isNaN(DiscountFromFilter)) {\n this.PaginationModel.DiscountFromFilter = null;\n }\n // if ( DiscounToFilter < DiscountFromFilter) {\n // this.PaginationModel.DiscounToFilter = null;\n // }\n }\n else {\n if (DiscounToFilter > 100 || isNaN(DiscounToFilter)) {\n this.PaginationModel.DiscounToFilter = null;\n }\n // if (DiscounToFilter < DiscountFromFilter) {\n // this.PaginationModel.DiscountFromFilter = null;\n\n // }\n }\n this.cd.detectChanges();\n // this.GetAllEnquiry();\n }\n\n\n GetAllEnquiryGridFilterList() {\n this.commonService.GetData(\"Enquiry\", \"EnquiryGridFilterList\", null).subscribe((data: any) => {\n this.EnquiryGridFilterList.EstimatedEnquiryValue = data.EstimatedEnquiryValue;\n this.EnquiryGridFilterList.Segment = data.Segment;\n this.EnquiryGridFilterList.MicroSegment = data.MicroSegment;\n this.EnquiryGridFilterList.OrignaleMicroSegment = data.MicroSegment;\n this.EnquiryGridFilterList.CusomterName = data.CusomterName;\n this.EnquiryGridFilterList.CusomterClass = data.CusomterClass;\n this.EnquiryGridFilterList.ProductModels = data.ProductModels;\n this.EnquiryGridFilterList.Region = data.region;\n this.EnquiryGridFilterList.InitiatorName = data.InitiatorName;\n\n });\n\n }\n\n ResetAllFilters() {\n this.PaginationModel.EnquiryDateFromFiter = null;\n this.PaginationModel.EnquiryDateToFiter = null;\n this.PaginationModel.EstimatedEnquiryValueFilter = [];\n this.PaginationModel.SegmentFilter = [];\n this.PaginationModel.MicroSegmentFilter = [];\n this.PaginationModel.CusomterNameFilter = [];\n this.PaginationModel.CusomterClassFilter = [];\n this.PaginationModel.ProdcutFilter = [];\n this.PaginationModel.QuotationValueToFilter = null;\n this.PaginationModel.QuotationValueFromFilter = null;\n this.PaginationModel.DiscountFromFilter = null;\n this.PaginationModel.DiscounToFilter = null;\n this.PaginationModel.QuotationStatusFilter = [];\n this.PaginationModel.RegionFilter = [];\n this.PaginationModel.InitiatorNameFilter = [];\n this.EnquiryngbDateFromFiter = null;\n this.EnquiryngbDateToFiter = null;\n this.OnSegmentChangeGetMiCroSegment();\n this.GetAllEnquiry();\n\n }\n\n OnSegmentChangeGetMiCroSegment() {\n this.EnquiryGridFilterList.MicroSegment = [];\n if (this.PaginationModel.SegmentFilter != null && this.PaginationModel.SegmentFilter != undefined && this.PaginationModel.SegmentFilter.length > 0) {\n this.EnquiryGridFilterList.MicroSegment = this.EnquiryGridFilterList.OrignaleMicroSegment.filter((o) => this.PaginationModel.SegmentFilter.includes(o.Fk_Name));\n\n }\n else {\n this.EnquiryGridFilterList.MicroSegment = this.EnquiryGridFilterList.OrignaleMicroSegment;\n }\n }\n\n /************************Date Range*************************************** */\n\n onDateSelection(date: NgbDate) {\n if (!this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter) {\n this.EnquiryngbDateFromFiter = date;\n } else if (this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && date && date.after(this.EnquiryngbDateFromFiter)) {\n this.EnquiryngbDateToFiter = date;\n } else {\n this.EnquiryngbDateToFiter = null;\n this.EnquiryngbDateFromFiter = date;\n }\n }\n\n isHovered(date: NgbDate) {\n return this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && this.hoveredDate && date.after(this.EnquiryngbDateFromFiter) && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n return this.EnquiryngbDateToFiter && date.after(this.EnquiryngbDateFromFiter) && date.before(this.EnquiryngbDateToFiter);\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.EnquiryngbDateFromFiter) || (this.EnquiryngbDateToFiter && date.equals(this.EnquiryngbDateToFiter)) || this.isInside(date) || this.isHovered(date);\n }\n\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n\n\n\n\n /************************End Date Range*************************************** */\n\n /************************************************************************\n * Grid filter\n * **********************************************************************/\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n /*******************************************************************************\n * Export to Excel\n * ******************************************************************************/\n\n ExportData() {\n this.showLoader = true;\n if (this.EnquiryngbDateToFiter != undefined && this.EnquiryngbDateToFiter != null) {\n this.PaginationModel.EnquiryDateToFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateToFiter = null;\n }\n\n if (this.EnquiryngbDateFromFiter != undefined && this.EnquiryngbDateFromFiter != null) {\n this.PaginationModel.EnquiryDateFromFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateFromFiter = null;\n }\n this.ExportToExcelData = [];\n this.TempEnquiryData = [];\n this.commonService.PostData(\"Enquiry\", \"EnquiryExportToExcel\", this.PaginationModel, null).subscribe((data: any) => {\n this.TempEnquiryData = data;\n if (this.TempEnquiryData.length > 0) {\n this.TempEnquiryData.forEach(item => {\n if (item.EnquiryDate != null && item.EnquiryDate != \"\" && item.EnquiryDate != undefined) {\n item.EnquiryDate = this.convertDate(item.EnquiryDate);\n }\n if (item.RequestedDeliveryDate != null && item.RequestedDeliveryDate != \"\" && item.RequestedDeliveryDate != undefined) {\n item.RequestedDeliveryDate = this.convertDate(item.RequestedDeliveryDate);\n }\n if (item.RefDate != null && item.RefDate != \"\" && item.RefDate != undefined) {\n item.RefDate = this.convertDate(item.RefDate);\n }\n if (item.POSubmittedOn != null && item.POSubmittedOn != \"\" && item.POSubmittedOn != undefined) {\n item.POSubmittedOn = this.convertDate(item.POSubmittedOn);\n }\n if (item.QuotationSubmittedDate != null && item.QuotationSubmittedDate != \"\" && item.QuotationSubmittedDate != undefined) {\n item.QuotationSubmittedDate = this.convertDate(item.QuotationSubmittedDate);\n }\n if (item.SupplyChain_DeliveryDate != null && item.SupplyChain_DeliveryDate != \"\" && item.SupplyChain_DeliveryDate != undefined) {\n item.SupplyChain_DeliveryDate = this.convertDate(item.SupplyChain_DeliveryDate);\n }\n if (item.InvoiceSubmittedOn != null && item.InvoiceSubmittedOn != \"\" && item.InvoiceSubmittedOn != undefined) {\n item.InvoiceSubmittedOn = this.convertDate(item.InvoiceSubmittedOn);\n }\n if (item.EnquiryLostDate != null && item.EnquiryLostDate != \"\" && item.EnquiryLostDate != undefined) {\n item.EnquiryLostDate = this.convertDate(item.EnquiryLostDate);\n }\n // item.EnquiryDate = this.datePipe.transform(new Date(item.EnquiryDate), 'dd-MMM-yyyy h:mm a');\n if (item.QuotationDetailsList != null && item.QuotationDetailsList.length > 0 && item.QuotationDetailsList.length != null && item.QuotationDetailsList.length != undefined) {\n for (let i = 0; i < item.QuotationDetailsList.length; i++) {\n var obj = {\n \"EnquiryNumber\": item.EnquiryNumber,\n \"EnquiryDate\": item.EnquiryDate,\n \"InitiatorName\": item.InitiatorName,\n \"CustomerName\": item.CustomerName,\n \"CustomerCode\": item.CustomerCode,\n \"IndustrySegment\": item.IndustrySegment,\n \"SubSegment\": item.SubSegment,\n \"CustomerType\": item.CustomerType,\n \"CustomerCategory\": item.CustomerCategory,\n \"CustomerClassification\": item.CustomerClassification,\n \"Country\": item.Country,\n \"Region\": item.Region,\n \"EnquirySource\": item.EnquirySource,\n \"EnquiryDescription\": item.EnquiryDescription,\n \"RFQNumber\": item.RFQNumber,\n \"RequestedDeliveryDate\": item.RequestedDeliveryDate,\n \"KindAttentionPerName\": item.KindAttentionPerName,\n \"YourRefPerName\": item.YourRefPerName,\n \"RefDate\": item.RefDate,\n \"RFQRevisionNo\": item.RFQRevisionNo,\n \"EstimatedProductvalue\": item.EstimatedProductvalue,\n \"RFQTermsAndCondition\": item.RFQTermsAndCondition,\n \"KindAttContactNo\": item.KindAttContactNo,\n \"KindAttEmailId\": item.KindAttEmailId,\n \"QuotationNumber\": item.QuotationNumber,\n \"QuotationRevisionNo\": item.QuotationRevisionNo,\n \"QuotationAmount\": item.QuotationAmount,\n \"QuotationDiscount\": item.QuotationDiscount,\n \"QuotationFinalAmount\": item.QuotationFinalAmount,\n \"QuotationSubmittedDate\": item.QuotationSubmittedDate,\n \"POValue\": item.POValue,\n \"Quotation_Status\": item.EnquiryConfirmStatus,\n \"POSubmittedOn\": item.POSubmittedOn,\n \"OrdAcknowledgeNumber\": item.OrdAcknowledgeNumber,\n \"SupplyChain_Type_Domestic_Export\": item.SupplyChainType,\n \"TentativeDateOfDelivery\": item.SupplyChain_DeliveryDate,\n \"InvoiceNo\": item.InvoiceNo,\n \"InvoiceSubmittedOn\": item.InvoiceSubmittedOn,\n \"EnquiryLostDate\": item.EnquiryConfirmStatus == 'Lost' ? item.EnquiryLostDate : '',\n \"WinLostReason\": item.WinLostReason,\n \"EnquiryStatus\": item.EnquiryStatus,\n \"ActivityType\": item.ActivityType,\n \"Activity_Subject\": item.Activity_Subject,\n \"ActivityStatus\": item.ActivityStatus,\n \"ActivityPurpose\": item.ActivityPurpose,\n \"ActivityPurposeDesc\": item.ActivityPurposeDesc,\n \"Activity_Outcome\": item.Activity_Outcome,\n \"Activity_OutcomeDesc\": item.Activity_OutcomeDesc,\n \"ProductLine\": item.QuotationDetailsList[i].ProductLine,\n \"ProductFamily\": item.QuotationDetailsList[i].ProductFamily,\n \"ProductSeries\": item.QuotationDetailsList[i].ProductSeries,\n \"ProductModel\": item.QuotationDetailsList[i].ModelName,\n \"ProductModelPrice\": item.QuotationDetailsList[i].ProductModelPrice,\n \"ProductVariant_1\": item.QuotationDetailsList[i].ProductVariant_1,\n \"ProductVariant_1Price\": item.QuotationDetailsList[i].ProductVariant_1Price,\n \"ProductVariant_2\": item.QuotationDetailsList[i].ProductVariant_2,\n \"ProductVariant_2Price\": item.QuotationDetailsList[i].ProductVariant_2Price,\n \"ProductVariant_3\": item.QuotationDetailsList[i].ProductVariant_3,\n \"ProductVariant_3Price\": item.QuotationDetailsList[i].ProductVariant_3Price,\n \"ProductVariant_4\": item.QuotationDetailsList[i].ProductVariant_4,\n \"ProductVariant_4Price\": item.QuotationDetailsList[i].ProductVariant_4Price,\n \"Quantity\": item.QuotationDetailsList[i].Quantity,\n \"TotalAmount\": item.QuotationDetailsList[i].TotalAmount,\n \"Discount\": item.QuotationDetailsList[i].Discount,\n \"FinalAmount\": item.QuotationDetailsList[i].FinalAmount,\n \"POAmount\": item.QuotationDetailsList[i].POAmount,\n\n }\n\n this.ExportToExcelData.push(obj);\n\n }\n }\n else {\n var obj1 = {\n \"EnquiryNumber\": item.EnquiryNumber,\n \"EnquiryDate\": item.EnquiryDate,\n \"InitiatorName\": item.InitiatorName,\n \"CustomerName\": item.CustomerName,\n \"CustomerCode\": item.CustomerCode,\n \"IndustrySegment\": item.IndustrySegment,\n \"SubSegment\": item.SubSegment,\n \"CustomerType\": item.CustomerType,\n \"CustomerCategory\": item.CustomerCategory,\n \"CustomerClassification\": item.CustomerClassification,\n \"Country\": item.Country,\n \"Region\": item.Region,\n \"EnquirySource\": item.EnquirySource,\n \"EnquiryDescription\": item.EnquiryDescription,\n \"RFQNumber\": item.RFQNumber,\n \"RequestedDeliveryDate\": item.RequestedDeliveryDate,\n \"KindAttentionPerName\": item.KindAttentionPerName,\n \"YourRefPerName\": item.YourRefPerName,\n \"RefDate\": item.RefDate,\n \"RFQRevisionNo\": item.RFQRevisionNo,\n \"EstimatedProductvalue\": item.EstimatedProductvalue,\n \"RFQTermsAndCondition\": item.RFQTermsAndCondition,\n \"KindAttContactNo\": item.KindAttContactNo,\n \"KindAttEmailId\": item.KindAttEmailId,\n \"QuotationNumber\": item.QuotationNumber,\n \"QuotationRevisionNo\": item.QuotationRevisionNo,\n \"QuotationAmount\": item.QuotationAmount,\n \"QuotationDiscount\": item.QuotationDiscount,\n \"QuotationFinalAmount\": item.QuotationFinalAmount,\n \"QuotationSubmittedDate\": item.QuotationSubmittedDate,\n \"POValue\": item.POValue,\n \"Quotation_Status\": item.EnquiryConfirmStatus,\n \"POSubmittedOn\": item.POSubmittedOn,\n \"OrdAcknowledgeNumber\": item.OrdAcknowledgeNumber,\n \"SupplyChain_Type_Domestic_Export\": item.SupplyChainType,\n \"TentativeDateOfDelivery\": item.SupplyChain_DeliveryDate,\n \"InvoiceNo\": item.InvoiceNo,\n \"InvoiceSubmittedOn\": item.InvoiceSubmittedOn,\n \"EnquiryLostDate\": item.EnquiryConfirmStatus == 'Lost' ? item.EnquiryLostDate : '',\n \"WinLostReason\": item.WinLostReason,\n \"EnquiryStatus\": item.EnquiryStatus,\n \"ActivityType\": item.ActivityType,\n \"Activity_Subject\": item.Activity_Subject,\n \"ActivityStatus\": item.ActivityStatus,\n \"ActivityPurpose\": item.ActivityPurpose,\n \"ActivityPurposeDesc\": item.ActivityPurposeDesc,\n \"Activity_Outcome\": item.Activity_Outcome,\n \"Activity_OutcomeDesc\": item.Activity_OutcomeDesc,\n \"ProductLine\": '',\n \"ProductFamily\": '',\n \"ProductSeries\": '',\n \"ProductModel\": '',\n \"ProductModelPrice\": 0,\n \"ProductVariant_1\": '',\n \"ProductVariant_1Price\": 0,\n \"ProductVariant_2\": '',\n \"ProductVariant_2Price\": 0,\n \"ProductVariant_3\": '',\n \"ProductVariant_3Price\": 0,\n \"ProductVariant_4\": '',\n \"ProductVariant_4Price\": 0,\n \"Quantity\": 0,\n \"TotalAmount\": 0,\n \"Discount\": 0,\n \"FinalAmount\": 0,\n \"POAmount\": 0,\n\n }\n\n this.ExportToExcelData.push(obj1);\n\n }\n\n\n });\n if (this.ExportToExcelData.length > 0) {\n this.exportAsXLSX(this.ExportToExcelData, 'EnquiryData.xlsx');\n }\n this.showLoader = false;\n }\n else {\n // this.toastr.error(\"No data available!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n exportAsExcelFile(json: any[], excelFileName: string): void {\n // const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n // const workbook: XLSX.WorkBook = { Sheets: { 'EnquiryData': worksheet }, SheetNames: ['EnquiryData'] };\n // const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n // this.saveAsExcelFile(excelBuffer, excelFileName);\n\n let workbook = new Excel.Workbook();\n workbook = this.getworkSheet(json, workbook);\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n this.saveAsExcelFile(data, excelFileName);\n });\n }\n\n getworkSheet(sheet2: any[], workbook: any) {\n\n let worksheet = workbook.addWorksheet('EnquiryData');\n let header = ['EnquiryNumber', 'EnquiryDate', 'InitiatorName', 'CustomerName', 'CustomerCode',\n 'IndustrySegment', 'SubSegment', 'CustomerType', 'CustomerCategory', 'CustomerClassification', 'Country',\n 'Region', 'EnquirySource', 'EnquiryDescription', 'RFQNumber', 'RequestedDeliveryDate', 'KindAttentionPerName',\n 'YourRefPerName', 'RefDate', 'RFQRevisionNo', 'EstimatedProductvalue', 'RFQTermsAndCondition', 'KindAttContactNo',\n 'KindAttEmailId', 'QuotationNumber', 'QuotationRevisionNo', 'QuotationAmount', 'QuotationDiscount',\n 'QuotationFinalAmount', 'QuotationSubmittedDate', 'POValue', 'Quotation_Status', 'POSubmittedOn',\n 'OrdAcknowledgeNumber', 'SupplyChain_Type_Domestic_Export', 'TentativeDateOfDelivery', 'InvoiceNo',\n 'InvoiceSubmittedOn', 'EnquiryLostDate', 'WinLostReason', 'EnquiryStatus',\n 'ActivityType', 'Activity_Subject', 'ActivityStatus', 'ActivityPurpose', 'ActivityPurposeDesc', 'Activity_Outcome', 'Activity_OutcomeDesc',\n 'ProductLine', 'ProductFamily', 'ProductSeries', 'ProductModel', 'ProductModelPrice', 'ProductVariant_1', 'ProductVariant_1Price',\n 'ProductVariant_2', 'ProductVariant_2Price', 'ProductVariant_3', 'ProductVariant_3Price', 'ProductVariant_4', 'ProductVariant_4Price',\n 'Quantity', 'TotalAmount', 'Discount', 'FinalAmount', 'POAmount'];\n\n let headerRow = worksheet.addRow(header);\n\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: '74B4FE' },\n bgColor: { argb: 'FF0000FF' }\n };\n cell.font = {\n name: 'Arial',\n family: 2,\n bold: true,\n size: 10,\n };\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n\n })\n for (let key of Object.keys(sheet2)) {\n let tmparray = [];\n let tmpobj = sheet2[key];\n\n for (let key of Object.keys(tmpobj)) {\n let tmpobj1 = tmpobj[key];\n tmparray.push(tmpobj1)\n }\n worksheet.addRow(tmparray);\n }\n return workbook;\n\n }\n\n public saveAsExcelFile(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(data, fileName);\n }\n\n public exportAsXLSX(arrayofdata, filename: string): void {\n //const data = this.getFormatedData(arrayofdata);\n this.exportAsExcelFile(arrayofdata, filename);\n }\n\n\n /*******************************************************************************\n * Export to Excel\n * ******************************************************************************/\n /************* Delete Enquiry */\n deleteEnquiry(enqid, enqNo, initiatorID, status, PendingAtRoleId, Status) {\n this.EnquiryObj.EnquiryDetails.EnquiryId = enqid;\n this.EnquiryObj.EnquiryDetails.Status = Status;\n var confimrmsg = AppGlobals.successMessages.filter(x => x.id == Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n\n let enquiryDetails = JSON.stringify(this.EnquiryObj);\n const frmData = new FormData();\n frmData.append(\"enquiryDetails\", enquiryDetails);\n\n this.commonService.PostData(\"Enquiry\", \"DeleteEnquiry\", frmData, null).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n\n this.showLoader = false;\n this.toastr.success(confimrmsg.successmsg);\n window.location.reload();\n //this.router.navigate(['/Enquiry']);\n this.closePopup();\n\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.showLoader = false;\n //this.router.navigate(['/Enquiry']);\n });\n }\n });\n }\n\n addEnquiryPopup(enqid, custid) {\n // this.router.navigate(['/Add-Activity/Enquiry/' + enqid]);\n\n const modalRef = this.modalService.open(AddActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n\n var ActivityEntity = {\n enqId: enqid,\n custId: custid,\n inPopUpMode: true,\n entityType: 'Enquiry',\n };\n\n modalRef.componentInstance.ActivityEntity = ActivityEntity;\n // modalRef.result.then((result) => {\n // this.closeResult = `Closed with:${result}`;\n // if (this.closeResult !== 'Closed with:Close click') {\n // this.GetAllEnquiry();\n // }\n // });\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isEnquiryDataExport=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.role && x.ElementKey=='IsEnquiryDataExportAccessArray')[0]?.IsVisible;\n \n });\n \n }\n\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Listing - All\n

    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n expand_more\n \n \n \n \n
    \n
    \n\n\n\n
    \n\n
    \n\n
    \n \n \n \n {{ date.day }}\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n \n \n \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n
    \n\n \n
    \n\n
    \n\n \n\n\n\n \n\n
    \n \n
    \n 0 && PaginationModel.CusomterNameFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"Name\"\n placeholder=\"Select Customer\"\n [(ngModel)]=\"PaginationModel.CusomterNameFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.CusomterNameFilter != [])\"\n (click)=\"PaginationModel.CusomterNameFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.EstimatedEnquiryValueFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" [clearable]=\"false\"\n bindLabel=\"Name\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Estimated Enquiry Value\"\n [(ngModel)]=\"PaginationModel.EstimatedEnquiryValueFilter\">\n\n \n \n {{item.Name}}\n \n\n \n\n
    0 && PaginationModel.EstimatedEnquiryValueFilter != [])\"\n (click)=\"PaginationModel.EstimatedEnquiryValueFilter=[];\">\n \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.InitiatorNameFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [clearable]=\"false\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Initiator\"\n [(ngModel)]=\"PaginationModel.InitiatorNameFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.InitiatorNameFilter != [])\"\n (click)=\"PaginationModel.InitiatorNameFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n\n
    \n\n
    \n
    \n \n
    \n 0 && PaginationModel.SegmentFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [clearable]=\"false\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Segment\"\n [(ngModel)]=\"PaginationModel.SegmentFilter\"\n (change)=\"OnSegmentChangeGetMiCroSegment()\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.SegmentFilter != [])\"\n (click)=\"PaginationModel.SegmentFilter=[];OnSegmentChangeGetMiCroSegment()\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.MicroSegmentFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" [clearable]=\"false\"\n bindLabel=\"Name\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Micro-Segment\"\n [(ngModel)]=\"PaginationModel.MicroSegmentFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.MicroSegmentFilter != [])\"\n (click)=\"PaginationModel.MicroSegmentFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.RegionFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"Name\"\n placeholder=\"Select Region\"\n [(ngModel)]=\"PaginationModel.RegionFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.RegionFilter != [])\"\n (click)=\"PaginationModel.RegionFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.CusomterClassFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" [clearable]=\"false\"\n bindLabel=\"Name\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Customer Classification\"\n [(ngModel)]=\"PaginationModel.CusomterClassFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.CusomterClassFilter != [])\"\n (click)=\"PaginationModel.CusomterClassFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n\n
    \n\n
    \n
    \n \n
    \n 0 && PaginationModel.ProdcutFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"Name\"\n placeholder=\"Select Product\"\n [(ngModel)]=\"PaginationModel.ProdcutFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.ProdcutFilter != [])\"\n (click)=\"PaginationModel.ProdcutFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n \n\n \n
    \n \n \n \n
    \n
    \n
    \n\n \n\n
    \n \n
    \n 0 && PaginationModel.QuotationStatusFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"item\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"item\"\n placeholder=\"Select Status\"\n [(ngModel)]=\"PaginationModel.QuotationStatusFilter\">\n\n \n \n {{item}}\n \n\n \n
    0 && PaginationModel.QuotationStatusFilter != [])\"\n (click)=\"PaginationModel.QuotationStatusFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n\n
    \n \n\n \n\n
    \n \n \n \n

    \n
    \n
    \n\n
    \n\n
    \n\n\n\n \n\n\n\n
    \n
    \n\n       \n\n\n \n
    \n\n\n\n\n
    \n\n
    \n\n\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n\n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n\n \n \n \n \n\n \n \n \n \n\n \n\n\n \n \n \n \n\n\n\n\n \n \n\n\n
    Enquiry No. \n\n {{row.EnquiryNumber}}\n Enquiry Date\n \n {{row.EnquiryDate | date: \"dd-MMM-yyyy\"}} \n Customer Name/Code\n\n \n {{row.CustomerName}}
    {{row.CustomerCode}}
    Estimated Enquiry\n Value\n \n {{row.EstimatedProductvalue}} Segment\n \n {{row.IndustrySegment}} Micro - Segment\n \n {{row.SubSegment}} Region\n {{row.RegionName}} Customer Class.\n \n {{row.CustomerClassification}} Quotation No.\n \n \n {{row.QuotationNumber}}\n \n Products\n \n {{row.Products}}\n\n Quotation Amount (€)\n \n {{row.EnquiryValue==null?'':row.EnquiryValue| indianCurrency}}\n Discount (%)\n \n\n {{row.Discount}}\n\n Quotation Status\n \n {{row.EnquiryWinLostOpenStatus}} Activity Type\n \n {{row.ActivityType}} Activity Subject\n \n {{row.Activity_Subject}} Activity Status\n \n {{row.ActivityStatus}} Activity Purpose\n \n {{row.ActivityPurpose}} Purpose Desc\n \n \n Activity Outcome\n \n {{row.Activity_Outcome}} Outcome Desc\n \n \n CRM updates \n {{row.EnquiryStatus}} Initiator Name\n \n {{row.InitiatorName}} Action \n\n \n \n\n \n \n\n \n
    \n
    No records found
    \n
    \n \n \n
    \n\n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n","\n\nimport { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\n\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { QuotationPreviewComponent } from '../quotation-preview/quotation-preview.component';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { forkJoin } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n\n\n@Component({\n selector: 'app-management-approval',\n templateUrl: './management-approval.component.html',\n styleUrls: ['./management-approval.component.scss']\n})\n\nexport class ManagementApprovalComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean =false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable:boolean=false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange:any;\n Discounttorange:any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n workflowActionList: any[] = [];\n enquiryStatusList: EnquiryStatusList[] = [];\n workflowId: number;\n sendbackRules:EnquirySendBack[]=[];\n previousEnqStatus : any;\n roleOfAdmin : any;\n\n @Output() updateLoaderEvent = new EventEmitter();\n UserRolesData:any[]=[];\n isPricesRequestedBeforeSubmit: any;\n showPreviewLink: boolean=false;\n WinLossDataForStatus: any;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title,private cd: ChangeDetectorRef,\n private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n\n }\n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);;\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);;\n }, 2000);\n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n //this.getEnquiryDetailsById();\n //this.getEnquiryStatus();\n this.getAllWorkFlow();\n this.getUserRoles();\n this.isEnquiryLoaded = false;\n this.getSendbackWorkfow();\n \n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n\n this.roleOfAdmin = UserRoles.Admin;\n\n forkJoin([\n this.getEnquiryStatus(),\n this.getEnquiryDetailsById(),\n this.getQuotationDetailsById(),\n \n ]).pipe(tap(res => { \n \n })).subscribe(x=>{\n this.ShowPreview();\n this.updateLoaderEvent.emit(false);\n });\n \n\n \n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n ScreenAccessSpecifier_ALL() {\n this.isEnquiryFormVisible = true;\n this.isRFQVisible = true;\n this.isQuoteGenerationVisible = true;\n this.isManagementApprovalVisible = true;\n this.isCEOApprovalVisible = true;\n this.EnquiryConfirmationVisible = true;\n this.isSOVisible = true;\n this.isOrderAcknowledgementVisible = true;\n this.isSupplychainVisible = true;\n this.isAccountsVisible = true;\n this.isOAGenerationVisible = true;\n\n }\n\n ScreenAccessSpecifier(role, enquirystatus) {\n //MAKE SCREENS VISIBLE ACCORDING TO LOGGED IN USER\n this.isEnquiryFormVisible = true;\n this.isRFQVisible = true;\n this.userid = localStorage.getItem(\"UserID\");\n\n //ADD CONDITION TO CHECK IF THE LOGGED IN USER IS INITIATOR OF THE ENQUIRY\n // SCREENS OPRN IN EDITABLE MODE TO INITIATOR OF THE ENQUIRY AND AMIN\n if ((enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id|| enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id ||\n enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='RFQReworkbyL1')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRejectedbyMngmt_SalesDirector')[0]?.Pk_Id ||\n enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRejectedbyMngmt_CEO')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryTechnicalDiscardbyL1')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryTechnicalDiscardbyL2')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryTechnicalDiscardbyL3')[0]?.Pk_Id) &&\n (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id)) {\n this.AppGlobals.RFQ_SaveasDraftBySalesEngg = true;\n this.AppGlobals.RFQ_SubmitBySalesEngg = true;\n this.AppGlobals.isRFQEditable = true;\n this.AppGlobals.disable_RFQ_SaveasDraftBySalesEngg = true;\n this.AppGlobals.disable_RFQ_SubmitBySalesEngg = true;\n this.selectedIndexForStatus = 1;\n } else {\n this.AppGlobals.isRFQEditable = false;\n this.AppGlobals.RFQ_SaveasDraftBySalesEngg = false;\n this.AppGlobals.RFQ_SubmitBySalesEngg = false;\n this.AppGlobals.disable_RFQ_SaveasDraftBySalesEngg = false;\n this.AppGlobals.disable_RFQ_SubmitBySalesEngg = false;\n this.selectedIndexForStatus = 0;\n if ((this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) && this.EnquiryObj.EnquiryDetails.Status >= this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n this.EnquiryConfirmationVisible = true;\n this.AppGlobals.isEnquiryConfirmationEditable = false;\n if ((enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='OrderRejectedbyMngmt_SalesDirector')[0]?.Pk_Id || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='OrderRejectedbyMngmt_CEO')[0]?.Pk_Id) &&\n (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id)) {\n this.AppGlobals.isEnquiryConfirmationEditable = true;\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = true;\n } else {\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = false;\n }\n\n\n if (!this.AppGlobals.isEnquiryConfirmationEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Enquiry Confirmation')) {\n this.EnquiryConfirmationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n } else if ((this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) && this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id) {\n this.EnquiryConfirmationVisible = true;\n AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = true;\n this.AppGlobals.isEnquiryConfirmationEditable = true;\n }\n }\n\n if (!(this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == null ||\n this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == undefined ||\n this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == \"\")) {\n this.showQuotationLink = true;\n } else {\n this.showQuotationLink = false;\n }\n if (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) {\n this.showEditRFQ = true;\n this.isEditactivity = true;\n } else {\n this.showEditRFQ = false;\n this.isEditactivity = false;\n }\n if (this.EnquiryObj.EnquiryDetails.PendingAtRoleId == null) {\n this.isEditactivity = this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id ? true : false;\n \n }\n if (this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_CEO')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n this.isEditactivity = false;\n }\n else {\n this.isEditactivity = true;\n }\n\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n this.isEditactivity = false;\n }\n var screensRolewise = this.AppGlobals.screensVisibleAccordingtoEnquiryStatus.filter(x => x.role == role)[0]?.screensForStatus;\n if (screensRolewise != undefined) {\n var filteredscreens = screensRolewise.filter(x => x.status == enquirystatus)[0];\n if (filteredscreens != undefined) {\n this.selectedIndexForStatus = filteredscreens.selectedIndex;\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id) {\n\n }\n\n this.isQuoteGenerationVisible = filteredscreens.screens.indexOf('Quote Generation') > -1 ? true : false;\n if (this.isQuoteGenerationVisible) {\n this.AppGlobals.isQuoteGenerationEditable = filteredscreens.disableScreen.indexOf('Quote Generation') > -1 ? false : true;\n // #region VisibleButtons\n if (!this.AppGlobals.isQuoteGenerationEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Quote Generation')) {\n this.isQuoteGenerationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.QuoteGenearationAcceptByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearationAcceptByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_RemorkByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_RemorkByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_ForwardtoL2ByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_ForwardtoL2ByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_ForwardtoL3ByL2 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_ForwardtoL3ByL2') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendtoL2ByL3 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendtoL2ByL3') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendtoL1ByL2 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendtoL1ByL2') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendtoCustomerServiceByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendtoCustomerServiceByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendforApprovalByCustomerService = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendforApprovalByCustomerService') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_SendBOMProposalByL1 = filteredscreens.visibleButtons.indexOf('QuoteGenearation_SendBOMProposalByL1') > -1 ? true : false;\n this.AppGlobals.QuoteGenearation_GenerateQuote = filteredscreens.visibleButtons.indexOf('QuoteGenearation_GenerateQuote') > -1\n && (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) ? true : false;\n this.AppGlobals.QuoteGenearation_EditRFQ = filteredscreens.visibleButtons.indexOf('QuoteGenearation_EditRFQ') > -1\n && (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id) ? true : false;\n this.AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscard = filteredscreens.visibleButtons.indexOf('QuoteGenearation_Enquiry_TechnicalDiscard') > -1 \n && (this.role == this.EnquiryObj.EnquiryDetails.PendingAtRoleId || this.role == this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id ) ? true : false;\n //#endregion\n // #region enableButtons\n this.AppGlobals.disable_QuoteGenearationAcceptByL1 = filteredscreens.buttons.indexOf('QuoteGenearationAcceptByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_RemorkByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_RemorkByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_ForwardtoL2ByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_ForwardtoL2ByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_ForwardtoL3ByL2 = filteredscreens.buttons.indexOf('QuoteGenearation_ForwardtoL3ByL2') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendtoL2ByL3 = filteredscreens.buttons.indexOf('QuoteGenearation_SendtoL2ByL3') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendtoL1ByL2 = filteredscreens.buttons.indexOf('QuoteGenearation_SendtoL1ByL2') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendtoCustomerServiceByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_SendtoCustomerServiceByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = filteredscreens.buttons.indexOf('QuoteGenearation_SendforApprovalByCustomerService') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = filteredscreens.buttons.indexOf('QuoteGenearation_SendBOMProposalByL1') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_GenerateQuote = filteredscreens.buttons.indexOf('QuoteGenearation_GenerateQuote') > -1 ? true : false;\n this.AppGlobals.disable_QuoteGenearation_EditRFQ = filteredscreens.buttons.indexOf('QuoteGenearation_EditRFQ') > -1 ? true : false;\n //this.AppGlobals.disable_QuoteGenearation_Enquiry_TechnicalDiscard = filteredscreens.buttons.indexOf('QuoteGenearation_Enquiry_TechnicalDiscard') > -1 ? true : false;\n \n //#endregion\n\n //CHECK IF QUOTATION TO BE SENT TO CUSTOMER SERVICE\n if (this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1) {\n var isSpecialPrice = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (element.SalesPrice == 3) {\n isSpecialPrice = true;\n }\n });\n if (enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationApprovedbyMngmt_SalesDirector')[0]?.Pk_Id||\n enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationApprovedbyMngmt_CEO')[0]?.Pk_Id) {\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = true;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = false;\n } else {\n if (isSpecialPrice || this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = false;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = true;\n } else {\n this.AppGlobals.disable_QuoteGenearation_SendBOMProposalByL1 = true;\n this.AppGlobals.disable_QuoteGenearation_SendforApprovalByCustomerService = false;\n }\n }\n\n }\n }\n this.isManagementApprovalVisible = filteredscreens.screens.indexOf('Management Approval') > -1 ? true : false;\n if (this.isManagementApprovalVisible) {\n this.AppGlobals.isManagementApprovalEditable = filteredscreens.disableScreen.indexOf('Management Approval') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isManagementApprovalEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Management Approval')) {\n this.isManagementApprovalVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.ManagementApproval_RejectBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_ApproveBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_HoldBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_HoldBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_SendQuotationforApprovalBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_SendQuotationforApprovalBySalesDirector') > -1 ? true : false;\n\n this.AppGlobals.ManagementApproval_Order_RejectBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_Order_ApproveBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalBySalesDirector = filteredscreens.visibleButtons.indexOf('ManagementApproval_SendOrderforApprovalBySalesDirector') > -1 ? true : false;\n //#endregion\n // #region enableButtons\n this.AppGlobals.disable_ManagementApproval_RejectBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_ApproveBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_HoldBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_HoldBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_SendQuotationforApprovalBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_SendQuotationforApprovalBySalesDirector') > -1 ? true : false;\n\n this.AppGlobals.disable_ManagementApproval_Order_RejectBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_Order_RejectBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_Order_ApproveBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_Order_ApproveBySalesDirector') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_SendOrderforApprovalBySalesDirector = filteredscreens.buttons.indexOf('ManagementApproval_SendOrderforApprovalBySalesDirector') > -1 ? true : false;\n //#endregion\n }\n this.isCEOApprovalVisible = filteredscreens.screens.indexOf('CEO Approval') > -1 ? true : false;\n if (this.isCEOApprovalVisible) {\n this.AppGlobals.isCEOApprovalEditable = filteredscreens.disableScreen.indexOf('CEO Approval') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isCEOApprovalEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'CEO Approval')) {\n this.isCEOApprovalVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.ManagementApproval_RejectByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_RejectByCEO') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_HoldByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_HoldByCEO') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_ApproveByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_ApproveByCEO') > -1 ? true : false;\n\n this.AppGlobals.ManagementApproval_Order_ApproveByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_ApproveByCEO') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_Order_RejectByCEO = filteredscreens.visibleButtons.indexOf('ManagementApproval_Order_RejectByCEO') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_ManagementApproval_RejectByCEO = filteredscreens.buttons.indexOf('ManagementApproval_RejectByCEO') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_HoldByCEO = filteredscreens.buttons.indexOf('ManagementApproval_HoldByCEO') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_ApproveByCEO = filteredscreens.buttons.indexOf('ManagementApproval_ApproveByCEO') > -1 ? true : false;\n\n this.AppGlobals.disable_ManagementApproval_Order_ApproveByCEO = filteredscreens.buttons.indexOf('ManagementApproval_Order_ApproveByCEO') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_Order_RejectByCEO = filteredscreens.buttons.indexOf('ManagementApproval_Order_RejectByCEO') > -1 ? true : false;\n //#endregion\n }\n this.EnquiryConfirmationVisible = filteredscreens.screens.indexOf('Enquiry Confirmation') > -1 ? true : false;\n\n if (this.EnquiryConfirmationVisible) {\n this.AppGlobals.isEnquiryConfirmationEditable = filteredscreens.disableScreen.indexOf('Enquiry Confirmation') > -1 ? false : true;\n if (this.userid != this.EnquiryObj.EnquiryDetails.Initiator_Id && this.role != this.UserRolesData.filter(x=>x.Name=='Admin')[0]?.Id && this.AppGlobals.isEnquiryConfirmationEditable) {\n this.EnquiryConfirmationVisible = false;\n this.selectedIndexForStatus = 0;\n }\n //#region VisibleButtons\n if (!this.AppGlobals.isEnquiryConfirmationEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Enquiry Confirmation')) {\n this.EnquiryConfirmationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = filteredscreens.visibleButtons.indexOf('EnquiryConfirmation_ConfimrOrderBySalesEngg') > -1 ? true : false;\n this.AppGlobals.EnquiryConfirmation_QuoteRevision = filteredscreens.visibleButtons.indexOf('EnquiryConfirmation_QuoteRevision') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_EnquiryConfirmation_QuoteRevision = filteredscreens.buttons.indexOf('EnquiryConfirmation_QuoteRevision') > -1 ? true : false;\n //#endregion\n\n }\n this.isSOVisible = filteredscreens.screens.indexOf('Sales Order') > -1 ? true : false;\n if (this.isSOVisible) {\n if (!(this.EnquiryObj.POValues == null || this.EnquiryObj.POValues?.length == 0)) {\n } else {\n this.getQuotationData();\n }\n\n //#region VisibleButtons\n\n this.AppGlobals.isSOEditable = filteredscreens.disableScreen.indexOf('Sales Order') > -1 ? false : true;\n if (!this.AppGlobals.isSOEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Sales Order')) {\n this.isSOVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.SO_SendtoSupplyChainByCustomerService = filteredscreens.visibleButtons.indexOf('SO_SendtoSupplyChainByCustomerService') > -1 ? true : false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalByCustomerService = filteredscreens.visibleButtons.indexOf('ManagementApproval_SendOrderforApprovalByCustomerService') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_SO_SendtoSupplyChainByCustomerService = filteredscreens.buttons.indexOf('SO_SendtoSupplyChainByCustomerService') > -1 ? true : false;\n this.AppGlobals.disable_ManagementApproval_SendOrderforApprovalByCustomerService = filteredscreens.buttons.indexOf('ManagementApproval_SendOrderforApprovalByCustomerService') > -1 ? true : false;\n //#endregion\n }\n this.isSupplychainVisible = filteredscreens.screens.indexOf('Supply Chain') > -1 ? true : false;\n if (this.isSupplychainVisible) {\n this.AppGlobals.isSupplychainEditable = filteredscreens.disableScreen.indexOf('Supply Chain') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isSupplychainEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Supply Chain')) {\n this.isSupplychainVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.SupplyChain_SubmitBySupplyChain = filteredscreens.visibleButtons.indexOf('SupplyChain_SubmitBySupplyChain') > -1 ? true : false;\n // this.AppGlobals.OrderAcknowledmentNo = filteredscreens.visibleButtons.indexOf('OrderAcknowledmentNo') > -1 ? true: false;\n this.AppGlobals.MaterialReadyForDispatch = filteredscreens.visibleButtons.indexOf('MaterialReadyForDispatch') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_SupplyChain_SubmitBySupplyChain = filteredscreens.buttons.indexOf('SupplyChain_SubmitBySupplyChain') > -1 ? true : false;\n // this.AppGlobals.disable_OrderAcknowledmentNo = filteredscreens.buttons.indexOf('OrderAcknowledmentNo') > -1 ? true: false;\n\n //#endregion\n }\n this.isAccountsVisible = filteredscreens.screens.indexOf('Accounts') > -1 ? true : false;\n if (this.isAccountsVisible) {\n this.AppGlobals.isAccountsEditable = filteredscreens.disableScreen.indexOf('Accounts') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isAccountsEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'Accounts')) {\n this.isAccountsVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n\n this.AppGlobals.Accounts_ConfimrOrderByAccounts = filteredscreens.visibleButtons.indexOf('Accounts_ConfimrOrderByAccounts') > -1 ? true : false;\n //#endregion\n //#region enableButtns\n this.AppGlobals.disable_Accounts_ConfimrOrderByAccounts = filteredscreens.buttons.indexOf('Accounts_ConfimrOrderByAccounts') > -1 ? true : false;\n //#endregion\n }\n this.isOAGenerationVisible = filteredscreens.screens.indexOf('OAGenerate') > -1 ? true : false;\n if (this.isOAGenerationVisible) {\n this.AppGlobals.isOAGenerateEditable = filteredscreens.disableScreen.indexOf('OAGenerate') > -1 ? false : true;\n //#region VisibleButtons\n if (!this.AppGlobals.isOAGenerateEditable) {\n if (!this.RoleWiseScreenDisplay.some(x => x == 'OAGenerate')) {\n this.isOAGenerationVisible = false;\n this.selectedIndexForStatus = this.selectedIndexForStatus - 1;\n\n }\n }\n this.AppGlobals.OrderAcknowledmentNo = filteredscreens.visibleButtons.indexOf('OrderAcknowledmentNo') > -1 ? true : false;\n\n //#endregion\n //#region enableButtns\n\n //#endregion\n }\n }\n //TO SHOW THE SCREENS WHICH ARE PASSED BY CURRENT ROLE\n else {\n this.selectedIndexForStatus = 0;\n var screensVisibleAfterPassedArray = this.AppGlobals.screensVisibleAfterPassed.filter(x => x.role == role)[0]?.screens;\n var filterScreenArray = screensVisibleAfterPassedArray.filter(o1 => this.RoleWiseScreenDisplay.some(o2 => o1.screenName === o2));\n\n if (filterScreenArray != undefined) {\n var qgArray: any = filterScreenArray.filter(x => x.screenName == 'Quote Generation')[0]?.status;\n if (qgArray != undefined) {\n this.isQuoteGenerationVisible = qgArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isQuoteGenerationEditable = false;\n this.AppGlobals.QuoteGenearationAcceptByL1 = false;\n this.AppGlobals.QuoteGenearation_RemorkByL1 = false;\n this.AppGlobals.QuoteGenearation_ForwardtoL2ByL1 = false;\n this.AppGlobals.QuoteGenearation_ForwardtoL3ByL2 = false;\n this.AppGlobals.QuoteGenearation_SendtoL2ByL3 = false;\n this.AppGlobals.QuoteGenearation_SendtoL1ByL2 = false;\n this.AppGlobals.QuoteGenearation_SendtoCustomerServiceByL1 = false;\n this.AppGlobals.QuoteGenearation_SendforApprovalByCustomerService = false;\n this.AppGlobals.QuoteGenearation_SendBOMProposalByL1 = false;\n this.AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscard = false;\n }\n\n\n var maArray = filterScreenArray.filter(x => x.screenName == 'Management Approval')[0]?.status;\n if (maArray != undefined) {\n this.isManagementApprovalVisible = maArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isManagementApprovalEditable = false;\n this.AppGlobals.ManagementApproval_RejectBySalesDirector = false;\n this.AppGlobals.ManagementApproval_ApproveBySalesDirector = false;\n this.AppGlobals.ManagementApproval_HoldBySalesDirector = false;\n this.AppGlobals.ManagementApproval_SendQuotationforApprovalBySalesDirector = false;\n this.AppGlobals.ManagementApproval_Order_RejectBySalesDirector = false;\n this.AppGlobals.ManagementApproval_Order_ApproveBySalesDirector = false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalBySalesDirector = false;\n }\n\n var caArray = filterScreenArray.filter(x => x.screenName == 'CEO Approval')[0]?.status;\n if (caArray != undefined) {\n this.isCEOApprovalVisible = caArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isCEOApprovalEditable = false;\n this.AppGlobals.ManagementApproval_RejectByCEO = false;\n this.AppGlobals.ManagementApproval_HoldByCEO = false;\n this.AppGlobals.ManagementApproval_ApproveByCEO = false;\n\n this.AppGlobals.ManagementApproval_Order_ApproveByCEO = false;\n this.AppGlobals.ManagementApproval_Order_RejectByCEO = false;\n }\n\n\n var ecaArray = filterScreenArray.filter(x => x.screenName == 'Enquiry Confirmation')[0]?.status;\n if (ecaArray != undefined) {\n this.EnquiryConfirmationVisible = ecaArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isEnquiryConfirmationEditable = false;\n this.AppGlobals.EnquiryConfirmation_ConfimrOrderBySalesEngg = false;\n }\n\n var soArray = filterScreenArray.filter(x => x.screenName == 'Sales Order')[0]?.status;\n if (soArray != undefined) {\n this.isSOVisible = soArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isSOEditable = false;\n this.AppGlobals.SO_SendtoSupplyChainByCustomerService = false;\n this.AppGlobals.ManagementApproval_SendOrderforApprovalByCustomerService = false;\n }\n\n\n var scArray = filterScreenArray.filter(x => x.screenName == 'Supply Chain')[0]?.status;\n if (scArray != undefined) {\n this.isSupplychainVisible = scArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isSupplychainEditable = false;\n this.AppGlobals.SupplyChain_SubmitBySupplyChain = false;\n this.AppGlobals.MaterialReadyForDispatch = false;\n }\n\n var acArray = filterScreenArray.filter(x => x.screenName == 'Accounts')[0]?.status;\n if (acArray != undefined) {\n this.isAccountsVisible = acArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isAccountsEditable = false;\n this.AppGlobals.Accounts_ConfimrOrderByAccounts = false;\n }\n\n var OAArray = filterScreenArray.filter(x => x.screenName == 'OAGenerate')[0]?.status;\n if (OAArray != undefined) {\n this.isOAGenerationVisible = OAArray.indexOf(enquirystatus) > -1 ? true : false;\n this.AppGlobals.isOAGenerateEditable = false;\n this.AppGlobals.OrderAcknowledmentNo = false;\n }\n }\n }\n\n }\n }\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n deletePOAttachment(flag: any) {\n // this.EnquiryObj.EnquiryDetails.POAttchments = [];\n // this.isPOAttachment = false;\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.PO_filepath);\n this.isPOAttacmentDelete = true;\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.PO_filename = null;\n this.EnquiryObj.EnquiryDetails.PO_filepath = null;\n this.isPOAttachment = false;\n }\n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n editActivity() {\n this.isEditactivity = true;\n }\n cancelEditActivity() {\n this.isEditactivity = false;\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.updateLoaderEvent.emit(true);;\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryObj.EnquiryDetails.EnquiryId;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n //this.isEditactivity = false;\n this.toastr.success(\"Activity details added successfully!\");\n this.updateLoaderEvent.emit(false);;\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.updateLoaderEvent.emit(false);;\n });\n\n }\n\n getQuotationData() {\n this.updateLoaderEvent.emit(true);;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n this.QuotationDataForPO = data.QuotationObj;\n this.QuotationDataForPO.forEach(element => {\n var obj = new ProductModelPOValues();\n obj.ProductId = element.ProductId;\n obj.ProductModelName = element.ProductModelName;\n if (element.Variant1Name != undefined) obj.ProductModelName = obj.ProductModelName + ' (' + element.Variant1Name;\n if (element.Variant2Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant2Name;\n if (element.Variant3Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant3Name;\n if (element.Variant4Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant4Name;\n obj.ProductModelName = obj.ProductModelName + ')'\n obj.QUotationValue = element.FinalAmount;\n obj.ProductModelPOValue = \"\";\n this.EnquiryObj.POValues.push(obj);\n });\n });\n }\n\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n var tracker=this.commonService.GetData('Enquiry', 'GetById', queryString);\n tracker.subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n \n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n if(this.EnquiryObj.EnquiryDetails.segment!=undefined)\n {\n this.SubSegment = this.FinalSubSegment.filter(x=>x.SegmentId==this.EnquiryObj.EnquiryDetails.segment);\n this.Application= this.FinalApplication.filter(x=>x.SubSegmentId==this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if(this.EnquiryObj.EnquiryDetails.segment==null|| this.EnquiryObj.EnquiryDetails.subSegment==null || this.EnquiryObj.EnquiryDetails.application==null)\n {\n this.EnquiryObj.EnquiryDetails.segment=undefined;\n this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC=data.EnquiryDetails.IsFetchFromKYC;\n this.previousEnqStatus = this.EnquiryObj.EnquiryDetails.Status;\n\n \n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n // replaceAll(str, term, replacement) {\n // return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);\n // }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);;\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment; \n this.SubSegment = [];\n this.Application= []; \n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication= data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n //this.updateLoaderEvent.emit(false);;\n });\n }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n \n this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n \n OnCustomValueChange1(index, id) {\n let CustTcObj1: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj1.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj1.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj1.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj1.CustTCId = id;\n \n let newCustomiseArr = this.EnquiryObj.CustomTermsAndConditions\n this.newCustomTc = newCustomiseArr.map((item,index)=>{\n \n return {\n ...item,\n CustTCId : item.StandardTC == CustTcObj1.StandardTC ? Number(CustTcObj1.CustTCId) :Number(item.CustTCId) ,\n CustValue :item.StandardTC == CustTcObj1.StandardTC ? CustTcObj1.CustValue: item.CustValue\n }\n \n });\n this.EnquiryObj.CustomTermsAndConditions = this.newCustomTc;\n }\n \n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n }\n OnQuantityChange(index) {\n if (this.EnquiryObj.RFQObject[index].Quantity < 1) {\n //alert('Quantity cannot be 0 or negative.');\n this.toastr.info('Quantity cannot be 0 or negative.');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n } else if (this.EnquiryObj.RFQObject[index].Quantity % 1 != 0) {\n // alert('Please enter the valid Quantity');\n this.toastr.info('Please enter the valid Quantity');\n\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n }\n this.EnquiryObj.RFQObject[index].QuantityValidation = false;\n }\n OnMDSOptionChange(index) {\n this.EnquiryObj.RFQObject[index].MDSOptionValidation = false;\n }\n OnSalesPriceChange(index) {\n\n this.EnquiryObj.RFQObject[index].SalesPriceValidation = false;\n\n // have to specify the id for Customer Special Discount /Contract Frame Agrrement \n\n if( this.EnquiryObj.RFQObject[index].SalesPrice==4)\n {\n this.updateLoaderEvent.emit(true);;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnqCustomerDetails.CustomerId;\n this.commonService.GetData(\"CustomerSpecialDiscount\", \"GetById\", queryString).subscribe((data: any) => {\n this.EnquiryObj.CustomerSpecialDiscountdtls = data;\n if(this.EnquiryObj.CustomerSpecialDiscountdtls?.length==0)\n { \n this.toastr.info('Customer Special Discount is not assigned to this Customer');\n this.EnquiryObj.RFQObject[index].SalesDiscount=\"0\";\n this.iseditable=false;\n \n }\n this.EnquiryObj.CustomerSpecialDiscountdtls.forEach(element => {\n if(element.Fk_ProductModel==this.EnquiryObj.RFQObject[index].ProductModel)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount=element.ProductDiscount.toString();\n \n this.iseditable=false\n }\n });\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.updateLoaderEvent.emit(false);\n \n }\n\n if(this.EnquiryObj.RFQObject[index].SalesPrice!=4)\n {\n //this.getSalespricediscount(this.EnquiryObj.RFQObject[index].SalesPrice);\n\n this.updateLoaderEvent.emit(true);;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.RFQObject[index].SalesPrice;\n this.commonService.GetData(\"SalesPrice\", \"GetById\", queryString).subscribe((data: any) => {\n \n this.EnquiryObj.RFQObject[index].SalesDiscount = data.DiscountFrom +\"-\"+ data.DiscountTo;\n this.DiscountFromrange=data.DiscountFrom;\n this.Discounttorange=data.DiscountTo;\n this.iseditable=true;\n this.toastr.info(\"Enter the Sales Price in Range \"+this.EnquiryObj.RFQObject[index].SalesDiscount);\n\n if(parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount)==0-0)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount = \"0\";\n return;\n }\n }, error => {\n this.toastr.error(\"Failed to load data\");\n\n });\n this.updateLoaderEvent.emit(false);;\n \n }\n\n }\n OnSalesDiscountChange(index) {\n if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) < 0) {\n //this.toastr.info('Sales Discount cannot be negative.');\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }\n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) > 100) {\n //this.toastr.info('Discount cannot be greater than 100.');\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }//10<23 && 23<20 10<18<20\n else if(!(this.DiscountFromrange<=this.EnquiryObj.RFQObject[index].SalesDiscount && this.EnquiryObj.RFQObject[index].SalesDiscount<=this.Discounttorange))\n {\n this.toastr.info('Discount must be in range from'+' '+this.DiscountFromrange+' '+'to'+' '+this.Discounttorange);\n return\n }\n \n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) % 1 != 0) {\n if (this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[1].length > 2 || this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[0].length > 2) {\n this.toastr.info(\"Only two numbers are allowed after decimal point\")\n // this.EnquiryObj.RFQObject[index].SalesDiscount = Math.round((this.EnquiryObj.RFQObject[index].SalesDiscount + Number.EPSILON) * 100) / 100;\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n }\n }\n this.EnquiryObj.RFQObject[index].SalesDiscountValidation = false;\n }\n\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n\n\n deleteAttachDocumentFromDB(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"MDS\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].MDS_filepath);\n this.EnquiryObj.RFQObject[index].MDS_filename = null;\n this.EnquiryObj.RFQObject[index].MDS_filepath = null;\n break;\n case \"ITC\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"ITC\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].ITC_filepath);\n this.EnquiryObj.RFQObject[index].deleted_ITC_filename = this.EnquiryObj.RFQObject[index].ITC_filename;\n this.EnquiryObj.RFQObject[index].deleted_ITC_filepath = this.EnquiryObj.RFQObject[index].ITC_filepath;\n this.EnquiryObj.RFQObject[index].ITC_filename = null;\n this.EnquiryObj.RFQObject[index].ITC_filepath = null;\n\n break;\n case \"Customer\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Customer\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Customer_filepath);\n this.EnquiryObj.RFQObject[index].Customer_filename = null;\n this.EnquiryObj.RFQObject[index].Customer_filepath = null;\n break;\n case \"Weiss\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Weiss\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Weiss_filepath);\n this.EnquiryObj.RFQObject[index].Weiss_filename = null;\n this.EnquiryObj.RFQObject[index].Weiss_filepath = null;\n break;\n }\n\n }\n\n deleteActivityDetails(index) {\n if (index != null) {\n this.activityDetails.splice(index, 1);\n }\n }\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n obj.ISNewActivityAdded = true;\n this.activityDetails.push(obj);\n }\n }\n\n getCustomerList() {\n this.updateLoaderEvent.emit(true);;\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);;\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);;\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);;\n });\n }\n\n getProductDetails() {\n this.updateLoaderEvent.emit(true);;\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.updateLoaderEvent.emit(false);;\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AddRFQDetails(index) {\n if (this.EnquiryObj.RFQObject[index].ProductLine != undefined && this.EnquiryObj.RFQObject[index].ProductModel != undefined &&\n this.EnquiryObj.RFQObject[index].Quantity != undefined) {\n\n this.EnquiryObj.RFQObject[index].IsRowDeleted = true;\n\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n openQuotationPopup(flag) {\n const frmData = new FormData();\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n this.updateLoaderEvent.emit(true);;\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n this.commonService.PostData(\"Enquiry\", \"AddBOM\", frmData, null).subscribe((data: any) => {\n this.updateLoaderEvent.emit(false);;\n }, error => {\n this.updateLoaderEvent.emit(false);;\n });\n }\n\n const modalRef = this.modalService.open(EnquiryModalComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n modalRef.componentInstance.enquiObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n if (flag === 1) {\n } else {\n // this.saveQuoteLimit(this.QuotationNumber, result);\n }\n }\n }, error => {\n this.updateLoaderEvent.emit(false);;\n });\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n onEnquiryConfirmationStatusChange() {\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = null;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = this.WinLossDropdownDataForStatus[0].Id;\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == \"Lost\") {\n this.isPoValueDisable = true;\n this.EnquiryObj.EnquiryDetails.POValue = \"0\";\n } else {\n this.isPoValueDisable = false;\n this.EnquiryObj.EnquiryDetails.POValue = undefined;\n }\n }\n\n deleteRFQDetails(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.EnquiryObj.RFQObject.splice(index, 1);\n } else {\n this.EnquiryObj.RFQObject.pop();\n }\n }\n });\n }\n\n setTermsAndConditions() {\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown; \n this.EnquiryObj.TermsAndConditions.forEach(element => { \n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0]; \n element.TnCValue = tnc?.Value; \n });\n } else { \n this.isStandardCondition = false; \n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n });\n \n }\n }\n\n setTermsAndConditionsEditRfq() {\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true;\n //this.EnquiryObj.TnCObject = this.demoObject; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n\n this.EnquiryObj.TermsAndConditions.forEach(element => {\n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0];\n element.TnCValue = tnc?.Value;\n \n });\n } \n else {\n this.isStandardCondition = false;\n\n if (this.EnquiryObj.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedDropDownForEditRfq2\n }\n\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n\n });\n }\n }\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n\n\n\n GenerateOANumber() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Once OA Number Generated, can't be altered. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GenerateOANo', queryString).subscribe((data: any) => {\n\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = data;\n this.isOAGenerated = true;\n this.updateLoaderEvent.emit(false);;\n this.toastr.success('Order Acknowledgement Number generated successfully!');\n\n }, error => {\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = undefined;\n this.toastr.error('Failed to Order Acknowledgement Number!');\n this.isOAGenerated = false;\n this.updateLoaderEvent.emit(false);;\n });\n }\n });\n }\n\n onStepChange(data) {\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id && data.previouslySelectedIndex == 0 && this.activityDetails[0].Activity != \"\") {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Please make sure that you have saved the activity details. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n } else {\n this.stepper.selectedIndex = data.previouslySelectedIndex;\n }\n });\n }\n }\n\n\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n if(this.EnquiryObj.EnquiryDetails.Status ==this.enquiryStatusList.filter(x=>x.Status=='QuotationGeneratedbyCustomerService')[0]?.Pk_Id)\n {\n this.AddQuotation(rule);\n }\n else{\n this.AddEnquiry();\n } \n \n }\n\n AddEnquiry() {\n \n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length==0)) {\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n \n \n\n\n AddQuotation(rule) {\n \n this.QuotationData.QuotationInfo.EnquiryStatus=rule[0].workflowNextStatusId;\n this.QuotationData.QuotationInfo.QuotationComments=this.EnquiryObj.EnquiryDetails.Comments;\n //this.QuotationData.QuotationInfo.Fk_Customer_Id = this.CustomerDetailsObj.CustomerId;\n var confimrmsg = AppGlobals.successMessages.filter(x => x.id == rule[0].workflowNextStatusId)[0];\n if (this.EnquiryObj.EnquiryDetails.FinalAmount < 0) {\n this.toastr.info(\"Quotation total amount can't be negative\");\n return;\n }\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Are you sure, you want to proceed?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n \n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n this.QuotationData.allseriesmodel = [];\n this.commonService.PostData(\"Enquiry\", \"AddQuotation\", this.QuotationData, null).subscribe((data: any) => {\n if (this.QuotationData.QuotationInfo.EnquiryStatus == this.enquiryStatusList.filter(x => x.Status == 'QuotationGeneratedbyCustomerService')[0]?.Pk_Id) {\n this.generatePDF(); \n this.updateLoaderEvent.emit(false); \n // this.toastr.success(\"Quotation approved successfully\");\n this.router.navigate(['/Enquiry']);\n \n }\n }, error => {\n this.toastr.error(\"Failed to gerenate quotation\");\n this.updateLoaderEvent.emit(false);\n //this.router.navigate(['/Enquiry']);\n });\n }\n });\n }\n\n generatePDF() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n let url = this.QuotationPdfGenerationHostPath + \"PrintPdf/GeneratePdf?EnquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n queryString = \"Url=\" + url;\n\n this.commonService.GetData('Enquiry', 'GeneratePdf', queryString).subscribe((data: any) => {\n let res = data;\n this.toastr.success('Quotation Generated Successfully!');\n \n window.location.reload();\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.toastr.error('Quotation not generated successfully!');\n this.updateLoaderEvent.emit(false);\n\n });\n }\n\n \n openPopup() {\n // var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to proceed?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.EnquiryObj.TermsAndConditions = null;\n \n if(this.QGRFQEditable == true)\n {\n this.EnquiryObj.CustomTermsAndConditions;\n \n }else{\n this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n }\n }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n \n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n \n this.toastr.success(\"Process done successfully\");\n \n\n this.updateLoaderEvent.emit(false);;\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyCustomerService')[0]?.Pk_Id||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n }, error => {\n this.toastr.error(\"Failed to approve\");\n this.updateLoaderEvent.emit(false);;\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n povalueChange(i) {\n var povalue: number = parseFloat(this.EnquiryObj.POValues[i].ProductModelPOValue);\n if (povalue == undefined || povalue == null) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue < 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue % 1 != 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (this.EnquiryObj.POValues[i].ProductModelPOValue.toString().includes(\".\")) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n }\n else {\n this.EnquiryObj.POValues[i].QUotationValueValidation = false;\n }\n }\n editRFQ() {\n if (this.showQuotationLink) {\n this.toastr.info('Please note that editing the RFQ will reset the quotation.');\n }\n this.EnquiryObj.RFQObject.forEach(element => {\n element.deleted_MDS_filename = element.MDS_filename;\n element.deleted_MDS_filepath = element.MDS_filepath;\n\n element.deleted_ITC_filename = element.ITC_filename;\n element.deleted_ITC_filepath = element.ITC_filepath;\n\n element.deleted_Customer_filename = element.Customer_filename;\n element.deleted_Customer_filepath = element.Customer_filepath;\n\n element.deleted_Weiss_filename = element.Weiss_filename;\n element.deleted_Weiss_filepath = element.Weiss_filepath;\n });\n\n\n this.QGRFQEditable = true;\n\n }\n cancelEditingRFQ() {\n\n window.location.reload();\n this.QGRFQEditable = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n element.MDSAttachment = [];\n element.ITCAttachment = [];\n element.CustomerAttachment = [];\n element.WeissAttachment = [];\n element.isMDSAttachment = false;\n element.isITCAttachment = false;\n element.isCustomerAttachment = false;\n element.isWeissAttachment = false;\n element.MDS_filename = element.deleted_MDS_filename;\n element.MDS_filepath = element.deleted_MDS_filepath;\n\n element.ITC_filename = element.deleted_ITC_filename;\n element.ITC_filepath = element.deleted_ITC_filepath;\n\n element.Customer_filename = element.deleted_Customer_filename;\n element.Customer_filepath = element.deleted_Customer_filepath;\n\n element.Weiss_filename = element.deleted_Weiss_filename;\n element.Weiss_filepath = element.deleted_Weiss_filepath;\n });\n }\n\n onActivityChange(i) {\n if (this.activityDetails[i].Activity == undefined || this.activityDetails[i].Activity == null || this.activityDetails[i].Activity == \"\") {\n this.activityDetails[i].ActivityValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityValidation = false;\n }\n }\n onActivityDateChange(i) {\n if (this.activityDetails[i].ActivityDate == undefined || this.activityDetails[i].ActivityDate == null || this.activityDetails[i].ActivityDate == \"\") {\n this.activityDetails[i].ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityDateValidation = false;\n }\n }\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n calculateTotalPricesForProduct(index) {\n var modelprice = 0;\n var var1price = 0;\n var var2price = 0;\n var var3price = 0;\n var var4price = 0;\n var optionprice = 0;\n\n\n modelprice = this.QuotationData.QuotationObj[index].ProductModelPrice == undefined ? 0 : this.QuotationData.QuotationObj[index].ProductModelPrice;\n var1price = this.QuotationData.QuotationObj[index].Variant1Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant1Price;\n var2price = this.QuotationData.QuotationObj[index].Variant2Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant2Price;\n var3price = this.QuotationData.QuotationObj[index].Variant3Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant3Price;\n var4price = this.QuotationData.QuotationObj[index].Variant4Price == undefined ? 0 : this.QuotationData.QuotationObj[index].Variant4Price;\n this.QuotationData.QuotationObj[index].PerUnitAmount = this.QuotationData.QuotationObj[index].PerUnitAmount == undefined ? 0 : this.QuotationData.QuotationObj[index].PerUnitAmount;\n this.QuotationData.QuotationObj[index].TotalAmount = this.QuotationData.QuotationObj[index].TotalAmount == undefined ? 0 : this.QuotationData.QuotationObj[index].TotalAmount;\n this.QuotationData.QuotationObj[index].FinalAmount = this.QuotationData.QuotationObj[index].FinalAmount == undefined ? 0 : this.QuotationData.QuotationObj[index].FinalAmount;\n\n this.QuotationData.QuotationObj[index].OptionsPrice = 0;\n this.QuotationData.QuotationObj[index].Options.forEach(element => {\n this.QuotationData.QuotationObj[index].OptionsPrice = this.QuotationData.QuotationObj[index].OptionsPrice + element.Price;\n optionprice = optionprice + element.Price;\n });\n\n this.QuotationData.QuotationObj[index].PerUnitAmount = modelprice + var1price + var2price + var3price + var4price + optionprice;\n this.QuotationData.QuotationObj[index].Variant1 = (this.QuotationData.QuotationObj[index].Variant1 == null || this.QuotationData.QuotationObj[index].Variant1 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant1;\n this.QuotationData.QuotationObj[index].Variant2 = (this.QuotationData.QuotationObj[index].Variant2 == null || this.QuotationData.QuotationObj[index].Variant2 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant2;\n this.QuotationData.QuotationObj[index].Variant3 = (this.QuotationData.QuotationObj[index].Variant3 == null || this.QuotationData.QuotationObj[index].Variant3 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant3;\n this.QuotationData.QuotationObj[index].Variant4 = (this.QuotationData.QuotationObj[index].Variant4 == null || this.QuotationData.QuotationObj[index].Variant4 == 0) ? undefined : this.QuotationData.QuotationObj[index].Variant4;\n this.QuotationData.QuotationObj[index].Discount = this.QuotationData.QuotationObj[index].Discount == undefined ? 0 : this.QuotationData.QuotationObj[index].Discount;\n\n var percent = 100 - this.QuotationData.QuotationObj[index].Discount;\n this.QuotationData.QuotationObj[index].TotalAmount = this.QuotationData.QuotationObj[index].PerUnitAmount * this.QuotationData.QuotationObj[index].Quantity;\n var final = this.QuotationData.QuotationObj[index].TotalAmount * (percent / 100);\n this.QuotationData.QuotationObj[index].FinalAmount = parseInt(final.toString());\n this.calculateTotalQuotationValues();\n }\n\n calculateTotalQuotationValues() {\n this.QuotationData.QuotationInfo.PerUnitAmount = 0;\n this.QuotationData.QuotationInfo.TotalAmount = 0;\n this.QuotationData.QuotationInfo.FinalAmount = 0;\n var final = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n this.QuotationData.QuotationInfo.PerUnitAmount = this.QuotationData.QuotationInfo.PerUnitAmount + element.PerUnitAmount;\n this.QuotationData.QuotationInfo.TotalAmount = this.QuotationData.QuotationInfo.TotalAmount + element.TotalAmount;\n final = parseFloat(final.toString()) + parseFloat(element.FinalAmount);\n });\n //this.QuotationData.QuotationInfo.FinalAmount = parseFloat(final.toString()).toFixed(2);\n this.QuotationData.QuotationInfo.FinalAmount = parseInt(final.toString());\n }\n\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);;\n }, error => {\n this.updateLoaderEvent.emit(false);;\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n EditPO() {\n this.UpdatePO = true;\n\n setTimeout(() => {\n this.editpovalue.nativeElement.focus();\n }, 0);\n }\n\n\n openTechnicalDiscardPopup() {\n const modalRef = this.modalService.open(TechnicalDiscardComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n \n onIndustrySegmentSelect(value)\n {\n if(value!=null)\n {\n this.SubSegment=this.FinalSubSegment.filter(x=>x.SegmentId==value); \n this.Application=[];\n this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n } \n onSubSegmentSelect(value)\n {\n if(value!=null)\n {\n this.Application=this.FinalApplication.filter(x=>x.SubSegmentId==value); \n }\n }\n \n \n \n openCloseOppReasonPopup() {\n const modalRef = this.modalService.open(CloseOppReasonComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n // this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id: this.EnquiryObj.EnquiryDetails.Status,\n // EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n // IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n // TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n // CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n // PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n\n getAllWorkFlow() {\n this.commonService.GetData(\"Workflow\", \"GetAll\", null).subscribe((data: any) => {\n \n if(data!=null){\n var workflowData = data;\n this.workflowId=workflowData.filter(x=>x.document_type_code == \"MANAGEMNT_APPROVAL\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId);\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getWorkflowActions(workflowId:any) {\n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId + \"&workflowId=\" + workflowId;\n\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"GetTransitionRulesByStatus\", queryString).subscribe((data: any) => {\n this.workflowActionList = data;\n this.cd.detectChanges();\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus() {\n this.updateLoaderEvent.emit(true);\n \n let tracker = this.commonService.GetData(\"Enquiry\", \"GetEnquiryStatus\", null);\n \n tracker.subscribe((data: any) => {\n this.enquiryStatusList = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker; \n }\n\n\n OnWorkflowAction(myform4: NgForm, workflowActionId: number) {\n var rule = this.workflowActionList.filter(x => x.workflowActionId == workflowActionId);\n myform4.control.markAllAsTouched();\n if (myform4.invalid) {\n this.toastr.error(\"Please fill required information\");\n return;\n }\n this.SetStatus(rule, myform4);\n\n }\n\n getUserRoles(){\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n \n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack(myform4: NgForm)\n { \n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n\n if(quotationRule[0].NextStatus != null)\n {\n this.rule = quotationRule[0];\n }\n else\n {\n if(this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationSentforMngtApproval_SalesDirector')[0].Pk_Id)\n {\n this.rule = quotationRule[0];\n this.rule.NextStatus = this.enquiryStatusList.filter(x=>x.Status=='QuotationGeneratedbyCustomerService')[0].Pk_Id\n }\n else if(this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0].Pk_Id)\n {\n this.rule = quotationRule[0];\n this.rule.NextStatus = this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0].Pk_Id;\n }\n else if(this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationSentForPriceDiscountApprovalToLevel1')[0].Pk_Id ||\n this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationSentForPriceDiscountApprovalToLevel2')[0].Pk_Id ||\n this.previousEnqStatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationSentForPriceDiscountApprovalToLevel3')[0].Pk_Id)\n {\n this.rule = quotationRule[0];\n this.rule.NextStatus = this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0].Pk_Id\n }\n \n }\n\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n \n OpenPreview()\n { \n const modalRef = this.modalService.open(QuotationPreviewComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n \n var enquiryObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId \n }\n \n modalRef.componentInstance.enquiryObj = enquiryObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n \n });\n \n }\n\n\n getQuotationDetailsById() { \n\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n let tracker = this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString);\n \n tracker.subscribe((data: any) => {\n\n this.QuotationData.QuotationInfo = data.QuotationInfo;\n this.QuotationData.QuotationObj = data.QuotationObj;\n this.QuotationData.QuotationInfo.ReferenceDateISO = new NgbDate(new Date(this.QuotationData.QuotationInfo.ReferenceDate).getFullYear(), new Date(this.QuotationData.QuotationInfo.ReferenceDate).getMonth() + 1, new Date(this.QuotationData.QuotationInfo.ReferenceDate).getDate());\n //all series data\n this.dropdownData = data.allseriesmodel;\n //this.productDrpdnDetails.ProductSeries = this.dropdownData.ProductSeries;\n this.CustomerDetailsObj = data.allseriesmodel.CustomerDetails;\n this.QuotationData.QuotationInfo.KindAttention = this.CustomerDetailsObj.KindAttention;\n // this.QuotationData.QuotationInfo.QuotationComments=this.CustomerDetailsObj. \n\n this.QuotationData.QuotationObj?.forEach(element => {\n element.selectedOptions?.forEach(a => {\n\n if (element.productmodeldata.Options.length != 0) {\n element.productmodeldata.Options?.forEach(b => {\n if (a.Id == b.Id && b.IsPriceOnRequest == true) {\n a.IsPriceOnRequest = true;\n }\n });\n }\n element.Options?.forEach(ele => {\n element.Option_Discount = ele.Option_Discount;\n element.Option_FinalDiscount = ele.Option_FinalDiscount;\n\n if (element.Varient1_Discount != null || element.Varient2_Discount != null || element.Varient3_Discount != null || element.Varient4_Discount != null || element.Option_Discount != null) {\n // this.discountaddmanually = false;\n }\n });\n //this.specialPkgDiscount = element.Special_pkg_Discount === null ? 0 : element.Special_pkg_Discount;\n // this.showVarientandOptionPrice = element.showVariantOptionPrice === null ? false : element.showVariantOptionPrice;\n // //this.showVarientDiscount = element.showVariantOptionDiscount === null ? false : element.showVariantOptionDiscount;\n //this.showSpecialPrice = element.showSpecialPrice === null ? false : element.showSpecialPrice;\n });\n\n let data = element.Options.filter(x => x.IsPriceOnRequest == true);\n if (data.length > 0 && data.length != null && data.length != undefined) {\n element.IsPriceOnRequest_Option = true;\n }\n else {\n element.IsPriceOnRequest_Option = false;\n }\n });\n\n var inde = 0;\n this.QuotationData.QuotationObj?.forEach(element => {\n element.OptionSelected = [];\n\n \n element.Options?.forEach(ele => {\n element.OptionSelected.push(ele.OptionId.toString());\n });\n inde++;\n });\n \n }, error => {\n this.toastr.error(\"Failed to load data.\");\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n ShowPreview()\n {\n \n var showPreviewConditions=this.enquiryStatusList.filter(x=>x.Status=='PriceDiscountApprovedByL1' \n ||x.Status=='PriceDiscountApprovedByL2' \n ||x.Status=='PriceDiscountApprovedByL3'\n || x.Status=='PriceDiscountRejectedByL1'\n || x.Status=='PriceDiscountRejectedByL2'\n || x.Status=='PriceDiscountRejectedByL3'\n || x.Status=='QuotationSentForPriceDiscountApprovalToLevel1' \n || x.Status=='QuotationSentForPriceDiscountApprovalToLevel2' \n || x.Status=='QuotationSentForPriceDiscountApprovalToLevel3');\n var isEnquiryinApprovalState=showPreviewConditions.filter(x=>x.Pk_Id==this.EnquiryObj.EnquiryDetails.Status);\n if(isEnquiryinApprovalState.length>0)\n {\n this.showPreviewLink=true;\n }\n else{\n this.showPreviewLink=false;\n }\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n Management Approval - Quotation\n

    \n
    \n \n

    \n Management Approval - Order\n

    \n
    \n\n
    \n

    \n Management Approval\n

    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n\n\n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerName}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.IndustrySegment}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerType}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.Region}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.RFQTermsAndCondition}}\n
    \n
    \n \n
    \n €\n {{EnquiryObj.EnquiryDetails.FinalAmount |\n indianCurrency}}/-\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.KindAttention}}\n
    \n
    \n \n \n
    \n
    \n
    \n \n
    \n € {{EnquiryObj.EnquiryDetails.POValue |\n indianCurrency}}/-\n
    \n
    \n \n \n\n
    \n
    \n\n \n \n \n
    \n \n
    \n
    \n Upload\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n 0\">\n
      \n \n
    • \n {{item.name}}  
    • \n \n
    \n\n \n
    \n
    \n\n\n
    \n\n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n    \n \n \n \n
    \n
    \n\n
    \n
    \n\n \n \n\n\n\n","import { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\n\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n\n@Component({\n selector: 'app-oa-generation',\n templateUrl: './oa-generation.component.html',\n styleUrls: ['./oa-generation.component.scss']\n})\nexport class OaGenerationComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean =false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable:boolean=false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange:any;\n Discounttorange:any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n OADownloadPath = this.AppGlobals.OADownloadPath;\n ShowOALink: boolean = false;\n workflowActionList:any[] = [];\n enquiryStatusList: EnquiryStatusList[]=[];\n workflowId:number;\n roleOfAdmin : any;\n @Output() updateLoaderEvent = new EventEmitter();\n UserRolesData:any[]=[];\n WinLossDataForStatus: any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n\n }\n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);\n }, 2000);\n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getEnquirySourceDetails();\n this.getCustomerList();\n this.getEnquiryDetailsById();\n this.getEnquiryStatus();\n this.getAllWorkFlow();\n this.getUserRoles();\n this.isEnquiryLoaded = false;\n this.getSendbackWorkfow();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n this.roleOfAdmin = UserRoles.Admin;\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n \n\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n // this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n if(this.EnquiryObj.EnquiryDetails.segment!=undefined)\n {\n this.SubSegment = this.FinalSubSegment.filter(x=>x.SegmentId==this.EnquiryObj.EnquiryDetails.segment);\n this.Application= this.FinalApplication.filter(x=>x.SubSegmentId==this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if(this.EnquiryObj.EnquiryDetails.segment==null|| this.EnquiryObj.EnquiryDetails.subSegment==null || this.EnquiryObj.EnquiryDetails.application==null)\n {\n this.EnquiryObj.EnquiryDetails.segment=undefined;\n this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n\n // if (this.EnquiryObj.EnquiryDetails.OA_filename != \"\") {\n // this.ShowOALink = true;\n // }\n\n // if (!(this.EnquiryObj.EnquiryDetails.OA_filename == null ||\n // this.EnquiryObj.EnquiryDetails.OA_filename == undefined ||\n // this.EnquiryObj.EnquiryDetails.OA_filename == \"\")) {\n // this.ShowOALink = true;\n // } else {\n // this.ShowOALink = false;\n // }\n\n //this.EnquiryObj.EnquiryDetails.IsFetchFromKYC=data.EnquiryDetails.IsFetchFromKYC;\n \n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n // replaceAll(str, term, replacement) {\n // return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);\n // }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n\n custtermscond: any = [];\n \n \n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n\n getCustomerList() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getProductDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.updateLoaderEvent.emit(false);\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n \n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n\n\n\n GenerateOANumber() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Once OA Number Generated, can't be altered. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GenerateOANo', queryString).subscribe((data: any) => {\n\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = data;\n this.isOAGenerated = true;\n this.updateLoaderEvent.emit(false);\n this.toastr.success('Order Acknowledgement Number generated successfully!');\n\n }, error => {\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = undefined;\n this.toastr.error('Failed to Order Acknowledgement Number!');\n this.isOAGenerated = false;\n this.updateLoaderEvent.emit(false);\n });\n }\n });\n }\n\n onStepChange(data) {\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id && data.previouslySelectedIndex == 0 && this.activityDetails[0].Activity != \"\") {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Please make sure that you have saved the activity details. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n } else {\n this.stepper.selectedIndex = data.previouslySelectedIndex;\n }\n });\n }\n }\n\n radioChange(event) {\n\n }\n\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n this.AddEnquiry();\n\n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n \n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard')\n {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions=null;\n }\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Customized')\n {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n } \n this.EnquiryObj.TermsAndConditions=null;\n } \n \n \n }\n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length==0)) {\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.EnquiryObj.TermsAndConditions = null;\n \n if(this.QGRFQEditable == true)\n {\n this.EnquiryObj.CustomTermsAndConditions;\n \n }else{\n this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n }\n }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n \n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n //this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n\t \n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n this.toastr.success(\"OA Number generated successfully\");\n }\n else {\n this.toastr.success(confimrmsg.successmsg);\n }\n\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n\t }\n \n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n }\n }\n });\n\n }\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n\n\n downloadPDF() {\n const url = AppGlobals.baseAppUrl + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadOAPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n \n getAllWorkFlow() {\n this.commonService.GetData(\"Workflow\", \"GetAll\", null).subscribe((data: any) => {\n \n if(data!=null){\n var workflowData = data;\n this.workflowId=workflowData.filter(x=>x.document_type_code == \"ORDER_ACK\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId);\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getWorkflowActions(workflowId:any)\n { \n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId +\"&workflowId=\" + workflowId ;\n\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetTransitionRulesByStatus\",queryString).subscribe((data: any) => {\n this.workflowActionList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus()\n {\n this.commonService.GetData(\"Enquiry\",\"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n OnWorkflowAction(myform9:NgForm,workflowActionId:number)\n { \n var rule= this.workflowActionList.filter(x=>x.workflowActionId==workflowActionId);\n \n myform9.control.markAllAsTouched();\n if(myform9.invalid)\n {\n this.toastr.error(\"Please fill required information\");\n return;\n } \n this.SetStatus(rule,myform9); \n }\n\n getUserRoles(){\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n \n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n \n sendbackRules:EnquirySendBack[]=[];\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack()\n { \n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n this.rule=quotationRule[0];\n\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n }); \n }\n\n}\n","
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Order Acknowledgement\n

    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerName}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.IndustrySegment}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerType}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.Region}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.RFQTermsAndCondition}}\n
    \n
    \n \n
    \n €\n {{EnquiryObj.EnquiryDetails.FinalAmount |\n indianCurrency}}/-\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.KindAttention}}\n
    \n
    \n \n \n
    \n
    \n \n
    \n € {{EnquiryObj.EnquiryDetails.POValue |\n indianCurrency}}/-\n
    \n
    \n \n \n\n
    \n\n
    \n\n \n \n
    \n \n
    \n \n
    \n\n\n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n    \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition, CompetitorDetails } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport {UserRoles} from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EngagementReportServiceService } from 'src/app/Service/engagement-report-service.service';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { log } from 'console';\nimport { forkJoin } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { any } from '@amcharts/amcharts4/.internal/core/utils/Array';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n\n@Component({\n selector: 'app-order-confirmation',\n templateUrl: './order-confirmation.component.html',\n styleUrls: ['./order-confirmation.component.scss']\n})\nexport class OrderConfirmationComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC: any[] = [];\n customTCValues: any[] = [];\n CategoryRegion: any[] = [];\n DupCategoryRegion: any[] = [];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n\n newRFQDetails: any = {};\n productListdropdownData = [];\n\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean = false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable: boolean = false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange: any;\n Discounttorange: any;\n isCompetitorRequired : boolean = false;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n CompetitorDetails: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string ;\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n transitionRule: any;\n workflowActionList: any[] = [];\n enquiryStatusList: EnquiryStatusList[] = [];\n workflowId: number;\n roleOfAdmin : any;\n\n @Output() updateLoaderEvent = new EventEmitter();\n filterRule: any[];\n UserRolesData:any[]=[];\n isEnquiryConfirmationEditable: boolean=false;\n WinLossDataForStatus: any;\n disableWonCategory: boolean=false;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private cd: ChangeDetectorRef,\n private workflowService: EngagementReportServiceService, private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n }\n \n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n this.isprocessing = false;\n \n this.updateLoaderEvent.emit(false);\n }, 2000);\n //this.stepper.selectedIndex = this.selectedIndexForStatus; \n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getAllWorkFlow()\n //this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n //this.getEnquiryDetailsById();\n this.getAllCategoryRegion();\n this.getEnquiryStatus();\n this.getUserRoles();\n this.getSendbackWorkfow();\n this.isEnquiryLoaded = false;\n\n forkJoin([\n this.getRFQProduct(), \n ]).pipe(tap(res => { \n \n this.getEnquiryDetailsById(); \n })).subscribe(x=>{\n \n });\n \n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n\n this.roleOfAdmin = UserRoles.Admin;\n this.userid = localStorage.getItem(\"UserID\");\n }\n \n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n \n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n editActivity() {\n this.isEditactivity = true;\n }\n cancelEditActivity() {\n this.isEditactivity = false;\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.updateLoaderEvent.emit(true);\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryObj.EnquiryDetails.EnquiryId;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n //this.isEditactivity = false;\n this.toastr.success(\"Activity details added successfully!\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n this.remCharLimit = this.maxCharLimit - data.EnquiryDetails.EndCustomer?.length;\n this.remappdescLimit = this.maxappdescLimit - data.EnquiryDetails.ApplicationDescription?.length;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n \n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n if(this.EnquiryObj.EnquiryDetails.ReasonCategory!=null && (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus!=null || this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus!=\"\"))\n {\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj; \n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Name == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == \"Won\") {\n this.disableWonCategory=true;\n } \n var category=this.CategoryRegion.filter(x => x.ReasonCategoryId == this.EnquiryObj.EnquiryDetails.ReasonCategory); \n this.getAllCloseEnquiryReasonByReasonCategoryCode(category[0].ReasonCode); \n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason=data.EnquiryDetails.EnquiryConfirmReason;\n this.cd.detectChanges();\n } \n else\n {\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus=null;\n this.CategoryRegion=null;\n this.WinLossDropdownDataForStatus=null;\n this.EnquiryObj.EnquiryDetails.ReasonCategory=null;\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason=null;\n }\n \n this.EnquiryObj.CompetitorDetailObj = data.CompetitorDetailObj;\n \n\n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n if (this.EnquiryObj.CompetitorDetailObj.length == 0) {\n var object = new CompetitorDetails();\n this.EnquiryObj.CompetitorDetailObj.push(object);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n // this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n\n //SET DISABLE PROPERTIES\n if(this.workflowActionList.length>0 )\n {\n this.isEnquiryConfirmationEditable=true;\n }\n else{\n this.isEnquiryConfirmationEditable=false;\n }\n\n if (this.EnquiryObj.EnquiryDetails.segment != undefined) {\n this.onIndustrySegmentSelect(this.EnquiryObj.EnquiryDetails.segment);\n this.onSubSegmentSelect(this.EnquiryObj.EnquiryDetails.subSegment);\n }\n \n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = data.EnquiryDetails.IsFetchFromKYC;\n\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);\n let tracker = this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null);\n\n tracker.subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment;\n this.SubSegment = [];\n this.Application = [];\n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication = data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n //this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n\n this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n }\n\n\n\n\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n\n deleteActivityDetails(index) {\n if (index != null) {\n this.activityDetails.splice(index, 1);\n }\n }\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n obj.ISNewActivityAdded = true;\n this.activityDetails.push(obj);\n }\n }\n\n getCustomerList() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getProductDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.updateLoaderEvent.emit(false);\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n openQuotationPopup(flag) {\n const frmData = new FormData();\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n this.updateLoaderEvent.emit(true);\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n this.commonService.PostData(\"Enquiry\", \"AddBOM\", frmData, null).subscribe((data: any) => {\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n const modalRef = this.modalService.open(EnquiryModalComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n modalRef.componentInstance.enquiObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n if (flag === 1) {\n } else {\n // this.saveQuoteLimit(this.QuotationNumber, result);\n }\n }\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n onEnquiryConfirmationStatusChange() {\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = null;\n this.EnquiryObj.EnquiryDetails.ReasonCategory = null; \n this.disableWonCategory=false;\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == \"Lost\") {\n this.isPoValueDisable = true;\n this.EnquiryObj.EnquiryDetails.POValue = \"0\";\n this.CategoryRegion=this.DupCategoryRegion.filter(x=>x.AvailableAtWorkflowScreen == 7 && x.EnquiryConfirmationStatus==\"Lost\");\n } else {\n this.isPoValueDisable = false;\n this.EnquiryObj.EnquiryDetails.POValue = undefined;\n this.CategoryRegion =this.DupCategoryRegion.filter(x=>x.AvailableAtWorkflowScreen == 7 && x.EnquiryConfirmationStatus==\"Won\");\n this.EnquiryObj.EnquiryDetails.ReasonCategory= this.CategoryRegion[0]?.ReasonCategoryId;\n this.getAllCloseEnquiryReasonByReasonCategoryCode(this.CategoryRegion[0]?.ReasonCode);\n this.disableWonCategory=true;\n }\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n }\n\n onEnquiryReasonCategoryChange(ReasonCategoryId : any){\n var CategoryRegionDetail = this.CategoryRegion.filter(x => x.ReasonCategoryId == ReasonCategoryId);\n if(CategoryRegionDetail.length>0)\n {\n this.getAllCloseEnquiryReasonByReasonCategoryCode(CategoryRegionDetail[0]?.ReasonCode)\n } \n }\n \n getAllCloseEnquiryReasonByReasonCategoryCode(catreasoncode) {\n let reasoncode = catreasoncode\n let queryString = \"\";\n queryString = \"reasonCatCode=\" + reasoncode;\n this.commonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReason\", queryString).subscribe((data: any) => {\n this.WinLossDropdownDataForStatus = data; \n },\n error => {\n this.toastr.error(\"Failed to load Data!\");\n this.showLoader = false;\n });\n }\n\n onEnquiryReasonChange(ReasonId : any){\n // console.log(ReasonId);\n var reasonDetail = this.WinLossDropdownDataForStatus.filter(x => x.Id == ReasonId);\n\n if(this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == \"Lost\" && reasonDetail[0].ReasonCategoryCode == \"COMPT_CAT\" )\n {\n this.isCompetitorRequired = true;\n }\n else{\n this.isCompetitorRequired = false;\n }\n }\n\n \n onStepChange(data) {\n\n if (this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id && data.previouslySelectedIndex == 0 && this.activityDetails[0].Activity != \"\") {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Please make sure that you have saved the activity details. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n } else {\n this.stepper.selectedIndex = data.previouslySelectedIndex;\n }\n });\n }\n }\n\n radioChange(value: any) {\n if (value == \"1\") {\n this.filterRule = this.workflowActionList.filter(x => x.workflowActionCode == 'Submit');\n this.chosenItem = \"1\";\n }\n else if (value == \"2\") {\n this.filterRule = this.workflowActionList.filter(x => x.workflowActionCode == 'Revision');\n this.chosenItem = \"2\";\n }\n\n }\n\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n if (rule[0].workflowNextStatusId == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n this.quoterevcomments = \"\";\n\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == 'Won') this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id;\n if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus == 'Lost') this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'EnquiryLost')[0]?.Pk_Id\n\n } else if (rule[0].workflowNextStatusId == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id) {\n this.EnquiryObj.EnquiryDetails.Comments = this.quoterevcomments;\n this.myform5.reset();\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus = null;\n this.EnquiryObj.EnquiryDetails.POValue = null;\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason = null;\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n }\n this.AddEnquiry();\n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n\n \n if (!this.IsRFQDataValid) {\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions = null;\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Customized') {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n }\n this.EnquiryObj.TermsAndConditions = null;\n }\n }\n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'SendBOMandProposal')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0 || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename==null)) {\n //return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n //return;\n \n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to proceed?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.EnquiryObj.TermsAndConditions = null;\n\n if (this.QGRFQEditable == true) {\n this.EnquiryObj.CustomTermsAndConditions;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n }\n }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n\n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OANoGenerated')[0]?.Pk_Id) {\n this.toastr.success(\"OA Number generated successfully\");\n }\n else {\n this.toastr.success(confimrmsg.successmsg);\n }\n\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n povalueChange(i) {\n var povalue: number = parseFloat(this.EnquiryObj.POValues[i].ProductModelPOValue);\n if (povalue == undefined || povalue == null) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue < 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue % 1 != 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (this.EnquiryObj.POValues[i].ProductModelPOValue.toString().includes(\".\")) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n }\n else {\n this.EnquiryObj.POValues[i].QUotationValueValidation = false;\n }\n }\n \n \n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n \n\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n\n onIndustrySegmentSelect(value) {\n if (value != null) {\n this.SubSegment = this.FinalSubSegment.filter(x => x.SegmentId == value);\n this.Application = [];\n // this.EnquiryObj.EnquiryDetails.subSegment = undefined;\n // this.EnquiryObj.EnquiryDetails.application = undefined;\n }\n }\n onSubSegmentSelect(value) {\n if (value != null) {\n this.Application = this.FinalApplication.filter(x => x.SubSegmentId == value);\n }\n }\n\n\n\n openCloseOppReasonPopup() {\n const modalRef = this.modalService.open(CloseOppReasonComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n // EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n // EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n // IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n // TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n // CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n // PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n\n\n maxCharLimit: any = 50;\n remCharLimit: any = 50;\n maxappdescLimit: any = 1500;\n remappdescLimit: any = 1500;\n\n limitTextOnKeyUpDown2(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxCharLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxCharLimit);\n } else {\n this.remCharLimit = this.maxCharLimit - goalText.length;\n }\n }\n\n limitTextOnKeyUpDown3(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxappdescLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxappdescLimit);\n } else {\n this.remappdescLimit = this.maxappdescLimit - goalText.length;\n }\n }\n\n AddNewRow(index) {\n if (this.EnquiryObj.CompetitorDetailObj[index].CompetitorName != undefined &&\n this.EnquiryObj.CompetitorDetailObj[index].ModelName != undefined &&\n this.EnquiryObj.CompetitorDetailObj[index].Price != undefined) {\n this.EnquiryObj.CompetitorDetailObj[index].IsRowDeleted = true;\n var obj = new CompetitorDetails();\n this.EnquiryObj.CompetitorDetailObj.push(obj);\n }\n else {\n this.toastr.info(\"Please fill mandatory details before adding new row.\");\n }\n }\n\n\n deleterow(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.EnquiryObj.CompetitorDetailObj.splice(index, 1);\n } else {\n this.EnquiryObj.CompetitorDetailObj.pop();\n }\n }\n });\n }\n\n getAllWorkFlow() {\n this.commonService.GetData(\"Workflow\", \"GetAll\", null).subscribe((data: any) => {\n \n if(data!=null){\n var workflowData = data;\n this.workflowId=workflowData.filter(x=>x.document_type_code == \"ENQUIRY_CONFIRMATION\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId);\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getWorkflowActions(workflowId:any) {\n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId + \"&workflowId=\" + workflowId;\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"GetTransitionRulesByStatus\", queryString).subscribe((data: any) => {\n if(data!=null)\n {\n var filteredArray:any[]=[];\n data.forEach(element => {\n if(!filteredArray.includes(element.workflowActionCode))\n {\n filteredArray.push(element);\n }\n });\n this.workflowActionList = filteredArray; \n } \n this.chosenItem = \"1\"; \n \n this.filterRule = this.workflowActionList.filter(x => x.workflowActionCode == 'Submit');\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus() {\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n OnWorkflowAction(myform5: NgForm, workflowActionId: number) {\n var rule = this.workflowActionList.filter(x => x.workflowActionId == workflowActionId);\n myform5.control.markAllAsTouched();\n if (myform5.invalid) {\n this.toastr.error(\"Please fill required information\");\n return;\n }\n this.SetStatus(rule, myform5);\n }\n getUserRoles(){\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n \n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n sendbackRules:EnquirySendBack[]=[];\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack()\n { \n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n this.rule=quotationRule[0];\n //this.rule.EnquiryId=this.EnquiryObj.EnquiryDetails.EnquiryId;\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n }); \n }\n\n getAllCategoryRegion() {\n this.showLoader = true;\n this.commonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReasonCategory\", null).subscribe((data: any) => {\n this.CategoryRegion = data;\n this.DupCategoryRegion = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n \n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n deletePOAttachment(flag: any) {\n // this.EnquiryObj.EnquiryDetails.POAttchments = [];\n // this.isPOAttachment = false;\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.PO_filepath);\n this.isPOAttacmentDelete = true;\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.PO_filename = null;\n this.EnquiryObj.EnquiryDetails.PO_filepath = null;\n this.isPOAttachment = false;\n }\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Confirmation\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n \n Enquiry\n Confirmation\n   \n Quotation\n Revision\n \n

    \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n\n\n
    \n
    \n \n \n
    \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n Enquiry status is\n required\n
    \n
    \n
    \n
    \n\n \n\n
    \n \n
    \n
    \n Reason Category is required\n
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n Reason is\n required\n
    \n
    \n
    \n
    \n\n
    \n\n \n
    \n \n
    \n
    \n PO Value must be an integer\n
    \n
    \n PO value is\n required\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n Attach PO/LOI\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherAttachments}}\n
    \n PO attachment is\n required\n
    \n
    \n {{EnquiryObj.EnquiryDetails.POAttchments\n != undefined &&\n EnquiryObj.EnquiryDetails.POAttchments[0]\n != undefined ?\n EnquiryObj.EnquiryDetails.POAttchments[0].name:\n \"\"}}\n
    \n
    \n\n
    \n \n\n\n
    \n\n
    \n \n Application\n
    \n
    \n \n
    \n \n
    \n
    \n Industry segment is required\n
    \n
    \n
    \n\n
    \n\n \n
    \n \n
    \n
    \n Sub segment is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Application name is required\n
    \n
    \n\n
    \n\n
    \n\n \n
    \n \n Limit {{maxCharLimit}}\n characters,\n {{remCharLimit}} characters\n remaining.\n
    \n
    \n End Customer is\n required\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n \n Limit {{maxappdescLimit}}\n characters,\n {{remappdescLimit}} characters\n remaining.\n
    \n
    \n Application Description is\n required\n
    \n
    \n
    \n
    \n
    \n \n Competitor Details\n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n
    \n Competitor Name\n \n Model Number\n \n Competitor Price\n \n Action\n
    \n\n \n\n
    \n \n Competitor Name is required\n \n
    \n\n
    \n \n
    \n \n Model Name is required\n \n
    \n\n
    \n \n
    \n Price is\n required\n Please enter\n an integer value\n
    \n
    \n \n
    \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n    \n \n \n \n
    \n\n\n
    \n
    \n
    \n
    \n\n
    ","import { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-pass-on',\n templateUrl: './pass-on.component.html',\n styleUrls: ['./pass-on.component.scss']\n})\nexport class PassOnComponent implements OnInit {\n @Input() showLoader: boolean = false;\n @Input() enqObj: any;\n userid: any;\n salesEnggList: any;\n selectedSalesEngg: any;\n seList: any[];\n currentSalesEngg: any;\n selectedRegion: any = 0;\n SelectedEnquiryID: any;\n salesRegionValidation: boolean;\n salesEnggValidation: boolean;\n constructor(private toastr: ToastrService,private activeModal: NgbActiveModal,\n private commonService: CommonService,private modalService: NgbModal, public dialog: MatDialog) { }\n\n ngOnInit(): void {\n this.getAllSalesEngg();\n }\n getAllSalesEngg() {\n this.showLoader = true;\n\n this.commonService.GetData('Enquiry', 'GetSalesEnggList', null).subscribe((data: any) => {\n this.salesEnggList = data;\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n onRegionChange() {\n this.seList = [];\n this.selectedSalesEngg = undefined;\n this.salesRegionValidation = false;\n this.seList = this.salesEnggList.filter(x=>x.Region.Id==this.selectedRegion)[0]?.SalesEnggList;\n if (!(this.seList==null || this.seList==undefined)) {\n this.seList = this.seList.filter(x=>x.Id!=this.enqObj.Initiator_Id);\n }\n \n }\n onEnggChange() {\n this.salesEnggValidation= false;\n }\n\n PassonToPerson() {\n if (this.selectedRegion==undefined || this.selectedRegion==null || this.selectedRegion==0) {\n this.salesRegionValidation = true;\n this.salesEnggValidation = true;\n return;\n }\n if (this.selectedSalesEngg==undefined || this.selectedSalesEngg==null || this.selectedSalesEngg==0) {\n this.salesEnggValidation = true;\n return;\n }\n var PassOnViewModel = {\n EnquiryId:this.enqObj.EnquiryId,\n User: this.selectedSalesEngg\n }\n this.showLoader = true;\n this.commonService.PostData(\"Enquiry\",\"PassOn\",PassOnViewModel,null).subscribe(res =>{\n this.toastr.success('Enquiry passed on successfully!');\n this.showLoader = false;\n this.activeModal.close('Close Click');\n },error=>{\n this.toastr.error('Failed to Pass on the enquiry.');\n this.showLoader = false;\n })\n }\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n\n}\n","\n
    \n \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Forward\n

    \n
    \n
    \n
    \n
    \n \n
    \n\n \n
    \n \n
    \n Region is required\n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n Sales Engineer is required\n
    \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n\n \n
    \n
    \n
    \n","import { Component, OnInit, Input, EventEmitter, Output, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { string } from '@amcharts/amcharts4/core';\nimport { EnquiryExportToExcelModel, EnquiryGridFilterList, EnquiryGridModel, EnquiryModel, EnquiryPaginationGrid } from 'src/app/Model/EnquiryModel';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { ActivityDetailsComponent } from '../activity-details/activity-details.component';\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { PassOnComponent } from '../pass-on/pass-on.component';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { AppGlobals } from 'src/app/app.global';\nimport { DatePipe } from '@angular/common';\nimport { AddActivityComponent } from '../../customer-engagement/activity/add-activity/add-activity.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-pending-enquiry',\n templateUrl: './pending-enquiry.component.html',\n styleUrls: ['./pending-enquiry.component.scss']\n})\nexport class PendingEnquiryComponent implements OnInit {\n\n displayedColumns: string[] = ['EnquiryId', 'EnquiryDate', 'CustomerName', 'QuotationNumber', 'Products',\n 'EnquiryValue', 'Discount', 'EnquiryWinLostOpenStatus', 'EstimatedProductvalue', 'RegionName',\n 'IndustrySegment', 'SubSegment', 'CustomerClassification',\n 'ActivityType', 'Activity_Subject', 'ActivityStatus', 'ActivityPurpose', 'ActivityPurposeDesc', 'Activity_Outcome', 'Activity_OutcomeDesc',\n 'EnquiryStatus', 'InitiatorName', 'Action'];\n\n\n EnquiryGridFilterList: EnquiryGridFilterList = new EnquiryGridFilterList();\n minDate: NgbDate;\n maxDate: NgbDate;\n datePipe = new DatePipe('en-US');\n\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n @Input()\n EnquiryId: number;\n AppRoles = UserRoles;\n AppGlobals = AppGlobals;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n EnquiryngbDateFromFiter: NgbDate | null;\n EnquiryngbDateToFiter: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n charCode: any;\n ExportToExcelData: EnquiryExportToExcelModel[] = [];\n TempEnquiryData: any[] = [];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 100;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter\n @ViewChild(MatPaginator) paginator: MatPaginator;\n SearchColname: string = \"\";\n SearchColKeyword: string = \"\";\n\n PaginationModel: EnquiryPaginationGrid = new EnquiryPaginationGrid();\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n alldata: any;\n role: string;\n userid: string;\n closeResult: string;\n salesEnggList: any;\n selectedRegion: any;\n seList: any;\n SelectedEnquiryID: any;\n selectedSalesEngg: any;\n salesRegionValidation: boolean;\n salesEnggValidation: boolean;\n currentSalesEngg: any;\n\n /************************USED FOR ROWSPAN************************/\n gridData: any[] = [];\n spans = [];\n tempRowId = null;\n tempRowCount = null;\n /************************USED FOR ROWSPAN END************************/\n\n constructor(private toastr: ToastrService,\n private cd: ChangeDetectorRef, private commonService: CommonService, private modalService: NgbModal, public dialog: MatDialog\n , private titleService: Title, private route: ActivatedRoute, private calendar: NgbCalendar, public formatter: NgbDateParserFormatter,\n private appConfigService: AppConfigService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n }\n\n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.role = localStorage.getItem(\"UserRole\");\n this.userid = localStorage.getItem(\"UserID\");\n this.GetAllEnquiryGridFilterList();\n this.GetAllEnquiry();\n }\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllEmployeeDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllEnquiry() {\n // var x = document.getElementsByClassName(\"table-responsive\");\n // var i;\n // for (i = 0; i < x.length; i++) {\n // x[i].scrollLeft = 0;\n\n // }\n this.showLoader = true;\n\n this.PaginationModel.pageNumber = this.pageNumber;\n this.PaginationModel.pageSize = this.pageSize;\n this.PaginationModel.SearchText = this.SearchText;\n this.PaginationModel.direction = this.direction;\n this.PaginationModel.ColumnName = this.ColumnName;\n\n if (this.EnquiryngbDateToFiter != undefined && this.EnquiryngbDateToFiter != null) {\n this.PaginationModel.EnquiryDateToFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateToFiter = null;\n }\n\n if (this.EnquiryngbDateFromFiter != undefined && this.EnquiryngbDateFromFiter != null) {\n this.PaginationModel.EnquiryDateFromFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateFromFiter = null;\n }\n\n let QuotationValueFromFilter: number = +this.PaginationModel.QuotationValueFromFilter;\n let QuotationValueToFilter: number = +this.PaginationModel.QuotationValueToFilter;\n if (this.PaginationModel.QuotationValueFromFilter != null && QuotationValueFromFilter > 0 && QuotationValueToFilter > 0 && this.PaginationModel.QuotationValueToFilter != null) {\n if (QuotationValueToFilter < QuotationValueFromFilter) {\n alert(\"To Quotation value should be greater than From Quotation value.\")\n this.PaginationModel.QuotationValueFromFilter = null;\n }\n }\n\n\n let DiscountFromFilter: number = +this.PaginationModel.DiscountFromFilter;\n let DiscounToFilter: number = +this.PaginationModel.DiscounToFilter;\n if (this.PaginationModel.DiscountFromFilter != null && DiscountFromFilter > 0 && DiscounToFilter > 0 && this.PaginationModel.DiscounToFilter != null) {\n if (DiscounToFilter < DiscountFromFilter) {\n alert(\"To Discount should be greater than From Discount.\")\n this.PaginationModel.DiscountFromFilter = null;\n\n }\n }\n\n this.commonService.PostData('Enquiry', 'GetAllPagination_Pending', this.PaginationModel, null).subscribe((data: any) => {\n this.data = data.Data;\n if (data.Data != null) {\n this.BindGridData();\n\n }\n\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.gridData);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n var x = document.getElementsByClassName(\"table-responsive\");\n var i;\n for (i = 0; i < x.length; i++) {\n x[i].scrollLeft = 0;\n\n }\n this.GetAllEnquiry();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllEnquiry();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n var x = document.getElementsByClassName(\"table-responsive\");\n var i;\n for (i = 0; i < x.length; i++) {\n x[i].scrollLeft = 0;\n\n }\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllEnquiry();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n SetEnquiryId(EnquiryId) {\n this.EnquiryId = EnquiryId;\n }\n\n convertDate(date: any) {\n date = date.split('T')[0];\n return date;\n }\n openQuotationPopup(enqid, enqNo, initiatorID, status, PendingAtRoleId) {\n\n const modalRef = this.modalService.open(ActivityDetailsComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var EnquiryId = {\n enqid: enqid,\n endNo: enqNo,\n initID: initiatorID,\n status: status,\n PendingAtRoleId: PendingAtRoleId\n };\n\n modalRef.componentInstance.EnquiryId = EnquiryId;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n // this.GetAllEnquiry();\n // if (flag === 1) {\n // } else {\n // // this.saveQuoteLimit(this.QuotationNumber, result);\n // }\n }\n });\n }\n openPassOn(rowObject) {\n const modalRef = this.modalService.open(PassOnComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var EnquiryId = rowObject;\n\n modalRef.componentInstance.enqObj = EnquiryId;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.GetAllEnquiry();\n }\n });\n }\n\n /************************************************************************\n * Grid RowSpan Methods \n * **********************************************************************/\n\n BindGridData() {\n this.showLoader = true;\n this.gridData = [];\n this.spans = [];\n this.data.forEach(item => {\n item.EnquiryDate = this.convertDate(item.EnquiryDate);\n if (item.QuotationDetailsList != null && item.QuotationDetailsList.length > 0 && item.QuotationDetailsList.length != null && item.QuotationDetailsList.length != undefined) {\n for (let i = 0; i < item.QuotationDetailsList.length; i++) {\n var obj = {\n \"Products\": item.QuotationDetailsList[i].ModelName,\n \"EnquiryValue\": item.QuotationDetailsList[i].FinalAmount,\n \"Discount\": item.QuotationDetailsList[i].Discount,\n \"EnquiryId\": item.EnquiryId,\n \"Initiator_Id\": item.Initiator_Id,\n \"InitiatorName\": item.InitiatorName,\n \"RoleName\": item.RoleName,\n \"CustomerId\": item.CustomerId,\n \"CustomerName\": item.CustomerName,\n \"CustomerCode\": item.CustomerCode,\n \"IndustrySegment\": item.IndustrySegment,\n \"SubSegment\": item.SubSegment,\n \"CustomerType\": item.CustomerType,\n \"CustomerClassification\": item.CustomerClassification,\n \"CustomerCategory\": item.CustomerCategory,\n \"RegionName\": item.RegionName,\n \"Country\": item.Country,\n \"EstimatedProductvalue\": item.EstimatedProductvalue,\n \"EnquiryNumber\": item.EnquiryNumber,\n \"EnquiryDate\": item.EnquiryDate,\n \"EnquirySourceId\": item.EnquirySourceId,\n \"EnquirySource\": item.EnquirySource,\n \"EnquiryDescription\": item.EnquiryDescription,\n \"Status\": item.Status,\n \"PendingAtRoleId\": item.PendingAtRoleId,\n \"EnquiryStatus\": item.EnquiryStatus,\n \"EnquiryWinLostOpenStatus\": item.EnquiryWinLostOpenStatus,\n \"CreatedOn\": item.CreatedOn,\n \"RFQNumber\": item.RFQNumber,\n \"RFQTermsAndCondition\": item.RFQTermsAndCondition,\n \"POValue\": item.POValue,\n \"EnquiryConfirmStatus\": item.EnquiryConfirmStatus,\n \"POStdReason\": item.POStdReason,\n \"OrdAcknowledgeNumber\": item.OrdAcknowledgeNumber,\n \"SupplyChainType\": item.SupplyChainType,\n \"TentativeDeliveryDate\": item.TentativeDeliveryDate,\n \"ModifiedOn\": item.ModifiedOn,\n \"EnquiryYear\": item.EnquiryYear,\n \"QuotationNumber\": item.QuotationNumber,\n \"QuotationPdf_filename\": item.QuotationPdf_filename,\n // \"Activity_Updates\": item.Activity_Updates,\n // \"Activity_ActionPlan\": item.Activity_ActionPlan\n \"ActivityType\": item.ActivityType,\n \"Activity_Subject\": item.Activity_Subject,\n \"ActivityStatus\": item.ActivityStatus,\n \"ActivityPurpose\": item.ActivityPurpose,\n \"ActivityPurposeDesc\": item.ActivityPurposeDesc,\n \"Activity_Outcome\": item.Activity_Outcome,\n \"Activity_OutcomeDesc\": item.Activity_OutcomeDesc\n }\n\n this.gridData.push(obj);\n\n }\n }\n else {\n var obj1 = {\n \"Products\": null,\n \"EnquiryValue\": null,\n \"Discount\": null,\n \"EnquiryId\": item.EnquiryId,\n \"Initiator_Id\": item.Initiator_Id,\n \"InitiatorName\": item.InitiatorName,\n \"RoleName\": item.RoleName,\n \"CustomerId\": item.CustomerId,\n \"CustomerName\": item.CustomerName,\n \"CustomerCode\": item.CustomerCode,\n \"IndustrySegment\": item.IndustrySegment,\n \"SubSegment\": item.SubSegment,\n \"CustomerType\": item.CustomerType,\n \"CustomerClassification\": item.CustomerClassification,\n \"CustomerCategory\": item.CustomerCategory,\n \"RegionName\": item.RegionName,\n \"Country\": item.Country,\n \"EstimatedProductvalue\": item.EstimatedProductvalue,\n \"EnquiryNumber\": item.EnquiryNumber,\n \"EnquiryDate\": item.EnquiryDate,\n \"EnquirySourceId\": item.EnquirySourceId,\n \"EnquirySource\": item.EnquirySource,\n \"EnquiryDescription\": item.EnquiryDescription,\n \"Status\": item.Status,\n \"PendingAtRoleId\": item.PendingAtRoleId,\n \"EnquiryStatus\": item.EnquiryStatus,\n \"EnquiryWinLostOpenStatus\": item.EnquiryWinLostOpenStatus,\n \"CreatedOn\": item.CreatedOn,\n \"RFQNumber\": item.RFQNumber,\n \"RFQTermsAndCondition\": item.RFQTermsAndCondition,\n \"POValue\": item.POValue,\n \"EnquiryConfirmStatus\": item.EnquiryConfirmStatus,\n \"POStdReason\": item.POStdReason,\n \"OrdAcknowledgeNumber\": item.OrdAcknowledgeNumber,\n \"SupplyChainType\": item.SupplyChainType,\n \"TentativeDeliveryDate\": item.TentativeDeliveryDate,\n \"ModifiedOn\": item.ModifiedOn,\n \"EnquiryYear\": item.EnquiryYear,\n \"QuotationNumber\": item.QuotationNumber,\n \"QuotationPdf_filename\": item.QuotationPdf_filename,\n // \"Activity_Updates\": item.Activity_Updates,\n // \"Activity_ActionPlan\": item.Activity_ActionPlan\n \"ActivityType\": item.ActivityType,\n \"Activity_Subject\": item.Activity_Subject,\n \"ActivityStatus\": item.ActivityStatus,\n \"ActivityPurpose\": item.ActivityPurpose,\n \"ActivityPurposeDesc\": item.ActivityPurposeDesc,\n \"Activity_Outcome\": item.Activity_Outcome,\n \"Activity_OutcomeDesc\": item.Activity_OutcomeDesc\n }\n\n this.gridData.push(obj1);\n\n }\n\n\n });\n this.RowSpanData();\n }\n\n RowSpanData() {\n this.cacheSpan('EnquiryNo', d => d.EnquiryId);\n this.cacheSpan('EnquiryDate', d => d.EnquiryId);\n this.cacheSpan('EstimatedProductvalue', d => d.EnquiryId);\n this.cacheSpan('IndustrySegment', d => d.EnquiryId);\n this.cacheSpan('SubSegment', d => d.EnquiryId);\n this.cacheSpan('RegionName', d => d.EnquiryId);\n this.cacheSpan('CustomerClassification', d => d.EnquiryId);\n this.cacheSpan('QuotationNumber', d => d.EnquiryId);\n this.cacheSpan('CustomerName', d => d.EnquiryId);\n this.cacheSpan('EnquiryStatus', d => d.EnquiryId);\n this.cacheSpan('EnquiryWinLostOpenStatus', d => d.EnquiryId);\n this.cacheSpan('ActivityType', d => d.EnquiryId);\n this.cacheSpan('Activity_Subject', d => d.EnquiryId);\n this.cacheSpan('ActivityStatus', d => d.EnquiryId);\n this.cacheSpan('ActivityPurpose', d => d.EnquiryId);\n this.cacheSpan('ActivityPurposeDesc', d => d.EnquiryId);\n this.cacheSpan('Activity_Outcome', d => d.EnquiryId);\n this.cacheSpan('Activity_OutcomeDesc', d => d.EnquiryId);\n this.cacheSpan('InitiatorName', d => d.EnquiryId);\n this.cacheSpan('Action', d => d.EnquiryId);\n this.showLoader = false;\n }\n cacheSpan(key, accessor) {\n for (let i = 0; i < this.gridData.length;) {\n let currentValue = accessor(this.gridData[i]);\n let count = 1;\n\n for (let j = i + 1; j < this.gridData.length; j++) {\n if (currentValue != accessor(this.gridData[j])) {\n break;\n }\n\n count++;\n }\n\n if (!this.spans[i]) {\n this.spans[i] = {};\n }\n\n this.spans[i][key] = count;\n i += count;\n\n }\n }\n\n getRowSpan(col, index) {\n return this.spans[index] && this.spans[index][col];\n }\n\n\n /************************************************************************\n * Grid RowSpan Methods End \n * **********************************************************************/\n\n /************************************************************************\n * Grid filter\n * **********************************************************************/\n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.EnquiryngbDateToFiter = this.EnquiryngbDateFromFiter;\n this.cd.detectChanges();\n\n }\n //this.GetAllEnquiry();\n\n }\n\n OnToDateFilterChange() {\n\n // this.GetAllEnquiry();\n }\n\n ConvertNgbDateToDate(ngbdate: any) {\n if (ngbdate != null) {\n return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n\n }\n\n convertDateToString(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n OnQuotationValueFilterChange(CallFrom: any) {\n let QuotationValueFromFilter: number = +this.PaginationModel.QuotationValueFromFilter;\n let QuotationValueToFilter: number = +this.PaginationModel.QuotationValueToFilter;\n if (CallFrom == 'From') {\n if (QuotationValueFromFilter == null || isNaN(QuotationValueFromFilter)) {\n this.PaginationModel.QuotationValueFromFilter = null;\n }\n // if (QuotationValueToFilter < QuotationValueFromFilter) {\n // this.PaginationModel.QuotationValueToFilter = null;\n\n // }\n\n }\n else {\n if (QuotationValueToFilter == null || isNaN(QuotationValueToFilter)) {\n this.PaginationModel.QuotationValueToFilter = null;\n }\n // if (QuotationValueToFilter < QuotationValueFromFilter) {\n // this.PaginationModel.QuotationValueFromFilter = null;\n\n // }\n\n }\n this.cd.detectChanges();\n // this.GetAllEnquiry();\n\n }\n\n onDiscountChange(callType: any) {\n let DiscountFromFilter: number = +this.PaginationModel.DiscountFromFilter;\n let DiscounToFilter: number = +this.PaginationModel.DiscounToFilter;\n\n if (callType == 'From') {\n\n if (DiscountFromFilter > 100 || isNaN(DiscountFromFilter)) {\n this.PaginationModel.DiscountFromFilter = null;\n }\n // if ( DiscounToFilter < DiscountFromFilter) {\n // this.PaginationModel.DiscounToFilter = null;\n // }\n }\n else {\n if (DiscounToFilter > 100 || isNaN(DiscounToFilter)) {\n this.PaginationModel.DiscounToFilter = null;\n }\n // if (DiscounToFilter < DiscountFromFilter) {\n // this.PaginationModel.DiscountFromFilter = null;\n\n // }\n }\n this.cd.detectChanges();\n // this.GetAllEnquiry();\n }\n\n\n GetAllEnquiryGridFilterList() {\n this.commonService.GetData(\"Enquiry\", \"EnquiryGridFilterList\", null).subscribe((data: any) => {\n this.EnquiryGridFilterList.EstimatedEnquiryValue = data.EstimatedEnquiryValue;\n this.EnquiryGridFilterList.Segment = data.Segment;\n this.EnquiryGridFilterList.MicroSegment = data.MicroSegment;\n this.EnquiryGridFilterList.OrignaleMicroSegment = data.MicroSegment;\n this.EnquiryGridFilterList.CusomterName = data.CusomterName;\n this.EnquiryGridFilterList.CusomterClass = data.CusomterClass;\n this.EnquiryGridFilterList.ProductModels = data.ProductModels;\n this.EnquiryGridFilterList.Region = data.region;\n this.EnquiryGridFilterList.InitiatorName = data.InitiatorName;\n\n });\n\n }\n\n ResetAllFilters() {\n this.PaginationModel.EnquiryDateFromFiter = null;\n this.PaginationModel.EnquiryDateToFiter = null;\n this.PaginationModel.EstimatedEnquiryValueFilter = [];\n this.PaginationModel.SegmentFilter = [];\n this.PaginationModel.MicroSegmentFilter = [];\n this.PaginationModel.CusomterNameFilter = [];\n this.PaginationModel.CusomterClassFilter = [];\n this.PaginationModel.ProdcutFilter = [];\n this.PaginationModel.QuotationValueToFilter = null;\n this.PaginationModel.QuotationValueFromFilter = null;\n this.PaginationModel.DiscountFromFilter = null;\n this.PaginationModel.DiscounToFilter = null;\n this.PaginationModel.QuotationStatusFilter = [];\n this.PaginationModel.RegionFilter = [];\n this.PaginationModel.InitiatorNameFilter = [];\n this.EnquiryngbDateFromFiter = null;\n this.EnquiryngbDateToFiter = null;\n this.OnSegmentChangeGetMiCroSegment();\n this.GetAllEnquiry();\n\n }\n OnSegmentChangeGetMiCroSegment() {\n this.EnquiryGridFilterList.MicroSegment = [];\n if (this.PaginationModel.SegmentFilter != null && this.PaginationModel.SegmentFilter != undefined && this.PaginationModel.SegmentFilter.length > 0) {\n this.EnquiryGridFilterList.MicroSegment = this.EnquiryGridFilterList.OrignaleMicroSegment.filter((o) => this.PaginationModel.SegmentFilter.includes(o.Fk_Name));\n\n }\n else {\n this.EnquiryGridFilterList.MicroSegment = this.EnquiryGridFilterList.OrignaleMicroSegment;\n }\n\n\n }\n\n\n\n\n\n /************************Date Range*************************************** */\n\n onDateSelection(date: NgbDate) {\n if (!this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter) {\n this.EnquiryngbDateFromFiter = date;\n } else if (this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && date && date.after(this.EnquiryngbDateFromFiter)) {\n this.EnquiryngbDateToFiter = date;\n } else {\n this.EnquiryngbDateToFiter = null;\n this.EnquiryngbDateFromFiter = date;\n }\n }\n\n isHovered(date: NgbDate) {\n return this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && this.hoveredDate && date.after(this.EnquiryngbDateFromFiter) && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n return this.EnquiryngbDateToFiter && date.after(this.EnquiryngbDateFromFiter) && date.before(this.EnquiryngbDateToFiter);\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.EnquiryngbDateFromFiter) || (this.EnquiryngbDateToFiter && date.equals(this.EnquiryngbDateToFiter)) || this.isInside(date) || this.isHovered(date);\n }\n\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n\n\n\n\n /************************End Date Range*************************************** */\n\n /************************************************************************\n * Grid filter\n * **********************************************************************/\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n addEnquiryPopup(enqid, custid) {\n // this.router.navigate(['/Add-Activity/Enquiry/' + enqid]);\n\n const modalRef = this.modalService.open(AddActivityComponent, {\n size: 'xl', backdrop: 'static', keyboard: false\n });\n\n var ActivityEntity = {\n enqId: enqid,\n custId: custid,\n inPopUpMode: true,\n entityType: 'Enquiry',\n };\n\n modalRef.componentInstance.ActivityEntity = ActivityEntity;\n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Enquiry Listing - Pending\n

    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n expand_more\n \n \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n \n \n {{ date.day }}\n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n \n \n \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n
    \n\n \n
    \n\n
    \n\n \n\n\n\n \n\n
    \n \n
    \n 0 && PaginationModel.CusomterNameFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"Name\"\n placeholder=\"Select Customer\"\n [(ngModel)]=\"PaginationModel.CusomterNameFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.CusomterNameFilter != [])\"\n (click)=\"PaginationModel.CusomterNameFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.EstimatedEnquiryValueFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" [clearable]=\"false\"\n bindLabel=\"Name\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Estimated Enquiry Value\"\n [(ngModel)]=\"PaginationModel.EstimatedEnquiryValueFilter\">\n\n \n \n {{item.Name}}\n \n\n \n\n
    0 && PaginationModel.EstimatedEnquiryValueFilter != [])\"\n (click)=\"PaginationModel.EstimatedEnquiryValueFilter=[];\">\n \n \n \n
    \n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.InitiatorNameFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [clearable]=\"false\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Initiator\"\n [(ngModel)]=\"PaginationModel.InitiatorNameFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.InitiatorNameFilter != [])\"\n (click)=\"PaginationModel.InitiatorNameFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n\n
    \n\n
    \n
    \n \n
    \n 0 && PaginationModel.SegmentFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [clearable]=\"false\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Segment\"\n [(ngModel)]=\"PaginationModel.SegmentFilter\"\n (change)=\"OnSegmentChangeGetMiCroSegment()\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.SegmentFilter != [])\"\n (click)=\"PaginationModel.SegmentFilter=[];OnSegmentChangeGetMiCroSegment()\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.MicroSegmentFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" [clearable]=\"false\"\n bindLabel=\"Name\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Micro-Segment\"\n [(ngModel)]=\"PaginationModel.MicroSegmentFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.MicroSegmentFilter != [])\"\n (click)=\"PaginationModel.MicroSegmentFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.RegionFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"Name\"\n placeholder=\"Select Region\"\n [(ngModel)]=\"PaginationModel.RegionFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.RegionFilter != [])\"\n (click)=\"PaginationModel.RegionFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n 0 && PaginationModel.CusomterClassFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" [clearable]=\"false\"\n bindLabel=\"Name\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select Customer Classification\"\n [(ngModel)]=\"PaginationModel.CusomterClassFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.CusomterClassFilter != [])\"\n (click)=\"PaginationModel.CusomterClassFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n\n
    \n\n
    \n
    \n \n
    \n 0 && PaginationModel.ProdcutFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"Name\"\n placeholder=\"Select Product\"\n [(ngModel)]=\"PaginationModel.ProdcutFilter\">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.ProdcutFilter != [])\"\n (click)=\"PaginationModel.ProdcutFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n
    \n \n\n \n
    \n \n \n \n
    \n
    \n
    \n\n \n\n
    \n \n
    \n 0 && PaginationModel.QuotationStatusFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"item\"\n [selectableGroup]=\"true\" [selectableGroupAsModel]=\"false\"\n [closeOnSelect]=\"false\" [clearable]=\"false\" bindValue=\"item\"\n placeholder=\"Select Status\"\n [(ngModel)]=\"PaginationModel.QuotationStatusFilter\">\n\n \n \n {{item}}\n \n\n \n
    0 && PaginationModel.QuotationStatusFilter != [])\"\n (click)=\"PaginationModel.QuotationStatusFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n \n\n
    \n \n\n \n\n
    \n \n \n \n

    \n
    \n
    \n\n
    \n\n
    \n\n\n\n \n\n\n\n
    \n
    \n\n       \n\n\n \n
    \n\n\n\n\n
    \n\n
    \n\n\n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n\n \n \n \n \n\n \n \n \n \n\n \n\n\n \n \n \n \n\n \n \n\n
    Enquiry No. \n\n {{row.EnquiryNumber}}\n Enquiry Date\n {{row.EnquiryDate | date: \"dd-MMM-yyyy\"}} Customer\n Name/Code\n \n {{row.CustomerName}}
    {{row.CustomerCode}}
    Estimated Enquiry\n Value\n \n {{row.EstimatedProductvalue}} Segment\n \n {{row.IndustrySegment}} Micro - Segment\n \n {{row.SubSegment}} Region\n {{row.RegionName}} Customer Class.\n \n {{row.CustomerClassification}} Quotation No.\n \n \n {{row.QuotationNumber}}\n \n Products\n \n {{row.Products}}\n\n Quotation Amount (€)\n \n {{row.EnquiryValue==null?'':row.EnquiryValue| indianCurrency}}\n Discount (%)\n \n\n {{row.Discount}}\n\n Quotation Status\n \n {{row.EnquiryWinLostOpenStatus}} Activity Type\n \n {{row.ActivityType}} Activity Subject\n \n {{row.Activity_Subject}} Activity Status\n \n {{row.ActivityStatus}} Activity Purpose\n \n {{row.ActivityPurpose}} Purpose Desc\n \n \n Activity Outcome\n \n {{row.Activity_Outcome}} Outcome Desc\n \n \n CRM updates \n {{row.EnquiryStatus}} Initiator Name\n \n {{row.InitiatorName}} Action \n \n \n \n \n
    \n
    No records found
    \n
    \n\n \n \n
    \n\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from \"@angular/platform-browser\";\nimport { AppGlobals } from 'src/app/app.global';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-quotation-preview',\n templateUrl: './quotation-preview.component.html',\n styleUrls: ['./quotation-preview.component.scss']\n})\nexport class QuotationPreviewComponent implements OnInit {\n\n previewHtml:SafeHtml;\n quotationPdfPreviewUrl:SafeResourceUrl;\n @Input() enquiryObj;\n enqId: any;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private activeModal: NgbActiveModal,\n private commonService: CommonService,\n private route: ActivatedRoute,\n private sanitizer: DomSanitizer,\n private appConfigService: AppConfigService) { }\n\n ngOnInit(): void { \n this.enqId = this.enquiryObj.EnquiryId; \n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n // this.quotationPdfPreviewUrl = this.sanitizer.bypassSecurityTrustHtml(\"

    Please wait while we generate Quotation Preview...

    \");\n this.loadPreview();\n }\n\n loadPreview(){ \n let queryString = \"enquiryId=\" + this.enqId;\n this.quotationPdfPreviewUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.QuotationPdfGenerationHostPath+\"PrintPdf/GetQuotationPrintPreviewAsPdf?\"+queryString);\n \n // this.commonService.getPrintPreview(\"PrintPdf\", \"GetQuotationPrintPreviewAsHtml\", queryString).subscribe((data: any) => { \n // // console.log(data);\n // this.previewHtml = this.sanitizer.bypassSecurityTrustHtml(data);\n\n // },(error: any) =>{\n // // console.log(error);\n // });\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n\n}\n","\n\n\n\n\n\n\n\n","import { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EngagementReportServiceService } from 'src/app/Service/engagement-report-service.service';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { forkJoin, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { QuotationPreviewComponent } from '../quotation-preview/quotation-preview.component';\ndeclare var require: any\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n\n@Component({\n selector: 'app-quotation',\n templateUrl: './quotation.component.html',\n styleUrls: ['./quotation.component.scss']\n})\nexport class QuotationComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean =false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable:boolean=false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange:any;\n Discounttorange:any;\n isTermsConditionsDisabled : boolean;\n newCustomiseArr: any = [];\n Currencylist: any[] = [];\n filtercurrency:any[]=[];\n documentOfWhichComapany : any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n //enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n isStandardConditionForQuote : boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean=false;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n transitionRule:any;\n workflowActionList:any[] = [];\n enquiryStatusList: EnquiryStatusList[]=[];\n workflowId:number=4;\n @Output() updateLoaderEvent = new EventEmitter();\n isQuoteGenerationEditable:boolean = false;\n sendbackRules:EnquirySendBack[]=[];\n authorityLevels: any;\n maxDiscount:number=0;\n level1: boolean;\n UserRolesData: any;\n showWorkflowButtonsForAuthorities: boolean=false;\n roleOfAdmin : any;\n showPreviewLink: boolean=false;\n showquotationPreview: boolean = true;\n isPricesRequestedBeforeSubmit: boolean;\n IsQuotationPriceOnRequest: any;\n isPriceOnRequestValid: boolean;\n WinLossDataForStatus: any;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,private http: HttpClient,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private workflowService:EngagementReportServiceService,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n }\n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);\n }, 2000);\n //this.stepper.selectedIndex = this.selectedIndexForStatus; \n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n this.isEnquiryLoaded = false;\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.documentOfWhichComapany = appConfig.documentOfWhichComapany;\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.GetListOfCurrency();\n forkJoin([\n this.getUserRoles(),\n this.getRFQProduct(),\n this.getEnquirySourceDetails(),\n this.getCustomerList(),\n this.getEnquiryStatus(),\n this.getWorkflowActions()\n ]).pipe(tap(res => { \n // this.getPriceDiscountApprovalAuthority();\n // this.getWorkflowActions();\n\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined; \n this.getEnquiryDetailsById(); \n\n var functonDetails = this.workflowActionList.filter(x=>x.workflowActionCode.toLowerCase() == \"editrfq\");\n \n if(this.UserRole != UserRoles.Admin && this.UserRole != UserRoles.CustomerService)\n {\n this.isTermsConditionsDisabled = true; \n }\n else\n {\n if (functonDetails.length == 0)\n {\n this.isTermsConditionsDisabled = true;\n }\n }\n })).subscribe(x=>{\n this.updateLoaderEvent.emit(false);\n });\n this.getSendbackWorkfow();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n\n this.roleOfAdmin = UserRoles.Admin;\n }\n\n \n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n\n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n editActivity() {\n this.isEditactivity = true;\n }\n cancelEditActivity() {\n this.isEditactivity = false;\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.updateLoaderEvent.emit(true);\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryObj.EnquiryDetails.EnquiryId;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n //this.isEditactivity = false;\n this.toastr.success(\"Activity details added successfully!\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getQuotationData() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n this.QuotationDataForPO = data.QuotationObj;\n this.QuotationDataForPO.forEach(element => {\n var obj = new ProductModelPOValues();\n obj.ProductId = element.ProductId;\n obj.ProductModelName = element.ProductModelName;\n if (element.Variant1Name != undefined) obj.ProductModelName = obj.ProductModelName + ' (' + element.Variant1Name;\n if (element.Variant2Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant2Name;\n if (element.Variant3Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant3Name;\n if (element.Variant4Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant4Name;\n obj.ProductModelName = obj.ProductModelName + ')'\n obj.QUotationValue = element.FinalAmount;\n obj.ProductModelPOValue = \"\";\n this.EnquiryObj.POValues.push(obj);\n });\n });\n }\n\n getEnquiryDetailsById() {\n \n this.updateLoaderEvent.emit(true);\n \n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails?.EnquiryId;\n \n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n\n if(data.POValues.length==0)\n {\n this.showquotationPreview=false;\n \n }\n else\n {\n this.showquotationPreview=true;\n }\n if (this.EnquiryObj.EnquiryDetails?.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails?.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails?.QuotationNumber, this.EnquiryObj.EnquiryDetails?.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails?.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails?.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails?.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails?.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails?.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails?.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails?.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails?.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails?.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails?.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n //if there are no existing Standard T&C assigned for Enquiry\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = [...this.TnCStandardFromDropDown];\n } else {\n //if already assigned some T&C then use those\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n }\n\n this.isStandardCondition = true;\n this.isStandardConditionForQuote = true;\n }else if (data.EnquiryDetails.RFQTermsAndCondition == \"Non-Standard\") {\n\n //if there are no existing Custom Standard T&C assigned for Enquiry\n if (data.CustomTermsAndConditions.length == 0) { \n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Non-Standard\";\n this.EnquiryObj.CustomTermsAndConditions = [...this.TnCCustomizedFromDropDown];\n this.TnCCustomizedDropDownForEditRfq1 = [...this.TnCCustomizedFromDropDown];\n } else {\n this.EnquiryObj.CustomTermsAndConditions = [...data.CustomTermsAndConditions];\n this.TnCCustomizedDropDownForEditRfq2 = [...data.CustomTermsAndConditions];\n }\n\n this.isStandardCondition = false;\n this.isStandardConditionForQuote = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n // this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n if(this.EnquiryObj.EnquiryDetails.segment!=undefined)\n {\n this.SubSegment = this.FinalSubSegment.filter(x=>x.SegmentId==this.EnquiryObj.EnquiryDetails.segment);\n this.Application= this.FinalApplication.filter(x=>x.SubSegmentId==this.EnquiryObj.EnquiryDetails.subSegment);\n }\n \n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC=data.EnquiryDetails.IsFetchFromKYC;\n\n if (!(this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == null ||\n this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == undefined ||\n this.EnquiryObj.EnquiryDetails.QuotationPdf_filename == \"\")) {\n this.showQuotationLink = true;\n } else {\n this.showQuotationLink = false;\n \n }\n \n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n // replaceAll(str, term, replacement) {\n // return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);\n // }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);\n let tracker = this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null);\n\n tracker.subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment; \n this.SubSegment = [];\n this.Application= []; \n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication= data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n // this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n \n this.newCustomiseArr = this.EnquiryObj.CustomTermsAndConditions\n this.newCustomiseArr[index].CustTCId = CustTcObj.CustTCId;\n this.newCustomiseArr[index].CustValue = CustTcObj.CustValue;\n // this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n }\n OnQuantityChange(index) {\n if (this.EnquiryObj.RFQObject[index].Quantity < 1) {\n //alert('Quantity cannot be 0 or negative.');\n this.toastr.info('Quantity cannot be 0 or negative.');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n } else if (this.EnquiryObj.RFQObject[index].Quantity % 1 != 0) {\n // alert('Please enter the valid Quantity');\n this.toastr.info('Please enter the valid Quantity');\n\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n }\n this.EnquiryObj.RFQObject[index].QuantityValidation = false;\n }\n OnMDSOptionChange(index) {\n this.EnquiryObj.RFQObject[index].MDSOptionValidation = false;\n }\n OnSalesPriceChange(index) {\n\n this.EnquiryObj.RFQObject[index].SalesPriceValidation = false;\n\n // have to specify the id for Customer Special Discount /Contract Frame Agrrement \n\n if( this.EnquiryObj.RFQObject[index].SalesPrice==4)\n {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnqCustomerDetails.CustomerId;\n this.commonService.GetData(\"CustomerSpecialDiscount\", \"GetById\", queryString).subscribe((data: any) => {\n this.EnquiryObj.CustomerSpecialDiscountdtls = data;\n if(this.EnquiryObj.CustomerSpecialDiscountdtls?.length==0)\n { \n this.toastr.info('Customer Special Discount is not assigned to this Customer');\n this.EnquiryObj.RFQObject[index].SalesDiscount=\"0\";\n this.iseditable=false;\n \n }\n this.EnquiryObj.CustomerSpecialDiscountdtls.forEach(element => {\n if(element.Fk_ProductModel==this.EnquiryObj.RFQObject[index].ProductModel)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount=element.ProductDiscount.toString();\n \n this.iseditable=false\n }\n });\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader=false;\n \n }\n\n if(this.EnquiryObj.RFQObject[index].SalesPrice!=4)\n {\n //this.getSalespricediscount(this.EnquiryObj.RFQObject[index].SalesPrice);\n\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.RFQObject[index].SalesPrice;\n this.commonService.GetData(\"SalesPrice\", \"GetById\", queryString).subscribe((data: any) => {\n \n this.EnquiryObj.RFQObject[index].SalesDiscount = data.DiscountFrom +\"-\"+ data.DiscountTo;\n this.DiscountFromrange=data.DiscountFrom;\n this.Discounttorange=data.DiscountTo;\n this.iseditable=true;\n this.toastr.info(\"Enter the Sales Price in Range \"+this.EnquiryObj.RFQObject[index].SalesDiscount);\n\n if(parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount)==0-0)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount = \"0\";\n return;\n }\n }, error => {\n this.toastr.error(\"Failed to load data\");\n\n });\n this.updateLoaderEvent.emit(false);\n \n }\n\n }\n OnSalesDiscountChange(index) {\n if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) < 0) {\n //this.toastr.info('Sales Discount cannot be negative.');\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }\n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) > 100) {\n //this.toastr.info('Discount cannot be greater than 100.');\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }//10<23 && 23<20 10<18<20\n else if(!(this.DiscountFromrange<=this.EnquiryObj.RFQObject[index].SalesDiscount && this.EnquiryObj.RFQObject[index].SalesDiscount<=this.Discounttorange))\n {\n this.toastr.info('Discount must be in range from'+' '+this.DiscountFromrange+' '+'to'+' '+this.Discounttorange);\n return\n }\n \n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) % 1 != 0) {\n if (this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[1].length > 2 || this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[0].length > 2) {\n this.toastr.info(\"Only two numbers are allowed after decimal point\")\n // this.EnquiryObj.RFQObject[index].SalesDiscount = Math.round((this.EnquiryObj.RFQObject[index].SalesDiscount + Number.EPSILON) * 100) / 100;\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n }\n }\n this.EnquiryObj.RFQObject[index].SalesDiscountValidation = false;\n }\n\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n\n\n deleteAttachDocumentFromDB(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"MDS\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].MDS_filepath);\n this.EnquiryObj.RFQObject[index].MDS_filename = null;\n this.EnquiryObj.RFQObject[index].MDS_filepath = null;\n break;\n case \"ITC\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"ITC\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].ITC_filepath);\n this.EnquiryObj.RFQObject[index].deleted_ITC_filename = this.EnquiryObj.RFQObject[index].ITC_filename;\n this.EnquiryObj.RFQObject[index].deleted_ITC_filepath = this.EnquiryObj.RFQObject[index].ITC_filepath;\n this.EnquiryObj.RFQObject[index].ITC_filename = null;\n this.EnquiryObj.RFQObject[index].ITC_filepath = null;\n\n break;\n case \"Customer\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Customer\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Customer_filepath);\n this.EnquiryObj.RFQObject[index].Customer_filename = null;\n this.EnquiryObj.RFQObject[index].Customer_filepath = null;\n break;\n case \"Weiss\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Weiss\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Weiss_filepath);\n this.EnquiryObj.RFQObject[index].Weiss_filename = null;\n this.EnquiryObj.RFQObject[index].Weiss_filepath = null;\n break;\n }\n\n }\n\n deleteActivityDetails(index) {\n if (index != null) {\n this.activityDetails.splice(index, 1);\n }\n }\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n obj.ISNewActivityAdded = true;\n this.activityDetails.push(obj);\n }\n }\n\n getCustomerList() {\n\n this.updateLoaderEvent.emit(true);\n\n let tracker = this.commonService.GetData(\"Customer\", \"GetAll\", null);\n tracker.subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n getEnquirySourceDetails() {\n\n this.updateLoaderEvent.emit(true);\n\n let tracker = this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null);\n tracker.subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n getProductDetails() {\n\n this.updateLoaderEvent.emit(true);\n\n let tracker = this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null);\n\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n // this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AddRFQDetails(index) {\n if (this.EnquiryObj.RFQObject[index].ProductLine != undefined && this.EnquiryObj.RFQObject[index].ProductModel != undefined &&\n this.EnquiryObj.RFQObject[index].Quantity != undefined) {\n\n this.EnquiryObj.RFQObject[index].IsRowDeleted = true;\n\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n openQuotationPopup() {\n const frmData = new FormData();\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n this.updateLoaderEvent.emit(true);\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n this.commonService.PostData(\"Enquiry\", \"AddBOM\", frmData, null).subscribe((data: any) => {\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n const modalRef = this.modalService.open(EnquiryModalComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n modalRef.componentInstance.enquiObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n }\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n\n deleteRFQDetails(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.EnquiryObj.RFQObject.splice(index, 1);\n } else {\n this.EnquiryObj.RFQObject.pop();\n }\n }\n });\n }\n\n setTermsAndConditions() {\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true; \n this.EnquiryObj.TermsAndConditions = [...this.TnCStandardFromDropDown]; \n this.EnquiryObj.TermsAndConditions.forEach(element => { \n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0]; \n element.TnCValue = tnc?.Value; \n });\n } else { \n this.isStandardCondition = false; \n this.EnquiryObj.CustomTermsAndConditions = [...this.TnCCustomizedFromDropDown];\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n });\n \n }\n }\n\n setTermsAndConditionsEditRfq() {\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true;\n this.isStandardConditionForQuote = true;\n //this.EnquiryObj.TnCObject = this.demoObject; \n this.EnquiryObj.TermsAndConditions = [...this.TnCStandardFromDropDown];\n\n this.EnquiryObj.TermsAndConditions.forEach(element => {\n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0];\n element.TnCValue = tnc?.Value;\n \n });\n } \n else {\n this.isStandardCondition = false;\n this.isStandardConditionForQuote = false;\n\n //if there is no custom t&c yet selected then load default custom T&C\n if (this.EnquiryObj.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.CustomTermsAndConditions = [...this.TnCCustomizedFromDropDown];\n\n } else if (this.TnCCustomizedDropDownForEditRfq2.length > 0) {\n this.EnquiryObj.CustomTermsAndConditions = [...this.TnCCustomizedDropDownForEditRfq2];\n }\n\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n\n });\n }\n }\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n\n SetStatus(rule, myform: any) { \n this.updateLoaderEvent.emit(true);\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status; \n\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId; \n this.AddEnquiry();\n\n if (rule[0].workflowNextStatusId == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id) {\n this.isAcceptClick = true;\n } else {\n if (this.isQuoteGenerationEditable && this.isQuoteGenerationVisible) {\n if (!(this.EnquiryObj.EnquiryDetails.Comments == '.' \n || this.EnquiryObj.EnquiryDetails.Comments == undefined \n || this.EnquiryObj.EnquiryDetails.Comments == null \n || this.EnquiryObj.EnquiryDetails.Comments.trim() == \"\")) \n {\n this.myform3.controls['quotecomments'].setValue(this.EnquiryObj.EnquiryDetails.Comments);\n } else {\n if (this.isAcceptClick) {\n this.myform3.controls['quotecomments'].setValue(null);\n }\n }\n }\n } \n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbySalesEngg')[0]?.Pk_Id\n ) {\n \n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n this.updateLoaderEvent.emit(false);\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard')\n {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n this.updateLoaderEvent.emit(false);\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions=null;\n }\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Non-Standard')\n {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n this.updateLoaderEvent.emit(false);\n return;\n } \n this.EnquiryObj.TermsAndConditions=null;\n } \n \n \n }\n // Dont proceed if the BOM attachment is not present\n // if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id \n // || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0]?.Pk_Id \n // || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQsentbyL1toL2')[0]?.Pk_Id) {\n // if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n // (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n // this.toastr.info('BOM attachment is required.');\n // this.updateLoaderEvent.emit(false);\n // return;\n // }\n // }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length==0)) {\n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n \n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id\n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n this.updateLoaderEvent.emit(false);\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n // var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to proceed?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Non-Standard\") {\n this.EnquiryObj.TermsAndConditions = null;\n \n this.EnquiryObj.CustomTermsAndConditions = this.newCustomiseArr;\n \n }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n \n \n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data; \n this.toastr.success(\"Quotation updated successfully\"); \n\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n }, error => {\n this.toastr.error(\"Failed to update quotation\");\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n this.updateLoaderEvent.emit(false);\n\n }\n });\n\n }\n\n editRFQ() {\n if (this.showQuotationLink) {\n this.toastr.info('Please note that editing the RFQ will reset the quotation.');\n }\n this.EnquiryObj.RFQObject.forEach(element => {\n element.deleted_MDS_filename = element.MDS_filename;\n element.deleted_MDS_filepath = element.MDS_filepath;\n\n element.deleted_ITC_filename = element.ITC_filename;\n element.deleted_ITC_filepath = element.ITC_filepath;\n\n element.deleted_Customer_filename = element.Customer_filename;\n element.deleted_Customer_filepath = element.Customer_filepath;\n\n element.deleted_Weiss_filename = element.Weiss_filename;\n element.deleted_Weiss_filepath = element.Weiss_filepath;\n });\n this.QGRFQEditable = true;\n }\n cancelEditingRFQ() {\n\n window.location.reload();\n this.QGRFQEditable = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n element.MDSAttachment = [];\n element.ITCAttachment = [];\n element.CustomerAttachment = [];\n element.WeissAttachment = [];\n element.isMDSAttachment = false;\n element.isITCAttachment = false;\n element.isCustomerAttachment = false;\n element.isWeissAttachment = false;\n element.MDS_filename = element.deleted_MDS_filename;\n element.MDS_filepath = element.deleted_MDS_filepath;\n\n element.ITC_filename = element.deleted_ITC_filename;\n element.ITC_filepath = element.deleted_ITC_filepath;\n\n element.Customer_filename = element.deleted_Customer_filename;\n element.Customer_filepath = element.deleted_Customer_filepath;\n\n element.Weiss_filename = element.deleted_Weiss_filename;\n element.Weiss_filepath = element.deleted_Weiss_filepath;\n });\n }\n\n onActivityChange(i) {\n if (this.activityDetails[i].Activity == undefined || this.activityDetails[i].Activity == null || this.activityDetails[i].Activity == \"\") {\n this.activityDetails[i].ActivityValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityValidation = false;\n }\n }\n onActivityDateChange(i) {\n if (this.activityDetails[i].ActivityDate == undefined || this.activityDetails[i].ActivityDate == null || this.activityDetails[i].ActivityDate == \"\") {\n this.activityDetails[i].ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n } else {\n this.activityDetails[i].ActivityDateValidation = false;\n }\n }\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath+ 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n \n\n\n openTechnicalDiscardPopup(technicalDiscardStatus) {\n const modalRef = this.modalService.open(TechnicalDiscardComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatus: technicalDiscardStatus\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n \n\n openTechnicalDiscardPopupByWorkflow(enquiryStatusId:any) {\n const modalRef = this.modalService.open(TechnicalDiscardComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n // EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n // EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n // IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n // TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n // CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId,\n EnquiryStatusId: enquiryStatusId\n \n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n \n onIndustrySegmentSelect(value)\n {\n if(value!=null)\n {\n this.SubSegment=this.FinalSubSegment.filter(x=>x.SegmentId==value); \n this.Application=[];\n this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n } \n onSubSegmentSelect(value)\n {\n if(value!=null)\n {\n this.Application=this.FinalApplication.filter(x=>x.SubSegmentId==value); \n }\n }\n \n \n \n openCloseOppReasonPopup() {\n const modalRef = this.modalService.open(CloseOppReasonComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n // EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n // EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n // IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n // TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n // CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n // PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n \n getWorkflowActions(){\n\n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId +\"&workflowId=\" + this.workflowId ;\n let tracker = this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetTransitionRulesByStatus\",queryString);\n\n tracker.subscribe((data: any) => {\n if(data!=null)\n { \n this.workflowActionList=data; \n if(this.workflowActionList.length>0)\n {\n this.isQuoteGenerationEditable=true;\n }\n //this.checkApprovalNeededOrNot(); \n this.checkPriceOnRequestCostsAndUnits();\n if (!this.isPricesRequestedBeforeSubmit) {\n this.workflowActionList=this.workflowActionList.filter(x=>x.workflowActionCode.toLowerCase()!=\"sendforapproval\");\n } \n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n getEnquiryStatus()\n {\n let tracker = this.commonService.GetData(\"Enquiry\",\"GetEnquiryStatus\", null)\n tracker.subscribe((data: any) => {\n this.enquiryStatusList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n return tracker;\n }\n\n OnWorkflowAction(myform3:NgForm,workflowActionId:number)\n { \n var rule= this.workflowActionList.filter(x=>x.workflowActionId==workflowActionId);\n var technicalDiscardRule= this.workflowActionList.filter(x=>x.workflowActionCode==\"TechncialDiscard\"); \n var generateQuote= this.workflowActionList.filter(x=>x.workflowActionCode==\"GenerateQuote\"); \n\n if(technicalDiscardRule.length>0 && rule[0].workflowActionId == technicalDiscardRule[0].workflowActionId){\n this.openTechnicalDiscardPopupByWorkflow(technicalDiscardRule[0].workflowNextStatusId);\n }\n else if(generateQuote.length>0 && rule[0].workflowActionId == generateQuote[0].workflowActionId)\n {\n this.openQuotationPopup();\n }\n else{\n myform3.control.markAllAsTouched();\n if(myform3.invalid)\n {\n this.toastr.error(\"Please fill required information\");\n return;\n } \n this.SetStatus(rule,myform3); \n } \n }\n\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack()\n { \n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n this.rule=quotationRule[0];\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n\n }\n \n// getPriceDiscountApprovalAuthority()\n// {\n// let queryString = \"\";\n\n// queryString = \"enquiryId=\"+this.EnquiryObj?.EnquiryDetails?.EnquiryId;\n\n// let tracker = this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"getPriceDiscountApprovalAuthority\", queryString);\n\n// this.updateLoaderEvent.emit(true);\n\n// tracker.subscribe((data: any) => {\n// this.authorityLevels = data; \n// //this.getWorkflowActions();\n// this.updateLoaderEvent.emit(false);\n// }, error => {\n// this.updateLoaderEvent.emit(false);\n// });\n\n// return tracker;\n// }\n getUserRoles(){\n\n let tracker = this.commonService.GetData(\"Account\", \"GetAll\", null);\n\n tracker.subscribe((data: any) => {\n this.UserRolesData = data;\n \n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n checkApprovalNeededOrNot()\n { \n if(this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition.toLowerCase()==\"standard\")\n {\n this.workflowActionList=this.workflowActionList.filter(x=>x.workflowActionCode.toLowerCase()!='sendforapproval');\n }\n }\n \n OpenPreview()\n { \n const modalRef = this.modalService.open(QuotationPreviewComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n }); \n var enquiryObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId \n } \n modalRef.componentInstance.enquiryObj = enquiryObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`; \n }); \n }\n checkPriceOnRequestCostsAndUnits() {\n this.isPricesRequestedBeforeSubmit = true;\n \n this.QuotationData.QuotationObj.forEach(element => {\n // {\n ele.Option_Discount = element.Option_Discount;\n ele.Option_FinalDiscount = element.Option_FinalDiscount;\n });\n });\n\n }\n\n getQuotationDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n\n this.QuotationData.QuotationInfo = data.QuotationInfo;\n this.QuotationData.QuotationObj = data.QuotationObj;\n this.checkifPORPresent();\n if(!this.isPriceOnRequestValid)\n {\n // console.log(\"Price on request applicable\");\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.toastr.error(\"Failed to load data.\");\n this.updateLoaderEvent.emit(false);\n });\n }\n checkifPORPresent() {\n this.isPriceOnRequestValid = false;\n this.QuotationData.QuotationObj.forEach(element => {\n if (element.IsPriceOnRequest_Variant1) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Variant2) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Variant3) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Variant4) {\n this.isPriceOnRequestValid = true;\n }\n if (element.IsPriceOnRequest_Option) {\n this.isPriceOnRequestValid = true;\n }\n\n });\n }\n\n GetListOfCurrency()\n{\n this.commonService.GetData(\"Currency\", \"GetAll\", null).subscribe((data: any) => {\n this.Currencylist = data; \n });\n}\n\nonCurrencyselection(data:any)\n{\n var Id=this.singleFieldObj.Id;\n \n //this.generatePDF(Id);\n \n}\ngeneratePDF() {\n this.showLoader=true;\n let queryString = \"\";\n let url:string = this.QuotationPdfGenerationHostPath + \"PrintPdf/DownloadPdfInCurrency?EnquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId + \"¤cyId=\" + this.singleFieldObj.Id;\n queryString = \"Url=\" + url;\n \n this.commonService.GetPdfInCurrency('Enquiry', 'GeneratePdfInCurrency', queryString).subscribe(\n // Create a Blob from the response data\n (data: Blob) => {\n const blob = new Blob([data], { type: 'application/pdf' });\n const url = window.URL.createObjectURL(blob);\n window.open(url);\n },\n error => {\n console.error('Error downloading file', error);\n });\n \n}\n\n\n}","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Quote Generation\n

    \n\n\n
    \n
    \n\n
    \n\n   \n\n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n\n
    \n \n \n \n \n Product Line\n \n \n Product Model\n \n \n Quantity\n \n \n MDS Option\n \n \n Attachment\n \n \n Sales Price\n \n \n Sales Discount\n \n\n\n \n \n \n MDS\n \n \n ITC\n \n \n Customer\n \n \n \n {{documentOfWhichComapany}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n\n
    \n {{(field.MDSAttachment\n != undefined &&\n field.MDSAttachment[0]\n != undefined) ?\n field.MDSAttachment[0].name:\n \"\"}}\n
    \n
    \n \n {{field.MDS_filename}}\n
    \n
    \n \n \n
    \n \n \n
    \n\n
    \n {{(field.ITCAttachment\n != undefined &&\n field.ITCAttachment[0]\n != undefined) ?\n field.ITCAttachment[0].name:\n \"\"}}\n
    \n
    \n \n {{field.ITC_filename}}\n
    \n
    \n \n \n
    \n \n \n
    \n\n
    \n {{(field.CustomerAttachment\n != undefined &&\n field.CustomerAttachment[0]\n != undefined) ?\n field.CustomerAttachment[0].name:\n \"\"}}\n
    \n
    \n \n {{field.Customer_filename}}\n
    \n
    \n\n\n \n \n
    \n \n \n
    \n\n
    \n {{(field.WeissAttachment\n != undefined &&\n field.WeissAttachment[0]\n != undefined) ?\n field.WeissAttachment[0].name:\n \"\"}}\n
    \n
    \n \n {{field.Weiss_filename}}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n\n
    \n\n
    \n\n
    \n
    \n\n\n \n \n \n
    \n\n
    \n\n \n
    \n
    \n \n \n
    \n {{AppGlobals.supportedFileFormatsForOtherAttachments}}\n
    \n
    \n {{(EnquiryObj.EnquiryDetails.BOMAttachment\n != undefined &&\n EnquiryObj.EnquiryDetails.BOMAttachment[0]\n != undefined) ?\n EnquiryObj.EnquiryDetails.BOMAttachment[0].name:\n \"\"}}  \n
    \n
    \n \n
    \n
    \n \n
    0\">\n \n
    \n
    \n\n
    \n \n \n \n \n \n
    \n \n
    \n \n\n \n \n
    \n \n \n
    \n \n
    \n
      \n
    • \n \n \n
    • \n
    \n
    \n
    \n\n
    \n\n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n Upload\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n 0\">\n
      \n \n
    • \n {{item.name}}  \n
    • \n \n
    \n\n \n
    \n
    \n\n
    \n \n Terms and Condition Details\n
    \n\n
    \n\n \n
    \n \n
    \n
    \n Terms & conditions is\n required\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n

    \n
    \n
    \n \n
    \n\n
    \n \n \n \n\n
    \n
    \n Non standard value is required\n
    \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n \n  \n \n \n \n
    \n
    \n \n \n \n\n \n \n \n ","import { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, Output, EventEmitter ,ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { forkJoin } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n@Component({\n selector: 'app-rfq',\n templateUrl: './rfq.component.html',\n styleUrls: ['./rfq.component.scss']\n})\nexport class RfqComponent implements OnInit {\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean =false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable:boolean=false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange:any;\n Discounttorange:any;\n maxCharLimit: any = 50;\n remCharLimit: any = 50;\n maxappdescLimit: any = 1500;\n remappdescLimit: any = 1500;\n newCustomiseArr: any = [];\n\n @Input()\n //showLoader: boolean = false;\n charCode: number;\n //enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n custtermscond: any = [];\n transitionRule:any;\n workflowActionList:any[] = [];\n enquiryStatusList: EnquiryStatusList[]=[];\n workflowId:number=3;\n @Output() updateLoaderEvent = new EventEmitter();\n isRFQEditable: boolean;\n roleOfAdmin : any;\n sendbackRules:EnquirySendBack[]=[];\n WinLossDataForStatus: any;\n mailIdFormat : any;\n documentOfWhichComapany : any;\n QuotationPdfGenerationHostPath:any;\n\n constructor(\n private toastr: ToastrService,\n private commonService: CommonService, \n public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, \n private activeModel: NgbActiveModal,\n private router: Router, \n private route: ActivatedRoute, \n private cd: ChangeDetectorRef,\n private titleService: Title,\n private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n }\n \n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);\n }, 2000); \n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n this.documentOfWhichComapany = appConfig.documentOfWhichComapany;\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n this.getEnquiryDetailsById();\n this.getEnquiryStatus();\n this.getWorkflowActions();\n this.getSendbackWorkfow();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.roleOfAdmin = UserRoles.Admin;\n this.isEnquiryLoaded = false;\n }\n\n\n \n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n ScreenAccessSpecifier(role, enquirystatus) {\n //MAKE SCREENS VISIBLE ACCORDING TO LOGGED IN USER\n this.isEnquiryFormVisible = true;\n this.isRFQVisible = true;\n this.userid = localStorage.getItem(\"UserID\");\n\n //ADD CONDITION TO CHECK IF THE LOGGED IN USER IS INITIATOR OF THE ENQUIRY\n // SCREENS OPRN IN EDITABLE MODE TO INITIATOR OF THE ENQUIRY AND ADMIN\n this.isRFQEditable= false;\n if ((enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id \n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='RFQReworkbyL1')[0]?.Pk_Id//OrderRejectedbyMngmt_SalesDirector\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRejectedbyMngmt_SalesDirector')[0]?.Pk_Id \n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRejectedbyMngmt_CEO')[0]?.Pk_Id \n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryCloseRejectedBySalesDirector')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='EnquiryCloseRejectedByCS')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='OrderRejectedbyMngmt_SalesDirector')[0]?.Pk_Id\n || enquirystatus == this.enquiryStatusList.filter(x=>x.Status=='OrderRejectedbyMngmt_CEO')[0]?.Pk_Id) \n && \n ( this.userid == this.EnquiryObj.EnquiryDetails.Initiator_Id ||role == UserRoles.Admin || role==UserRoles.SalesEngineer)) \n { \n this.isRFQEditable = true;\n } else \n {\n this.isRFQEditable = false;\n }\n }\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n\n editActivity() {\n this.isEditactivity = true;\n }\n \n getQuotationData() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n this.QuotationDataForPO = data.QuotationObj;\n this.QuotationDataForPO.forEach(element => {\n var obj = new ProductModelPOValues();\n obj.ProductId = element.ProductId;\n obj.ProductModelName = element.ProductModelName;\n if (element.Variant1Name != undefined) obj.ProductModelName = obj.ProductModelName + ' (' + element.Variant1Name;\n if (element.Variant2Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant2Name;\n if (element.Variant3Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant3Name;\n if (element.Variant4Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant4Name;\n obj.ProductModelName = obj.ProductModelName + ')'\n obj.QUotationValue = element.FinalAmount;\n obj.ProductModelPOValue = \"\";\n this.EnquiryObj.POValues.push(obj);\n });\n });\n }\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails; \n this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n this.remCharLimit = this.maxCharLimit - data.EnquiryDetails.EndCustomer?.length;\n this.remappdescLimit = this.maxappdescLimit - data.EnquiryDetails.ApplicationDescription?.length;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\" || data.EnquiryDetails.RFQTermsAndCondition == null) {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } \n else if (data.EnquiryDetails.RFQTermsAndCondition == \"Non-Standard\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Non-Standard\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.QGRFQEditable=true;\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n \n if(this.EnquiryObj.EnquiryDetails.segment!=undefined)\n {\n this.onIndustrySegmentSelect(this.EnquiryObj.EnquiryDetails.segment);\n this.onSubSegmentSelect(this.EnquiryObj.EnquiryDetails.subSegment);\n }\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = data.EnquiryDetails.IsFetchFromKYC;\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n \n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment; \n this.SubSegment = [];\n this.Application= []; \n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication= data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n \n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n \n //this.updateLoaderEvent.emit(false);\n });\n }\n \n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id; \n\n this.newCustomiseArr = this.EnquiryObj.CustomTermsAndConditions\n this.newCustomiseArr[index].CustTCId = CustTcObj.CustTCId;\n this.newCustomiseArr[index].CustValue = CustTcObj.CustValue;\n //this.custtermscond.push(CustTcObj)\n \n }\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnqCustomerDetails.CustomerId;\n this.commonService.GetData(\"CustomerSpecialDiscount\", \"GetById\", queryString).subscribe((data: any) => {\n this.EnquiryObj.CustomerSpecialDiscountdtls = data;\n \n \n var test=data.filter(x=>x.Fk_ProductModel==this.EnquiryObj.RFQObject[index].ProductModel);\n if(test.length >0)\n {\n if(test[0].ProductDiscount>=0)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount=test[0].ProductDiscount.toString();\n this.EnquiryObj.RFQObject[index].SalesPrice = this.productDrpdnDetails.SalesPrice.filter(x=>x.Name=='Customer Frame Agreement')[0].Id;\n \n this.iseditable=false\n }\n else\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount=null;\n this.EnquiryObj.RFQObject[index].SalesPrice=undefined;\n this.iseditable=true;\n }\n }\n else\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount=null;\n this.EnquiryObj.RFQObject[index].SalesPrice=undefined;\n this.iseditable=true;\n }\n \n });\n\n }\n OnQuantityChange(index) {\n if (this.EnquiryObj.RFQObject[index].Quantity < 1) {\n alert('Quantity cannot be 0 or negative.');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n } else if (this.EnquiryObj.RFQObject[index].Quantity % 1 != 0) {\n alert('Please enter the valid Quantity');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n }\n this.EnquiryObj.RFQObject[index].QuantityValidation = false;\n }\n OnMDSOptionChange(index) {\n this.EnquiryObj.RFQObject[index].MDSOptionValidation = false;\n }\n OnSalesPriceChange(index) {\n this.EnquiryObj.RFQObject[index].SalesPriceValidation = false;\n\n // have to specify the id for Customer Special Discount /Contract Frame Agrrement\n if(this.productDrpdnDetails.SalesPrice.filter(x=>x.Name=='Customer Frame Agreement').length>0)\n {\n if( this.EnquiryObj.RFQObject[index].SalesPrice==this.productDrpdnDetails.SalesPrice.filter(x=>x.Name=='Customer Frame Agreement')[0].Id)\n {\n this.EnquiryObj.RFQObject[index].SalesPrice=undefined;\n this.cd.detectChanges();\n }\n else\n {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.RFQObject[index].SalesPrice;\n this.commonService.GetData(\"SalesPrice\", \"GetById\", queryString).subscribe((data: any) => {\n\n this.EnquiryObj.RFQObject[index].DiscountFromrange=data.DiscountFrom;\n this.EnquiryObj.RFQObject[index].Discounttorange=data.DiscountTo;\n this.iseditable=true;\n alert('Discount must be in range from'+' '+this.EnquiryObj.RFQObject[index].DiscountFromrange+' '+'to'+' '+this.EnquiryObj.RFQObject[index].Discounttorange);\n\n if(parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount)==0-0)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount = \"0\";\n return;\n }\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n }\n\n this.updateLoaderEvent.emit(false);\n }\n else\n {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.RFQObject[index].SalesPrice;\n this.commonService.GetData(\"SalesPrice\", \"GetById\", queryString).subscribe((data: any) => {\n\n this.EnquiryObj.RFQObject[index].DiscountFromrange=data.DiscountFrom;\n this.EnquiryObj.RFQObject[index].Discounttorange=data.DiscountTo;\n this.iseditable=true;\n alert('Discount must be in range from'+' '+this.EnquiryObj.RFQObject[index].DiscountFromrange+' '+'to'+' '+this.EnquiryObj.RFQObject[index].Discounttorange);\n\n if(parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount)==0-0)\n {\n this.EnquiryObj.RFQObject[index].SalesDiscount = \"0\";\n return;\n }\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.updateLoaderEvent.emit(false);\n }\n }\n OnSalesDiscountChange(index) {\n if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) < 0) {\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }\n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) > 100) {\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n return;\n }\n else if(!(this.EnquiryObj.RFQObject[index].DiscountFromrange<=parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) && parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount)<= this.EnquiryObj.RFQObject[index].Discounttorange))\n {\n alert('Discount must be in range from'+' '+this.EnquiryObj.RFQObject[index].DiscountFromrange+' '+'to'+' '+this.EnquiryObj.RFQObject[index].Discounttorange);\n this.EnquiryObj.RFQObject[index].SalesDiscount=null;\n return;\n }\n \n else if (parseInt(this.EnquiryObj.RFQObject[index].SalesDiscount) % 1 != 0) {\n if (this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[1].length > 2 || this.EnquiryObj.RFQObject[index].SalesDiscount.toString().split(\".\")[0].length > 2) {\n this.toastr.info(\"Only two numbers are allowed after decimal point\")\n // this.EnquiryObj.RFQObject[index].SalesDiscount = Math.round((this.EnquiryObj.RFQObject[index].SalesDiscount + Number.EPSILON) * 100) / 100;\n this.EnquiryObj.RFQObject[index].SalesDiscount = null;\n }\n }\n this.EnquiryObj.RFQObject[index].SalesDiscountValidation = false;\n }\n\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n\n\n deleteAttachDocumentFromDB(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"MDS\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].MDS_filepath);\n this.EnquiryObj.RFQObject[index].MDS_filename = null;\n this.EnquiryObj.RFQObject[index].MDS_filepath = null;\n break;\n case \"ITC\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"ITC\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].ITC_filepath);\n this.EnquiryObj.RFQObject[index].deleted_ITC_filename = this.EnquiryObj.RFQObject[index].ITC_filename;\n this.EnquiryObj.RFQObject[index].deleted_ITC_filepath = this.EnquiryObj.RFQObject[index].ITC_filepath;\n this.EnquiryObj.RFQObject[index].ITC_filename = null;\n this.EnquiryObj.RFQObject[index].ITC_filepath = null;\n\n break;\n case \"Customer\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Customer\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Customer_filepath);\n this.EnquiryObj.RFQObject[index].Customer_filename = null;\n this.EnquiryObj.RFQObject[index].Customer_filepath = null;\n break;\n case \"Weiss\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Weiss\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Weiss_filepath);\n this.EnquiryObj.RFQObject[index].Weiss_filename = null;\n this.EnquiryObj.RFQObject[index].Weiss_filepath = null;\n break;\n }\n\n }\n\n \n getCustomerList() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AddRFQDetails(index) {\n if (this.EnquiryObj.RFQObject[index].ProductLine != undefined && this.EnquiryObj.RFQObject[index].ProductModel != undefined &&\n this.EnquiryObj.RFQObject[index].Quantity != undefined && this.EnquiryObj.RFQObject[index].SalesPrice != undefined && this.EnquiryObj.RFQObject[index].SalesDiscount != undefined) {\n this.EnquiryObj.RFQObject[index].IsRowDeleted = true;\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n else{\n this.toastr.info(\"Please fill mandatory details before adding new row.\");\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n } \n\n deleteRFQDetails(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.EnquiryObj.RFQObject.splice(index, 1);\n } else {\n this.EnquiryObj.RFQObject.pop();\n }\n }\n });\n }\n\n setTermsAndConditions() {\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown; \n this.EnquiryObj.TermsAndConditions.forEach(element => { \n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0]; \n element.TnCValue = tnc?.Value; \n });\n } else { \n this.isStandardCondition = false; \n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n });\n \n }\n }\n\n setTermsAndConditionsEditRfq() {\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true;\n //this.EnquiryObj.TnCObject = this.demoObject; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n\n this.EnquiryObj.TermsAndConditions.forEach(element => {\n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0];\n element.TnCValue = tnc?.Value;\n \n });\n } \n else {\n this.isStandardCondition = false;\n\n if (this.EnquiryObj.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedDropDownForEditRfq2\n }\n\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n\n });\n }\n }\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n \n SetStatus(rule, myform: any) {\n if (myform.valid) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId; \n }\n this.AddEnquiry();\n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n \n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n return;\n }\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard')\n {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions=null;\n }\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Non-Standard')\n {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n } \n this.EnquiryObj.TermsAndConditions=null;\n } \n }\n //Dont proceed if the BOM attachment is not present\n // if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatus.SendBOMandProposal || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatus.QuotationSenttoCustomerService ||\n // this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatus.RFQsentbyL1toL2) \n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id \n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQsentbyL1toL2')[0]?.Pk_Id) \n {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0 \n || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined \n || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) \n &&(this.EnquiryObj.EnquiryDetails.BOM_filename == null \n || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined \n || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n alert('BOM attachment is required.');\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0 )) {\n return;\n }\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0 || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0 || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n alert('Total PO Value and PO Value product wise are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n //this.showLoader = true;\n this.updateLoaderEvent.emit(true);\n\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Non-Standard\") {\n this.EnquiryObj.TermsAndConditions = null;\n\n this.EnquiryObj.CustomTermsAndConditions = this.newCustomiseArr;\n \n // if(this.QGRFQEditable == false)\n // { \n // this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n // }\n }\n // else{\n // this.EnquiryObj.CustomTermsAndConditions=null;\n // }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n\n\n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n \n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n alert(\"OA Number generated successfully!\");\n }\n else {\n this.toastr.success(confimrmsg.successmsg);\n }\n\n //this.showLoader = false;\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) \n {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n \n //this.router.navigate(['/addQuoation/'+this.EnquiryObj.EnquiryDetails.EnquiryId]);\n } else {\n //this.router.navigate(['/addQuoation/'+this.EnquiryObj.EnquiryDetails.EnquiryId]);\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n \n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n\n editRFQ() {\n if (this.showQuotationLink) {\n alert('Please note that editing the RFQ will reset the quotation.');\n }\n this.EnquiryObj.RFQObject.forEach(element => {\n element.deleted_MDS_filename = element.MDS_filename;\n element.deleted_MDS_filepath = element.MDS_filepath;\n\n element.deleted_ITC_filename = element.ITC_filename;\n element.deleted_ITC_filepath = element.ITC_filepath;\n\n element.deleted_Customer_filename = element.Customer_filename;\n element.deleted_Customer_filepath = element.Customer_filepath;\n\n element.deleted_Weiss_filename = element.Weiss_filename;\n element.deleted_Weiss_filepath = element.Weiss_filepath;\n });\n\n\n this.QGRFQEditable = true;\n\n }\n cancelEditingRFQ() {\n\n window.location.reload();\n this.QGRFQEditable = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n element.MDSAttachment = [];\n element.ITCAttachment = [];\n element.CustomerAttachment = [];\n element.WeissAttachment = [];\n element.isMDSAttachment = false;\n element.isITCAttachment = false;\n element.isCustomerAttachment = false;\n element.isWeissAttachment = false;\n element.MDS_filename = element.deleted_MDS_filename;\n element.MDS_filepath = element.deleted_MDS_filepath;\n\n element.ITC_filename = element.deleted_ITC_filename;\n element.ITC_filepath = element.deleted_ITC_filepath;\n\n element.Customer_filename = element.deleted_Customer_filename;\n element.Customer_filepath = element.deleted_Customer_filepath;\n\n element.Weiss_filename = element.deleted_Weiss_filename;\n element.Weiss_filepath = element.deleted_Weiss_filepath;\n });\n }\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n alert('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n\n onIndustrySegmentSelect(value)\n {\n if(value!=null)\n {\n this.SubSegment=this.FinalSubSegment.filter(x=>x.SegmentId==value); \n this.Application=[];\n // this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n // this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n } \n onSubSegmentSelect(value)\n {\n if(value!=null)\n {\n this.Application=this.FinalApplication.filter(x=>x.SubSegmentId==value); \n }\n }\n \n openCloseOppReasonPopup(enquiryStatusId:any) {\n const modalRef = this.modalService.open(CloseOppReasonComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var enquiObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n EnquiryStatusId: enquiryStatusId,\n EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.enquiryDataObj = enquiObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n\n limitTextOnKeyUpDown2(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxCharLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxCharLimit);\n } else {\n this.remCharLimit = this.maxCharLimit - goalText.length;\n }\n }\n\n limitTextOnKeyUpDown3(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxappdescLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxappdescLimit);\n } else {\n this.remappdescLimit = this.maxappdescLimit - goalText.length;\n }\n }\n\n getWorkflowActions()\n { \n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId +\"&workflowId=\" + this.workflowId ;\n\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetTransitionRulesByStatus\",queryString).subscribe((data: any) => {\n if(data!=null)\n {\n this.workflowActionList=data;\n //this.workflowActionList=this.workflowActionList.filter(x=>x.workflowActionCode!='CloseEnquiry');\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus()\n {\n this.commonService.GetData(\"Enquiry\",\"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n OnWorkflowAction(myform2:NgForm,workflowActionId:number)\n { \n var rule= this.workflowActionList.filter(x=>x.workflowActionId==workflowActionId);\n var closeEnquiryRule= this.workflowActionList.filter(x=>x.workflowActionCode==\"CloseEnquiry\"); \n\n if(closeEnquiryRule.length>0 && rule[0].workflowActionId == closeEnquiryRule[0].workflowActionId){\n this.openCloseOppReasonPopup(closeEnquiryRule[0].workflowNextStatusId);\n }else{\n myform2.control.markAllAsTouched();\n if(myform2.invalid)\n {\n this.toastr.error(\"Please fill required information\");\n return;\n } \n this.SetStatus(rule,myform2); \n } \n }\n\n rule:EnquirySendBack;\n SendBack()\n { \n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n this.rule=quotationRule[0];\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n\n }\n\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n \n radioChange(value) {\n if(value == true)\n {\n this.EnquiryObj.EnquiryDetails.KindAttention = this.EnquiryObj.EnqCustomerDetails.Name;\n this.EnquiryObj.EnquiryDetails.KindAttContactNo = this.EnquiryObj.EnqCustomerDetails.ContactNo;\n this.EnquiryObj.EnquiryDetails.KindAttEmailId = this.EnquiryObj.EnqCustomerDetails.MailAddress;\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = true;\n }else{\n this.EnquiryObj.EnquiryDetails.KindAttention = null;\n this.EnquiryObj.EnquiryDetails.KindAttContactNo = null;\n this.EnquiryObj.EnquiryDetails.KindAttEmailId = null;\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = false;\n }\n }\n \n\n}\n\n","\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n RFQ (Request For Quote)\n

    \n
    \n
    \n
    \n   \n
    \n
    \n\n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n \n \n \n \n Product Line  *\n \n \n Product Model  *\n \n \n Quantity  *\n \n \n MDS Option  *\n \n \n Attachment\n \n \n Sales Price  *\n \n \n Sales Discount  *\n \n\n \n Action\n \n\n \n \n \n MDS\n \n \n ITC\n \n \n Customer\n \n \n \n {{documentOfWhichComapany}}\n \n \n \n \n \n \n \n \n
    \n \n Product Line is\n required\n
    \n \n \n \n \n
    \n \n Product Model is\n required\n
    \n \n \n \n
    \n \n Quantity is\n required\n
    \n \n \n \n
    \n \n MDS Option is\n required\n
    \n \n \n
    \n \n \n
    \n\n
    \n {{(field.MDSAttachment\n != undefined &&\n field.MDSAttachment[0]\n != undefined) ?\n field.MDSAttachment[0].name:\n \"\"}}\n
    \n
    \n \n \n \n
    \n \n \n
    \n\n
    \n {{(field.ITCAttachment\n != undefined &&\n field.ITCAttachment[0]\n != undefined) ?\n field.ITCAttachment[0].name:\"\"}}\n
    \n
    \n \n \n \n
    \n \n \n
    \n\n
    \n {{(field.CustomerAttachment\n != undefined &&\n field.CustomerAttachment[0]\n != undefined) ?\n field.CustomerAttachment[0].name:\"\"}}\n
    \n
    \n \n {{field.Customer_filename}}\n
    \n
    \n\n\n \n \n
    \n \n \n
    \n\n
    \n {{(field.WeissAttachment\n != undefined &&\n field.WeissAttachment[0]\n != undefined) ?\n field.WeissAttachment[0].name:\n \"\"}}\n
    \n
    \n \n {{field.Weiss_filename}}\n
    \n
    \n \n \n \n
    \n \n Sales Price is\n required\n
    \n \n\n \n \n\n
    \n \n Sales Discount is\n required\n
    \n\n \n\n \n \n \n \n \n \n \n\n
    \n
    \n [File Format: txt, pdf,\n doc,\n docx, xls, xlsx, jpg, jpeg, png, bmp, zip,\n csv, xml] [Max 5 MB]
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n Estimated RFQ Value is\n required\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n Date is\n required\n
    \n
    \n\n
    \n \n
    \n
    \n Upload\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n\n 0\">\n
      \n \n
    • \n {{item.name}}  \n
    • \n \n
    \n\n \n
    \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n\n
    \n \n Application\n
    \n
    \n \n
    \n \n
    \n
    \n Industry segment is required
    \n
    \n
    \n\n
    \n\n \n
    \n \n
    \n
    \n Sub segment is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n \n \n\n
    \n
    \n\n \n
    \n \n Limit {{maxCharLimit}} characters,\n {{remCharLimit}} characters\n remaining.\n
    \n
    \n
    \n \n\n
    \n \n Limit {{maxappdescLimit}} characters,\n {{remappdescLimit}} characters\n remaining.\n \n
    \n
    \n\n\n\n
    \n \n Kind Attention\n
    \n\n
    \n \n Enter\n Manually\n \n   \n \n From KYC\n \n

    \n
    \n\n\n
    \n \n
    \n \n\n
    \n
    \n Kind attention is\n required\n
    \n
    \n
    \n\n
    \n\n \n
    \n \n\n
    \n
    \n Contact number is\n required\n
    \n
    \n Please enter valid contact number\n
    \n
    \n Contact number should be 10-15\n digits
    \n
    \n
    \n\n
    \n\n\n
    \n \n
    \n \n\n
    \n
    \n Email is\n required\n
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n Terms and Condition Details\n
    \n \n
    \n \n
    \n \n
    \n
    \n Terms & conditions is\n required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n

    \n
    \n
    \n \n
    \n
    \n\n \n \n\n
    \n
    \n Non standard value is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n    \n \n \n
    \n\n
    \n
    \n \n \n \n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-send-back-comment',\n templateUrl: './send-back-comment.component.html',\n styleUrls: ['./send-back-comment.component.scss']\n})\nexport class SendBackCommentComponent implements OnInit {\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n sendbackRules: EnquirySendBack[] = [];\n showLoader: boolean = false;\n Comment: any;\n @Input() sendBackObj;\n @Output() updateLoaderEvent = new EventEmitter();\n sendbackComment: any;\n constructor(\n private activeModal: NgbActiveModal,\n private commonService: CommonService,\n private toastr: ToastrService) { }\n\n ngOnInit(): void {\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n rule: EnquirySendBack;\n SendBackSubmit(sendBackCommentForm: NgForm) {\n sendBackCommentForm.control.markAllAsTouched();\n if (sendBackCommentForm.invalid) {\n return;\n }\n this.rule = this.sendBackObj.finalrule;\n this.rule.EnquiryId = this.sendBackObj.EnquiryId;\n this.rule.Comment = this.sendbackComment;\n this.showLoader = true;\n let rules = JSON.stringify(this.rule);\n const frmData = new FormData();\n frmData.append(\"rule\", rules);\n this.commonService.PostData(\"EnquiryWorkflowTransitionRules\", \"SetStatus\", frmData, \"\", null).subscribe(data => {\n this.showLoader = false;\n this.toastr.success(\"Enquiry sent one step back\");\n window.location.reload();\n }, error => {\n this.toastr.error(\"Failed to Enquiry sent one step back\");\n this.showLoader = false;\n });\n\n }\n\n}\n","\n\n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n

    \n Send Back Comment\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n \n
    \n
    ","\nimport { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition, DynamicTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EngagementReportServiceService } from 'src/app/Service/engagement-report-service.service';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { forkJoin, pipe } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n\n\n@Component({\n selector: 'app-so-generation',\n templateUrl: './so-generation.component.html',\n styleUrls: ['./so-generation.component.scss']\n})\nexport class SoGenerationComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC: any[] = [];\n customTCValues: any[] = [];\n CustomerAddressList: any;\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean = false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable: boolean = false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange: any;\n Discounttorange: any;\n calculatedTotalPrice: any;\n IsIncludedAllSOChargesResult: boolean = false;\n totalCalculatedPriceAfterIncludingAllCharges: number = 0;\n totalsum: number = 0;\n totalCalculatedPriceOfAllProductModel: number = 0;\n tempTotalCalculatedPriceOfAllProductModel : number = 0;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n TndCFromDropDown: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n specialPkgDiscount: number;\n poPrice: number = 0;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoDynamicObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n workflowActionList: any[] = [];\n enquiryStatusList: EnquiryStatusList[] = [];\n workflowId: number;\n roleOfAdmin : any;\n\n @Output() updateLoaderEvent = new EventEmitter();\n UserRolesData:any[]=[];\n WinLossDataForStatus: any;\n isSOEditable: boolean=false;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private workflowService: EngagementReportServiceService,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private cd: ChangeDetectorRef,\n private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n\n }\n ngAfterViewInit() {\n this.updateLoaderEvent.emit(true);\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.updateLoaderEvent.emit(false);\n }, 2000);\n \n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n //this.getEnquiryDetailsById();\n this.isEnquiryLoaded = false;\n this.getEnquiryStatus(); \n this.getUserRoles();\n this.getSendbackWorkfow();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n\n this.roleOfAdmin = UserRoles.Admin;\n // this.getAllWorkFlow()\n // .subscribe(x=>{\n // this.getWorkflowActions(this.workflowId);\n // this.getEnquiryDetailsById(); \n // });\n forkJoin([\n this.getAllWorkFlow()\n ]).pipe(tap(res => { \n this.getEnquiryDetailsById(); \n })).subscribe(x=>{\n // this.getEnquiryDetailsById(); \n });\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n deletePOAttachment(flag: any) {\n // this.EnquiryObj.EnquiryDetails.POAttchments = [];\n // this.isPOAttachment = false;\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.PO_filepath);\n this.isPOAttacmentDelete = true;\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.PO_filename = null;\n this.EnquiryObj.EnquiryDetails.PO_filepath = null;\n this.isPOAttachment = false;\n }\n checkActivityValidations() {\n this.IsActivityDataValid = true;\n this.activityDetails.forEach(element => {\n if (element.Activity == undefined || element.Activity == null || element.Activity == \"\") {\n element.ActivityValidation = true;\n this.IsActivityDataValid = false;\n }\n if (element.ActivityDate == undefined || element.ActivityDate == null || element.ActivityDate == \"\") {\n element.ActivityDateValidation = true;\n this.IsActivityDataValid = false;\n }\n });\n }\n editActivity() {\n this.isEditactivity = true;\n }\n cancelEditActivity() {\n this.isEditactivity = false;\n }\n SaveActivityDetails() {\n this.checkActivityValidations();\n if (!this.IsActivityDataValid) {\n return;\n }\n this.updateLoaderEvent.emit(true);\n this.activityDetails.forEach(element => {\n if (element.ActivityDate != undefined) {\n element.ActivityDateISO = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day))).toDateString();\n }\n if (element.ActivityDate != undefined) {\n element.ActivityDate = new Date(this.convertDate(new NgbDate(element.ActivityDate.year, element.ActivityDate.month, element.ActivityDate.day)));\n }\n element.EnquiryId = this.EnquiryObj.EnquiryDetails.EnquiryId;\n });\n\n let activityDetails = JSON.stringify(this.activityDetails);\n const frmData = new FormData();\n frmData.append(\"ActivityObj\", activityDetails);\n var i = 0;\n this.activityDetails.forEach(element => {\n if (element.Attachment != undefined) {\n frmData.append(\"Attachment[\" + i + \"]\", this.activityDetails[i].Attachment[0]);\n }\n i++;\n });\n\n this.commonService.PostData(\"Enquiry\", \"AddActivity\", frmData, null).subscribe((data: any) => {\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n //this.isEditactivity = false;\n this.toastr.success(\"Activity details added successfully!\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.toastr.error(\"Failed to add activity details!\");\n this.updateLoaderEvent.emit(false);\n });\n\n }\n\n getQuotationData() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetQuotationByEnquiryId', queryString).subscribe((data: any) => {\n this.QuotationDataForPO = data.QuotationObj;\n this.QuotationDataForPO.forEach(element => {\n var obj = new ProductModelPOValues();\n obj.ProductId = element.ProductId;\n obj.ProductModelName = element.ProductModelName;\n if (element.Variant1Name != undefined) obj.ProductModelName = obj.ProductModelName + ' (' + element.Variant1Name;\n if (element.Variant2Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant2Name;\n if (element.Variant3Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant3Name;\n if (element.Variant4Name != undefined) obj.ProductModelName = obj.ProductModelName + ', ' + element.Variant4Name;\n obj.ProductModelName = obj.ProductModelName + ')'\n obj.QUotationValue = element.FinalAmount;\n obj.ProductModelPOValue = \"\";\n this.EnquiryObj.POValues.push(obj);\n });\n });\n }\n\n getEnquiryDetailsById() {\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n let tracker=this.commonService.GetData('Enquiry', 'GetById', queryString);\n tracker.subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n this.EnquiryObj.POValues = data.POValues;\n\n this.EnquiryObj.CustomerServiceDetails = data.CustomerServiceDetails;\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n this.EnquiryObj.DynamicTCDetailObj = data.DynamicTCDetailObj;\n\n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n if (this.EnquiryObj.DynamicTCDetailObj.length == 0) {\n var object = new DynamicTermsAndCondition();\n this.EnquiryObj.DynamicTCDetailObj.push(object);\n }\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n // this.ScreenAccessSpecifier(localStorage.getItem('UserRole'), this.EnquiryObj.EnquiryDetails.Status);\n //SET DISABLE PROPERTIES\n if(this.workflowActionList.length>0 )\n {\n this.isSOEditable=true;\n }\n else{\n this.isSOEditable=false;\n }\n\n if (this.EnquiryObj.EnquiryDetails.segment != undefined) {\n this.SubSegment = this.FinalSubSegment.filter(x => x.SegmentId == this.EnquiryObj.EnquiryDetails.segment);\n this.Application = this.FinalApplication.filter(x => x.SubSegmentId == this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if (this.EnquiryObj.EnquiryDetails.segment == null || this.EnquiryObj.EnquiryDetails.subSegment == null || this.EnquiryObj.EnquiryDetails.application == null) {\n this.EnquiryObj.EnquiryDetails.segment = undefined;\n this.EnquiryObj.EnquiryDetails.subSegment = undefined;\n this.EnquiryObj.EnquiryDetails.application = undefined;\n }\n\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC = data.EnquiryDetails.IsFetchFromKYC;\n this.getCustomerAddresses(this.EnquiryObj.EnqCustomerDetails.CustomerId);\n\n this.totalCalculatedPriceOfAllProductModel = parseFloat(this.EnquiryObj.EnquiryDetails.POValue);\n\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n // replaceAll(str, term, replacement) {\n // return str.replace(new RegExp(escapeRegExp(term), 'g'), replacement);\n // }\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n getRFQProduct() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n this.product = data;\n this.productDrpdnDetails.MDSOptions = data.MDS;\n this.productDrpdnDetails.SalesPrice = data.Salesprice;\n this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n this.IndustrySegment = data.segment;\n this.SubSegment = [];\n this.Application = [];\n this.FinalIndustrySegment = data.segment;\n this.FinalSubSegment = data.subSegment;\n this.FinalApplication = data.application;\n data.TermsAndConditions.forEach(element => {\n var obj = new TermsAndCondition();\n obj.TnCId = element.Id;\n obj.TnCName = element.Name;\n obj.TnCValue = element.Value;\n this.TnCStandardFromDropDown.push(obj);\n });\n\n this.demoObject = data.TermsAndConditions;\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n var obj1 = new CustomTermsAndCondition();\n obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n }\n this.TnCCustomizedFromDropDown.push(obj1);\n }\n\n this.demoCTCObject = data.CustomTermsAndCondition;\n\n //this.updateLoaderEvent.emit(false);\n });\n }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n\n this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n\n OnCustomValueChange1(index, id) {\n let CustTcObj1: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj1.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj1.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj1.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj1.CustTCId = id;\n\n let newCustomiseArr = this.EnquiryObj.CustomTermsAndConditions\n this.newCustomTc = newCustomiseArr.map((item, index) => {\n\n return {\n ...item,\n CustTCId: item.StandardTC == CustTcObj1.StandardTC ? Number(CustTcObj1.CustTCId) : Number(item.CustTCId),\n CustValue: item.StandardTC == CustTcObj1.StandardTC ? CustTcObj1.CustValue : item.CustValue\n }\n\n });\n this.EnquiryObj.CustomTermsAndConditions = this.newCustomTc;\n }\n\n\n getProductModel(Id, ind) {\n this.EnquiryObj.RFQObject[ind].ProductLineValidation = false;\n this.product.Product.forEach((element, index) => {\n if (element.ProductLine.Id == Id) {\n this.productDrpdnDetails.ProductModel = element.ProductModels;\n this.newRFQDetails.ProductModelList = element.ProductModels;\n this.EnquiryObj.RFQObject[ind].isProductLineChangeClick = true;\n this.EnquiryObj.RFQObject[ind].ProductModelList = this.productDrpdnDetails.ProductModel;\n }\n });\n }\n OnProductModelChange(index) {\n this.EnquiryObj.RFQObject[index].ProductModelValidation = false;\n }\n OnQuantityChange(index) {\n if (this.EnquiryObj.RFQObject[index].Quantity < 1) {\n //alert('Quantity cannot be 0 or negative.');\n this.toastr.info('Quantity cannot be 0 or negative.');\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n } else if (this.EnquiryObj.RFQObject[index].Quantity % 1 != 0) {\n // alert('Please enter the valid Quantity');\n this.toastr.info('Please enter the valid Quantity');\n\n this.EnquiryObj.RFQObject[index].Quantity = null;\n return;\n }\n this.EnquiryObj.RFQObject[index].QuantityValidation = false;\n }\n\n\n deleteAttachDocument(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"ITC\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"Customer\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"Weiss\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n }\n\n }\n\n deleteActivityAttachments(index) {\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n }\n\n deleteActivityAttachmentsFromDB(index) {\n this.activityDetails[index].fileName = null;\n this.activityDetails[index].filePath = null;\n this.EnquiryObj.RemoveFiles.push(this.activityDetails[index].filePath);\n }\n\n\n deleteAttachDocumentFromDB(index, attachemntType) {\n switch (attachemntType) {\n case \"MDS\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"MDS\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].MDS_filepath);\n this.EnquiryObj.RFQObject[index].MDS_filename = null;\n this.EnquiryObj.RFQObject[index].MDS_filepath = null;\n break;\n case \"ITC\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"ITC\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].ITC_filepath);\n this.EnquiryObj.RFQObject[index].deleted_ITC_filename = this.EnquiryObj.RFQObject[index].ITC_filename;\n this.EnquiryObj.RFQObject[index].deleted_ITC_filepath = this.EnquiryObj.RFQObject[index].ITC_filepath;\n this.EnquiryObj.RFQObject[index].ITC_filename = null;\n this.EnquiryObj.RFQObject[index].ITC_filepath = null;\n\n break;\n case \"Customer\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Customer\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Customer_filepath);\n this.EnquiryObj.RFQObject[index].Customer_filename = null;\n this.EnquiryObj.RFQObject[index].Customer_filepath = null;\n break;\n case \"Weiss\":\n var fileObj = new removefiles();\n fileObj.ProductId = this.EnquiryObj.RFQObject[index].ProductId;\n fileObj.filetype = \"Weiss\";\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.RFQObject[index].Weiss_filepath);\n this.EnquiryObj.RFQObject[index].Weiss_filename = null;\n this.EnquiryObj.RFQObject[index].Weiss_filepath = null;\n break;\n }\n\n }\n\n deleteActivityDetails(index) {\n if (index != null) {\n this.activityDetails.splice(index, 1);\n }\n }\n addActivityDetails(index) {\n if (!(this.activityDetails[index].Activity == undefined || this.activityDetails[index].Activity == null || this.activityDetails[index].Activity == \"\")\n &&\n !(this.activityDetails[index].ActivityDate == undefined || this.activityDetails[index].ActivityDate == null || this.activityDetails[index].ActivityDate == \"\")) {\n var obj = new ActivityModel();\n obj.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj.uniqueid = this.makeRandom();\n obj.ISNewActivityAdded = true;\n this.activityDetails.push(obj);\n }\n }\n\n getCustomerList() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquirySourceDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getProductDetails() {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.updateLoaderEvent.emit(false);\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n this.AddEnquiry();\n }\n\n AddEnquiry() {\n\n // Input field validation in row of CA\n let inputs = document.querySelectorAll('.socss')\n inputs.forEach(input => {\n input.classList.add('error') \n })\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n\n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions = null;\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Customized') {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n }\n this.EnquiryObj.TermsAndConditions = null;\n }\n\n\n }\n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'SendBOMandProposal')[0]?.Pk_Id || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x => x.Status == 'MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n // if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n // this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n // let sum: number = 0;\n // this.EnquiryObj.POValues.forEach(element => {\n // element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n // ? '0' : element.ProductModelPOValue;\n // sum = sum + parseInt(element.ProductModelPOValue);\n // element.QUotationValueValidation = false;\n // });\n // if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n // document.getElementById(\"povalue0\").focus();\n // this.toastr.error('Total PO Value should match with Product wise PO Value.');\n // // info('Total PO Value should match with Product wise PO Value.');\n // this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n // this.UpdatePO = false;\n // return;\n // }\n // }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n\n if (this.totalCalculatedPriceOfAllProductModel.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.error('Total PO Value should match with Final PO Value including all charges.');\n // info('Total PO Value should match with Product wise PO Value.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n\n \n\n // this.EnquiryObj.DynamicTCDetailObj.forEach(element => {\n // if (element.TndCName == undefined || element.TndCName == null || element.TndCName == \"\") {\n // element.TndCNameValidation = true;\n // }\n // if (element.TndCValue == undefined || element.TndCValue == null || element.TndCValue == \"\") {\n // element.TndCValueValidation = true;\n // }\n // });\n \n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.EnquiryObj.TermsAndConditions = null;\n\n if (this.QGRFQEditable == true) {\n this.EnquiryObj.CustomTermsAndConditions;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n }\n }\n\n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n\n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OANoGenerated')[0]?.Pk_Id) {\n this.toastr.success(\"OA Number generated successfully\");\n }\n else {\n this.toastr.success(confimrmsg.successmsg);\n }\n\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n window.location.reload();\n } else {\n this.router.navigate(['/Enquiry']);\n //this.backtoList();\n }\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x => x.Status == 'OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n povalueChange(i) {\n var povalue: number = parseFloat(this.EnquiryObj.POValues[i].ProductModelPOValue);\n if (povalue == undefined || povalue == null) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue < 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (povalue % 1 != 0) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n } else if (this.EnquiryObj.POValues[i].ProductModelPOValue.toString().includes(\".\")) {\n this.EnquiryObj.POValues[i].QUotationValueValidation = true;\n this.IsPODataValid = false;\n }\n else {\n this.EnquiryObj.POValues[i].QUotationValueValidation = false;\n }\n }\n\n\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath + 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.updateLoaderEvent.emit(true);\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n EditPO() {\n this.UpdatePO = true;\n\n setTimeout(() => {\n this.editpovalue.nativeElement.focus();\n }, 0);\n }\n\n\n\n onPOQuatityChange(index) {\n //let strquantity = this.EnquiryObj.POValues[index].POQuantity.toString(); \n if ((this.EnquiryObj.POValues[index].POQuantity == 0 || this.EnquiryObj.POValues[index].POQuantity == null || this.EnquiryObj.POValues[index].POQuantity == undefined)) {\n this.EnquiryObj.POValues[index].POQuantity = 0;\n }\n else if (this.EnquiryObj.POValues[index].POQuantity % 1 != 0) {\n this.EnquiryObj.POValues[index].QuantityValidation = true;\n return;\n }\n else {\n this.EnquiryObj.POValues[index].QuantityValidation = false;\n }\n if (this.EnquiryObj.POValues[index].POQuantity > 1000) {\n this.EnquiryObj.POValues[index].QuantityRangeValidation = true;\n return;\n }\n else {\n this.EnquiryObj.POValues[index].QuantityRangeValidation = false;\n }\n\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n\n calculateTotalPricesForProduct(index, flag) {\n this.poPrice = 0;\n var POValues = this.EnquiryObj.POValues[index];\n\n POValues.POUnitPrice = POValues?.POUnitPrice == undefined ? 0 : POValues.POUnitPrice;\n POValues.ProductModelPOValue = POValues?.ProductModelPOValue == undefined ? 0 : POValues.ProductModelPOValue;\n\n var percent = 100 - POValues.PODiscount;\n this.poPrice = POValues.POUnitPrice * POValues.POQuantity;\n POValues.ProductModelPOValue = POValues.POUnitPrice * POValues.POQuantity * (percent / 100);\n var finalpoValue = this.poPrice;\n var finalProductModelPOValue = POValues.ProductModelPOValue\n\n this.poPrice = Math.round(finalpoValue);\n POValues.ProductModelPOValue = Math.round(finalProductModelPOValue);\n\n // let ProductModelWisePOValue = POValues.ProductModelPOValue;\n // this.totalCalculatedPriceOfAllProductModel = this.totalCalculatedPriceOfAllProductModel + ProductModelWisePOValue;\n //this.totalCalculatedPriceAfterIncludingAllCharges = POValues.ProductModelPOValue;\n\n this.calculateTotalProductWisePOValue();\n }\n\n onPODiscountChange(i) {\n if (this.EnquiryObj.POValues[i].PODiscount < 0) {\n this.EnquiryObj.POValues[i].PODiscount = 0;\n }\n else if (this.EnquiryObj.POValues[i].PODiscount > 100) {\n this.EnquiryObj.POValues[i].PODiscount = 0;\n return;\n }\n \n else if (this.EnquiryObj.POValues[i].PODiscount != 0) {\n \n this.calculateTotalPricesForProduct(i,1);\n\n }\n else if (this.EnquiryObj.POValues[i].PODiscount == 0) {\n \n this.calculateTotalPricesForProduct(i,1);\n }\n }\n\n onPOUnitPriceChange(index) {\n let strprice = this.EnquiryObj.POValues[index].POUnitPrice.toString();\n if ((this.EnquiryObj.POValues[index].POUnitPrice == 0 || this.EnquiryObj.POValues[index].POUnitPrice == null || this.EnquiryObj.POValues[index].POUnitPrice == undefined)) {\n this.EnquiryObj.POValues[index].POUnitPrice = 0;\n }\n // else if (this.EnquiryObj.POValues[index].POUnitPrice > 9999999) {\n // this.EnquiryObj.POValues[index].PoUnitPriceValidation = true;\n // return;\n // }\n else if (strprice.includes(\".\")) {\n alert('PO unit price must be an integer');\n this.EnquiryObj.POValues[index].POUnitPrice = 0;\n this.calculateTotalPricesForProduct(index, 1);\n return;\n }\n else {\n this.EnquiryObj.POValues[index].PoUnitPriceValidation = false;\n }\n\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n getAllWorkFlow() {\n let tracker=this.commonService.GetData(\"Workflow\", \"GetAll\", null);\n tracker.subscribe((data: any) => { \n //handle null\n if(data!=null) {\n var workflowData = data;\n this.workflowId=workflowData.filter(x=>x.document_type_code == \"SALES_ORDER\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId);\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n return tracker;\n }\n\n getWorkflowActions(workflowId:any) {\n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId + \"&workflowId=\" + workflowId;\n\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\", \"GetTransitionRulesByStatus\", queryString).subscribe((data: any) => {\n this.workflowActionList = data;\n this.cd.detectChanges();\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus() {\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n OnWorkflowAction(myform7: NgForm, workflowActionId: number) {\n var rule = this.workflowActionList.filter(x => x.workflowActionId == workflowActionId);\n myform7.control.markAllAsTouched();\n if (myform7.invalid) {\n this.toastr.error(\"Please fill required information\");\n return;\n }\n \n var emptyPOModels = this.EnquiryObj.POValues.filter(x=>x.POQuantity<=0);\n if(emptyPOModels.length == this.EnquiryObj.POValues.length)\n {\n this.toastr.error(\"Please fill PO quantity greater than 0, at least one product model required to continue further process.\");\n return;\n }\n \n this.SetStatus(rule, myform7);\n\n }\n\n getUserRoles(){\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n sendbackRules:EnquirySendBack[]=[];\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack()\n {\n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n this.rule=quotationRule[0];\n\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n // this.rule.EnquiryId=this.EnquiryObj.EnquiryDetails.EnquiryId;\n\n // let rules = JSON.stringify(this.rule);\n // const frmData = new FormData();\n // frmData.append(\"rule\", rules);\n // this.commonService.PostData(\"EnquiryWorkflowTransitionRules\",\"SetStatus\",frmData,\"\",null).subscribe(data=>{\n // this.toastr.success(\"Enquiry sent one step back\");\n // window.location.reload();\n // }); \n }\n\n getCustomerAddresses(CustomerId : number)\n {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + CustomerId;\n this.commonService.GetData('Customer', 'GetAddressesById', queryString).subscribe((data: any) => {\n this.CustomerAddressList = data;\n this.showLoader = false;\n });\n }\n\n AddNewRow(index)\n {\n if (this.EnquiryObj.DynamicTCDetailObj[index].TndCName != undefined && this.EnquiryObj.DynamicTCDetailObj[index].TndCName != \"\" &&\n this.EnquiryObj.DynamicTCDetailObj[index].TndCValue != undefined && this.EnquiryObj.DynamicTCDetailObj[index].TndCValue != \"\")\n {\n this.EnquiryObj.DynamicTCDetailObj[index].IsRowDeleted = true;\n var obj = new DynamicTermsAndCondition();\n this.EnquiryObj.DynamicTCDetailObj.push(obj);\n }\n else{\n this.toastr.info(\"Please fill mandatory details before adding new row.\");\n }\n }\n\n\n deleterow(index:any)\n {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.EnquiryObj.DynamicTCDetailObj.splice(index, 1);\n } else {\n this.EnquiryObj.DynamicTCDetailObj.pop();\n }\n }\n });\n }\n\n onClick_IncludeAllSOCharges(value : any)\n {\n if(value == true)\n { \n this.EnquiryObj.EnquiryDetails.IsIncludedAllSOCharges = true;\n }\n else\n {\n this.EnquiryObj.EnquiryDetails.IsIncludedAllSOCharges = false;\n }\n }\n\n calculateTotalPriceWithAllSOCharges(value: boolean)\n {\n this.IsIncludedAllSOChargesResult = value\n this.calculatedTotalPrice = 0;\n this.calculatedTotalPrice = this.EnquiryObj.EnquiryDetails.PackageAndForward +\n this.EnquiryObj.EnquiryDetails.TransferCharge +\n this.EnquiryObj.EnquiryDetails.OtherTax\n\n if(this.IsIncludedAllSOChargesResult == true && this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount == 0)\n {\n //this.totalCalculatedPriceAfterIncludingAllCharges = this.calculatedTotalPrice + parseFloat(this.EnquiryObj.EnquiryDetails.POValue);\n this.totalCalculatedPriceOfAllProductModel = this.calculatedTotalPrice + this.totalCalculatedPriceAfterIncludingAllCharges;\n }\n else if(this.IsIncludedAllSOChargesResult == false && this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount == 0)\n {\n //this.totalCalculatedPriceAfterIncludingAllCharges = parseFloat(this.EnquiryObj.EnquiryDetails.POValue);\n this.totalCalculatedPriceOfAllProductModel = this.totalCalculatedPriceAfterIncludingAllCharges;\n }\n else if(this.IsIncludedAllSOChargesResult == true && this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount != 0)\n {\n this.totalCalculatedPriceOfAllProductModel = this.calculatedTotalPrice + this.tempTotalCalculatedPriceOfAllProductModel;\n }\n else if(this.IsIncludedAllSOChargesResult == false && this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount != 0)\n {\n this.totalCalculatedPriceOfAllProductModel = this.tempTotalCalculatedPriceOfAllProductModel;\n }\n }\n\n calculateTotalProductWisePOValue() {\n this.totalCalculatedPriceOfAllProductModel = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n\n this.totalCalculatedPriceOfAllProductModel = this.totalCalculatedPriceOfAllProductModel + parseInt(element.ProductModelPOValue);\n //element.QUotationValueValidation = false;\n });\n\n this.totalCalculatedPriceAfterIncludingAllCharges = this.totalCalculatedPriceOfAllProductModel;\n\n this.onSalesOrderSpecialPkgDiscountChange();\n\n }\n\n \n allowDecimal(event: any) {\n // Allow decimal point and only two decimal places\n const regex = /^[0-9]+(\\.[0-9]{0,2})?$/;\n const inputChar = String.fromCharCode(event.charCode);\n if (!regex.test(event.target.value + inputChar)) {\n event.preventDefault();\n }\n if ((this.specialPkgDiscount > 100)) {\n //alert(\"Discount cannot be Greater than 100\");\n this.specialPkgDiscount = 0;\n return;\n }\n }\n\n onSalesOrderSpecialPkgDiscountChange()\n {\n if ((this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount < 0))\n {\n this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount = 0;\n return;\n }\n else if ((this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount > 100)) \n {\n this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount = 0;\n return;\n }\n else if (this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount != 0)\n {\n var percent = 100 - this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount;\n var calculate = this.totalCalculatedPriceAfterIncludingAllCharges * (percent / 100);\n \n this.tempTotalCalculatedPriceOfAllProductModel = Math.round(calculate);\n \n this.calculateTotalPriceWithAllSOCharges(this.EnquiryObj.EnquiryDetails.IsIncludedAllSOCharges);\n }\n else if (this.EnquiryObj.EnquiryDetails.SalesOrderSpecialPkgDiscount == 0)\n {\n \n this.calculateTotalPriceWithAllSOCharges(this.EnquiryObj.EnquiryDetails.IsIncludedAllSOCharges);\n\n }\n\n }\n\n}\n","
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Sales Order(SO) Generation\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n\n \n \n\n
    \n \n \n
    \n
    \n\n \n \n\n
    \n\n \n
    \n {{EnquiryObj.EnquiryDetails.POSubmittedOn | date}}\n\n
    \n
    \n\n\n
    \n \n
    \n \n
    \n
    \n PO Value must be an integer\n
    \n
    \n PO value is\n required\n
    \n
    \n
    \n
    \n \n\n
    \n
    \n Attach PO/LOI\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherAttachments}}\n
    \n PO attachment is\n required\n
    \n\n
    \n {{EnquiryObj.EnquiryDetails.POAttchments\n != undefined &&\n EnquiryObj.EnquiryDetails.POAttchments[0]\n != undefined ?\n EnquiryObj.EnquiryDetails.POAttchments[0].name:\n \"\"}}\n
    \n
    \n\n\n\n
    \n \n\n
    \n\n
    \n\n \n
    \n €\n {{EnquiryObj.EnquiryDetails.POValue |\n indianCurrency}}/-\n
    \n (The PO value\n to be entered product wise below. Please\n note that total PO Value should matched\n with product wise.)\n
    \n\n
    \n\n \n\n
    \n \n
    \n
    \n Purchase Order Number is required
    \n
    \n
    \n
    \n\n
    \n \n\n
    \n \n
    \n
    \n Bill to address is\n required\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Ship to address is\n required\n
    \n
    \n
    \n\n\n
    \n\n
    \n \n\n
    \n \n\n
    \n
    \n \n\n
    \n \n\n
    \n
    \n
    \n \n
    \n \n\n
    \n\n
    \n\n \n
    \n \n\n
    \n
    \n\n\n
    \n \n
    \n\n
    \n \n \n \n Product Model\n Qty\n Disc(%)\n Quote Value(€)\n Variant1 Discount\n Variant2 Discount\n Variant3 Discount\n Variant4 Discount\n PO Qty\n PO Unit Price\n PO Disc(%)\n PO Value(€)\n \n \n \n \n\n \n {{item.ProductModelName}}\n \n \n {{item.QuotationQuantity}}\n \n \n {{item.QuotationDiscount}}\n \n \n {{item.QUotationValue | indianCurrency }}\n \n \n {{item.Variant1_Discount}}\n \n \n {{item.Variant2_Discount}}\n \n \n {{item.Variant3_Discount}}\n \n \n {{item.Variant4_Discount}}\n \n \n \n
    \n \n Quantity is not valid\n
    \n
    \n \n Quantity should be in between 0 to 1000\n
    \n \n \n \n
    \n
    \n PO unit price must be an integer\n
    \n\n
    \n\n \n\n \n \n \n \n \n
    \n
    \n PO Value must be an\n integer
    \n
    \n \n\n \n\n \n \n
    \n
    \n \n\n
    \n\n \n\n
    \n {{EnquiryObj.POValues[0]?.Special_pkg_Discount}}% \n
    - From Quotation
    \n \n
    \n\n
    \n
    \n
    \n \n Other Charges Details\n
    \n\n
    \n \n\n
    \n \n \n
    \n\n
    \n\n \n
    \n \n €{{totalCalculatedPriceOfAllProductModel|\n indianCurrency}}/-\n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Packaging and forwarding price is required
    \n
    \n Packaging and forwarding price must be an integer
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n Transfer charge price is required
    \n
    \n Transfer charge price must be an integer
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n Other tax price is required
    \n
    \n Other tax price must be an integer
    \n
    \n
    \n
    \n\n
    \n \n OA Terms and Condition Details\n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n OA Terms & Condition *\n \n Value *\n \n Action\n
    \n \n
    \n \n Term is required\n \n
    \n
    \n \n
    \n \n Value is required\n \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n    \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n
    ","\nimport { Component, OnInit, ViewChild, Input, ɵclearResolutionOfComponentResourcesQueue, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, NavigationEnd, Router, RoutesRecognized } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as FileSaver from 'file-saver';\nimport { BasicCustomerInformationModel } from 'src/app/Model/CustomerModel';\nimport { EnquiryModel, CustomerDrpdnDetails, CustomerDetails, ProductDrpdnDetails, EnquiryDetailsModel, ProductDetails, Comments, removefiles, TermsAndCondition, ActivityModel, ProductModelPOValues, CustomTermsAndCondition } from 'src/app/Model/EnquiryModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { NgbDate, NgbModal, NgbActiveModal, NgbDatepickerConfig, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\n\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryModalComponent } from '../enquiry-modal/enquiry-modal.component';\nimport { MatStepper } from '@angular/material/stepper';\nimport { FormControl, NgForm, Validators } from '@angular/forms';\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { QuotationDetailsModel, QuotationCustomerDetails } from 'src/app/Model/QuotationModel';\nimport { Title } from '@angular/platform-browser';\nimport { Location } from '@angular/common';\nimport {\n saveAs as importedSaveAs\n} from \"file-saver\";\nimport { ClassGetter } from '@angular/compiler/src/output/output_ast';\nimport { TechnicalDiscardComponent } from '../technical-discard/technical-discard.component';\nimport { CloseOppReasonComponent } from '../close-opp-reason/close-opp-reason.component';\nimport { EnquiryStatus, EnquiryStatusCode } from \"src/app/EnquiryStatus\";\nimport { EnquiryStatusList } from 'src/app/Model/EnquiryStatus';\nimport { EnquirySendBack } from 'src/app/Model/EnquirySendBack';\nimport { element } from 'protractor';\nimport { SendBackCommentComponent } from '../send-back-comment/send-back-comment.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\ndeclare var require: any\n\n@Component({\n selector: 'app-supply-chain',\n templateUrl: './supply-chain.component.html',\n styleUrls: ['./supply-chain.component.scss']\n})\nexport class SupplyChainComponent implements OnInit {\n\n @ViewChild('myform3') myform3: NgForm;\n @ViewChild('myform5') myform5: NgForm;\n @ViewChild('myInput') myInputVariable: ElementRef;\n @ViewChild('editpovalue', { static: false }) editpovalue: ElementRef;\n standardTC:any[] = [];\n customTCValues:any[] =[];\n\n userInfo: EmployeeGuestModel = new EmployeeGuestModel();\n CustomerList: BasicCustomerInformationModel[] = [];\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n newRFQDetails: any = {};\n productListdropdownData = [];\n customerDrpdnDetails: CustomerDrpdnDetails = new CustomerDrpdnDetails();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n customerData: CustomerDetails;\n activityDetails: ActivityModel[] = Array();\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n 'application/pdf',\n 'text/plain',\n 'text/csv',\n 'application/xml',\n 'text/xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip',\n 'application/x-zip-compressed',\n ];\n\n showEditRFQForInitiator: boolean;\n UserRole: any;\n isTechnicalDiscardVisible: boolean =false;\n isEnquiryFormVisible: boolean = false;\n isRFQVisible: boolean = false;\n isQuoteGenerationVisible: boolean = false;\n isManagementApprovalVisible: boolean = false;\n isSOVisible: boolean = false;\n isOrderAcknowledgementVisible: boolean = false;\n EnquiryConfirmationVisible: boolean = false;\n isSupplychainVisible: boolean = false;\n isAccountsVisible: boolean = false;\n iseditable:boolean=false;\n isOAGenerationVisible: boolean = false;\n isBOMAttachment: boolean;\n isInvoiceAttachment: boolean;\n isPOAttachment: boolean;\n IsRFQDataValid: boolean = true;\n selectedIndexForStatus: any = 1;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n DiscountFromrange:any;\n Discounttorange:any;\n\n @Input()\n showLoader: boolean = false;\n charCode: number;\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n enquirySource: SingleFieldModel[] = [];\n TnCStandardFromDropDown: any[] = [];\n TnCCustomizedFromDropDown: any[] = [];\n TnCCustomizedDropDownForEditRfq1: any[] = [];\n TnCCustomizedDropDownForEditRfq2: any[] = [];\n newCustomTc: any;\n product: any = {};\n isEnquirySubmit: boolean = false;\n charCode1: any;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n dataSource: MatTableDataSource;\n enquiryStatusCode = EnquiryStatusCode;\n\n @ViewChild('stepper') stepper: MatStepper;\n AppGlobals = AppGlobals;\n fileDownloadPath = this.AppGlobals.baseFileDownloadUrl;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n isEnquiryLoaded: boolean;\n role: string;\n isStandardCondition: boolean;\n closeResult: string;\n isCEOApprovalVisible: boolean;\n demoObject: any;\n demoCTCObject: any;\n WinLossDropdownData: any[] = [];\n WinLossDropdownDataForStatus: any;\n isPoValueDisable: boolean;\n isCustomerCommentVisible: any;\n isOAGenerated: boolean;\n isAcceptClick: boolean;\n dataPassed: any;\n dropdownData: any;\n showQuotationLink: boolean;\n userid: string;\n isprocessing: boolean = true;\n rfqattpresent: boolean;\n QuotationDataForPO: any[] = [];\n chosenItem: string = \"1\";\n quoterevcomments: any;\n QGRFQEditable: boolean = false;\n IsActivityDataValid: boolean;\n today: Date;\n fc = new FormControl();\n minDate: NgbDate;\n showEditRFQ: boolean;\n isTantativeDateEditable: boolean;\n tempRFQ: ProductDetails[];\n IsPODataValid: boolean;\n isEditactivity: boolean = true;\n PreviousStatus: number = 0;\n tempfile: any;\n ngbDateParserFormatter: any;\n UpdatePO: boolean = false;\n isPOAttacmentDelete: boolean = false;\n RevisedQuotationFileNameList: string[] = [];\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n StartDate: NgbDate;\n EndDate: NgbDate;\n RoleWiseScreenDisplay: any;\n previousUrl: string = null;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Application: any[] = [];\n\n FinalIndustrySegment: any[] = [];\n FinalSubSegment: any[] = [];\n FinalApplication: any[] = [];\n workflowActionList:any[] = [];\n enquiryStatusList: EnquiryStatusList[]=[];\n workflowId:number;\n @Output() updateLoaderEvent = new EventEmitter();\n UserRolesData:any[]=[];\n roleOfAdmin : any;\n WinLossDataForStatus: any;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private _location: Location,\n private config: NgbDatepickerConfig,\n private modalService: NgbModal, private activeModel: NgbActiveModal,\n private router: Router, private route: ActivatedRoute, private titleService: Title,\n private appConfigService: AppConfigService) {\n this.today = new Date();\n this.minDate = new NgbDate(this.today.getFullYear(), this.today.getMonth() + 1, this.today.getDate());\n this.StartDate = new NgbDate(2018, 1, 1);\n this.EndDate = new NgbDate(this.today.getFullYear() + 1, 12, 31);\n\n\n }\n ngAfterViewInit() {\n this.showLoader = true;\n setTimeout(() => {\n this.isprocessing = false;\n this.chosenItem = \"1\";\n this.showLoader = false;\n }, 2000);\n //this.stepper.selectedIndex = this.selectedIndexForStatus; \n }\n ngOnInit() {\n this.commonService.previousUrl$.subscribe((previousUrl: string) => {\n this.previousUrl = previousUrl;\n });\n\n let tempRoleWiseScreenDisplay = localStorage.getItem(\"WorkFlowRoleWiseScreenAccess\");\n this.RoleWiseScreenDisplay = tempRoleWiseScreenDisplay.split(\",\");\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.commonService.RefreshHeaderFun();\n this.EnquiryObj.EnquiryDetails.EnquiryId = this.route.snapshot.params[\"id\"];\n this.EnquiryObj.EnquiryDetails.EstimatedProductValue = null;\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n //this.getRFQProduct();\n this.getEnquirySourceDetails();\n this.getCustomerList();\n this.getEnquiryDetailsById();\n this.getEnquiryStatus();\n this.getAllWorkFlow();\n this.getUserRoles();\n this.isEnquiryLoaded = false;\n this.getSendbackWorkfow();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isTechnicalDiscardVisible = AppGlobals.QuoteGenearation_Enquiry_TechnicalDiscardArray.filter(x => x.role\n == this.UserRole)[0]?.isEditable;\n\n this.roleOfAdmin = UserRoles.Admin;\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n \n\n toggleAttchments(i) {\n\n this.EnquiryObj.Comments[i].showAttachments = !this.EnquiryObj.Comments[i].showAttachments;\n }\n\n\n getEnquiryDetailsById() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n if (this.EnquiryObj.EnquiryDetails.QuotationRevisionNo != null && this.EnquiryObj.EnquiryDetails.QuotationRevisionNo > 0) {\n this.getRevisedQuotationFileNamelist(this.EnquiryObj.EnquiryDetails.QuotationNumber, this.EnquiryObj.EnquiryDetails.QuotationRevisionNo);\n }\n\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.EnquiryDate).getDate());\n if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate).getDate());\n }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != null) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new NgbDate(new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getFullYear(), new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getMonth() + 1, new Date(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate).getDate());\n }\n this.EnquiryObj.EnqCustomerDetails = data.CustomerDetails;\n this.EnquiryObj.RFQObject = data.RFQObject;\n this.EnquiryObj.CustomerServiceComments_Quotation = data.CustomerServiceComments_Quotation;\n this.EnquiryObj.CustomerServiceComments_Order = data.CustomerServiceComments_Order;\n this.EnquiryObj.SalesDirectorComments_Quotation = data.SalesDirectorComments_Quotation;\n\n this.EnquiryObj.SalesDirectorComments_Order = data.SalesDirectorComments_Order;\n this.EnquiryObj.Comments = data.Comments == undefined ? [] : data.Comments;\n\n data.POValues.forEach(ele => \n {\n if(ele.POQuantity > 0)\n {\n if(ele.ScheduledShipmentDate != null)\n {\n ele.ScheduledShipmentDate = new NgbDate(new Date(ele.ScheduledShipmentDate).getFullYear(), new Date(ele.ScheduledShipmentDate).getMonth() + 1, new Date(ele.ScheduledShipmentDate).getDate());\n }\n this.EnquiryObj.POValues.push(ele);\n // console.log( this.EnquiryObj.POValues );\n }\n });\n\n this.WinLossDropdownData = data.ReasonEnquiryWinLossObj;\n this.WinLossDropdownDataForStatus = this.WinLossDropdownData.filter(x => x.Value == this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus);\n \n if (data.EnquiryDetails.RFQTermsAndCondition == \"Standard\" || data.EnquiryDetails.RFQTermsAndCondition == \"\") {\n\n if (data.TermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Standard\";\n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n } else {\n this.EnquiryObj.TermsAndConditions = data.TermsAndConditions;\n\n }\n this.isStandardCondition = true;\n } else if (data.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n\n if (data.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition = \"Customized\";\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.TnCCustomizedDropDownForEditRfq1 = this.TnCCustomizedFromDropDown;\n } else {\n this.EnquiryObj.CustomTermsAndConditions = data.CustomTermsAndConditions;\n this.TnCCustomizedDropDownForEditRfq2 = data.CustomTermsAndConditions;\n }\n\n this.isStandardCondition = false;\n }\n\n this.activityDetails = data.ActivityDetails;\n this.activityDetails.forEach(element => {\n element.ActivityDate = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n\n //element.ActivityDateISO = new NgbDate(new Date(element.ActivityDate).getFullYear(), new Date(element.ActivityDate).getMonth() + 1, new Date(element.ActivityDate).getDate());\n });\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.EnquiryObj.RFQObject.length == 0) {\n var obj = new ProductDetails();\n this.EnquiryObj.RFQObject.push(obj);\n }\n\n //TO POPULATE A SINGLE ROW ON PAGE INIT\n if (this.activityDetails.length == 0) {\n var obj1 = new ActivityModel();\n obj1.ActivityDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n obj1.uniqueid = this.makeRandom();\n this.activityDetails.push(obj1);\n }\n\n this.role = localStorage.getItem('UserRole');\n \n if(this.EnquiryObj.EnquiryDetails.segment!=undefined)\n {\n this.SubSegment = this.FinalSubSegment.filter(x=>x.SegmentId==this.EnquiryObj.EnquiryDetails.segment);\n this.Application= this.FinalApplication.filter(x=>x.SubSegmentId==this.EnquiryObj.EnquiryDetails.subSegment);\n }\n if(this.EnquiryObj.EnquiryDetails.segment==null|| this.EnquiryObj.EnquiryDetails.subSegment==null || this.EnquiryObj.EnquiryDetails.application==null)\n {\n this.EnquiryObj.EnquiryDetails.segment=undefined;\n this.EnquiryObj.EnquiryDetails.subSegment=undefined;\n this.EnquiryObj.EnquiryDetails.application=undefined;\n }\n\n this.EnquiryObj.EnquiryDetails.IsFetchFromKYC=data.EnquiryDetails.IsFetchFromKYC;\n \n }, error => {\n this.showLoader = false;\n });\n\n }\n\n getRevisedQuotationFileNamelist(QuotationNumber: string, QuotationRevision: number) {\n let QTNNumber = QuotationNumber.replace(\"QTN/\", \"\");\n QTNNumber = QTNNumber.split(\"/\").join(\"_\");\n let filename = \"Quotation_\" + QTNNumber;\n let pdffilename = filename.split('_R')[0];\n for (let i = 0; i < QuotationRevision; i++) {\n if (i == 0) {\n this.RevisedQuotationFileNameList.push(pdffilename + \".pdf\")\n }\n else {\n this.RevisedQuotationFileNameList.push(pdffilename + \"_R\" + i + \".pdf\")\n }\n }\n\n }\n \n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n // getRFQProduct() {\n // this.showLoader = true;\n // this.commonService.GetData(\"Enquiry\", \"GetEnquiryRFQDropdownData\", null).subscribe((data: any) => {\n // this.product = data;\n // this.productDrpdnDetails.MDSOptions = data.MDS;\n // this.productDrpdnDetails.SalesPrice = data.Salesprice;\n // this.productDrpdnDetails.EstimatedProductValue = data.EstimatedProductValue;\n // this.IndustrySegment = data.segment; \n // this.SubSegment = [];\n // this.Application= []; \n // this.FinalIndustrySegment = data.segment;\n // this.FinalSubSegment = data.subSegment;\n // this.FinalApplication= data.application;\n // data.TermsAndConditions.forEach(element => {\n // var obj = new TermsAndCondition();\n // obj.TnCId = element.Id;\n // obj.TnCName = element.Name;\n // obj.TnCValue = element.Value;\n // this.TnCStandardFromDropDown.push(obj);\n // });\n\n // this.demoObject = data.TermsAndConditions;\n\n // this.demoCTCObject = data.CustomTermsAndCondition;\n \n // for (let i = 0; i < data.CustomTermsAndCondition.length; i++) {\n // var obj1 = new CustomTermsAndCondition();\n // obj1.StandardTC = data.CustomTermsAndCondition[i].StandardTC.Id;\n // obj1.StandardTCName = data.CustomTermsAndCondition[i].StandardTC.Name;\n // // this.standardTC.push(data.CustomTermsAndCondition[i].StandardTC);\n\n // for (let j = 0; j < data.CustomTermsAndCondition[i].CustomValues.length; j++) {\n // obj1.CustomValues.push(data.CustomTermsAndCondition[i].CustomValues[j]);\n // }\n // this.TnCCustomizedFromDropDown.push(obj1);\n // }\n\n // this.demoCTCObject = data.CustomTermsAndCondition;\n \n // //this.showLoader = false;\n // });\n // }\n\n custtermscond: any = [];\n OnCustomValueChange(index, id) {\n let CustTcObj: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj.CustTCId = id;\n \n this.custtermscond.push(CustTcObj)\n // console.log(this.custtermscond);\n }\n\n \n OnCustomValueChange1(index, id) {\n let CustTcObj1: CustomTermsAndCondition = new CustomTermsAndCondition();\n CustTcObj1.StandardTC = this.EnquiryObj.CustomTermsAndConditions[index].StandardTC;\n CustTcObj1.StandardTCName = this.EnquiryObj.CustomTermsAndConditions[index].StandardTCName;\n CustTcObj1.CustValue = this.EnquiryObj.CustomTermsAndConditions[index].CustomValues.find(x => x.Id == id).Name;\n CustTcObj1.CustTCId = id;\n \n let newCustomiseArr = this.EnquiryObj.CustomTermsAndConditions\n this.newCustomTc = newCustomiseArr.map((item,index)=>{\n \n return {\n ...item,\n CustTCId : item.StandardTC == CustTcObj1.StandardTC ? Number(CustTcObj1.CustTCId) :Number(item.CustTCId) ,\n CustValue :item.StandardTC == CustTcObj1.StandardTC ? CustTcObj1.CustValue: item.CustValue\n }\n \n });\n this.EnquiryObj.CustomTermsAndConditions = this.newCustomTc;\n }\n \n\n getCustomerList() {\n this.showLoader = true;\n this.commonService.GetData(\"Customer\", \"GetAll\", null).subscribe((data: any) => {\n this.CustomerList = data;\n\n this.showLoader = false;\n });\n }\n\n getEnquirySourceDetails() {\n this.showLoader = true;\n this.commonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.showLoader = false;\n });\n }\n\n getProductDetails() {\n this.showLoader = true;\n this.commonService.GetData(\"Product\", \"GetRFQProductDetails\", null).subscribe((data: any) => {\n this.CustomerList = data;\n //this.showLoader = false;\n });\n }\n\n\n AvoidSpace(event: any) {\n if ((event.which === 46 || event.which === 32) && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n\n openCSComments() {\n this.isCustomerCommentVisible = !this.isCustomerCommentVisible;\n }\n\n\n backtoList() {\n // this._location.back();\n if (this.previousUrl == null || this.previousUrl == \"\" || this.previousUrl == undefined) {\n this.router.navigate(['/Enquiry']);\n }\n else if (this.previousUrl.includes(\"PendingEnquiry\")) {\n this.router.navigate(['/PendingEnquiry']);\n }\n else {\n this.router.navigate(['/Enquiry']);\n }\n\n }\n\n\n setTermsAndConditions() {\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown; \n this.EnquiryObj.TermsAndConditions.forEach(element => { \n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0]; \n element.TnCValue = tnc?.Value; \n });\n } else { \n this.isStandardCondition = false; \n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n });\n \n }\n }\n\n setTermsAndConditionsEditRfq() {\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard') {\n this.isStandardCondition = true;\n //this.EnquiryObj.TnCObject = this.demoObject; \n this.EnquiryObj.TermsAndConditions = this.TnCStandardFromDropDown;\n\n this.EnquiryObj.TermsAndConditions.forEach(element => {\n var tnc = this.demoObject.filter(x => x.Id == element.TnCId)[0];\n element.TnCValue = tnc?.Value;\n \n });\n } \n else {\n this.isStandardCondition = false;\n\n if (this.EnquiryObj.CustomTermsAndConditions.length == 0) {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedFromDropDown;\n\n } else {\n this.EnquiryObj.CustomTermsAndConditions = this.TnCCustomizedDropDownForEditRfq2\n }\n\n this.EnquiryObj.CustomTermsAndConditions.forEach(element => {\n var ctnc = this.demoCTCObject.filter(x => x.StandardTC.Id == element.StandardTC)[0];\n element.CustomValues = ctnc?.CustomValues;\n\n });\n }\n }\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].isMDSAttachment = false;\n break;\n case \"itcfile\":\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = false;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].isWeissAttachment = false;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.isBOMAttachment = false;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.isInvoiceAttachment = false;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].isActivityAttachment = false;\n break;\n }\n event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n //CHECK IF THE FILE NAME IS NOT TOO BIG\n\n switch (event.target.name) {\n case \"mdsfile\":\n this.EnquiryObj.RFQObject[index].MDSAttachment = [];\n this.EnquiryObj.RFQObject[index].MDSAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isMDSAttachment = true;\n break;\n case \"itcfile\":\n if (!(file.type == 'application/xml' || file.type == 'text/xml')) {\n this.toastr.warning(\"Only xml file supported!\");\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].isITCAttachment = false;\n event.target.value = null;\n isValidFile = false;\n }\n else {\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: 'Please make sure that the entered Product and ITC Product are being matched. Do you want to continue?'\n // }\n // });\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n this.EnquiryObj.RFQObject[index].ITCAttachment = [];\n this.EnquiryObj.RFQObject[index].ITCAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isITCAttachment = true;\n // }\n // });\n\n }\n break;\n case \"customerfile\":\n this.EnquiryObj.RFQObject[index].CustomerAttachment = [];\n this.EnquiryObj.RFQObject[index].CustomerAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isCustomerAttachment = true;\n break;\n case \"weissfile\":\n this.EnquiryObj.RFQObject[index].WeissAttachment = [];\n this.EnquiryObj.RFQObject[index].WeissAttachment.push(file);\n this.EnquiryObj.RFQObject[index].isWeissAttachment = true;\n break;\n case \"bomfile\":\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOMAttachment.push(file);\n this.isBOMAttachment = true;\n break;\n case \"ecfile\":\n this.EnquiryObj.EnquiryDetails.POAttchments = [];\n this.EnquiryObj.EnquiryDetails.POAttchments.push(file);\n this.isPOAttachment = true;\n break;\n case \"accfile\":\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = [];\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment.push(file);\n this.isInvoiceAttachment = true;\n break;\n case \"activityfile\":\n this.activityDetails[index].Attachment = [];\n this.activityDetails[index].Attachment.push(file);\n this.activityDetails[index].isActivityAttachment = true;\n break;\n }\n }\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Invalid file attached!\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n switch (event.target.name) {\n case \"quotefiles\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"mafile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"ceofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n case \"maofile\":\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments == undefined || this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length == 0) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments = [];\n }\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.push(file);\n break;\n }\n }\n }\n }\n\n removeQuoteGenAttachments(index) {\n this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.splice(index, 1);\n this.myInputVariable.nativeElement.value = \"\";\n\n }\n removeQuoteGenAttachmentsDB(index) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath);\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FileName = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray[index].FilePath = null;\n this.EnquiryObj.EnquiryDetails.QuoteAttachmentsArray.splice(index, 1);\n }\n removeBOMAttachments(flag) {\n if (flag == 1) {\n this.EnquiryObj.RemoveFiles.push(this.EnquiryObj.EnquiryDetails.BOM_filepath);\n }\n this.isBOMAttachment = false;\n this.EnquiryObj.EnquiryDetails.BOMAttachment = [];\n this.EnquiryObj.EnquiryDetails.BOM_filename = null;\n this.EnquiryObj.EnquiryDetails.BOM_filepath = null;\n }\n\n removeInvoiceAttachments() {\n this.isInvoiceAttachment = false;\n this.myInputVariable.nativeElement.value = \"\";\n this.EnquiryObj.EnquiryDetails.InvoiceAttachment = undefined;\n }\n\n\n\n GenerateOANumber() {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Once OA Number Generated, can't be altered. Do you want to continue?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'GenerateOANo', queryString).subscribe((data: any) => {\n\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = data;\n this.isOAGenerated = true;\n this.showLoader = false;\n this.toastr.success('Order Acknowledgement Number generated successfully!');\n\n }, error => {\n this.EnquiryObj.EnquiryDetails.OrdAcknowledgeNumber = undefined;\n this.toastr.error('Failed to Order Acknowledgement Number!');\n this.isOAGenerated = false;\n this.showLoader = false;\n });\n }\n });\n }\n\n \n\n\n SetStatus(rule, myform: any) {\n this.PreviousStatus = this.EnquiryObj.EnquiryDetails.Status;\n this.EnquiryObj.EnquiryDetails.Status = rule[0].workflowNextStatusId;\n this.AddEnquiry();\n\n }\n\n AddEnquiry() {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSaveAsDraft')[0]?.Pk_Id\n || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbySalesEngg')[0]?.Pk_Id) {\n \n this.checkRFQGridValidation();\n if (!this.IsRFQDataValid) {\n return;\n }\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Standard')\n {\n let tnc = this.EnquiryObj.TermsAndConditions.filter(x => (x.TnCValue == undefined || x.TnCValue == null || x.TnCValue == ''));\n if (tnc.length > 0) {\n return;\n }\n this.EnquiryObj.CustomTermsAndConditions=null;\n }\n \n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == 'Customized')\n {\n let ctnc = this.EnquiryObj.CustomTermsAndConditions.filter(x => (x.CustomValues == undefined || x.CustomValues == null))\n if (ctnc.length > 0) {\n return;\n } \n this.EnquiryObj.TermsAndConditions=null;\n } \n \n \n }\n //Dont proceed if the BOM attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='SendBOMandProposal')[0]?.Pk_Id || this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationSenttoCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQsentbyL1toL2')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.BOMAttachment == null || this.EnquiryObj.EnquiryDetails.BOMAttachment == undefined || this.EnquiryObj.EnquiryDetails.BOMAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.BOM_filename == null || this.EnquiryObj.EnquiryDetails.BOM_filename == undefined || this.EnquiryObj.EnquiryDetails.BOM_filename == \"\")) {\n this.toastr.info('BOM attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Po attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.PO_filename == null || this.EnquiryObj.EnquiryDetails.PO_filename == undefined || this.EnquiryObj.EnquiryDetails.PO_filename == \"\")) {\n this.toastr.info('PO attachment is required.');\n return;\n }\n }\n\n // //Dont proceed if the Invoice attachment is not present\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.InvoiceAttachment == null || this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined || this.EnquiryObj.EnquiryDetails.InvoiceAttachment.length == 0) &&\n (this.EnquiryObj.EnquiryDetails.Invoice_filename == null || this.EnquiryObj.EnquiryDetails.Invoice_filename == undefined || this.EnquiryObj.EnquiryDetails.Invoice_filename == \"\")) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id;\n this.toastr.info('Invoice attachment is required.');\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryOrderConfirmedbySalesEngg')[0]?.Pk_Id) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length==0)) {\n return;\n }\n }\n\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n\n }\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n if (this.isPOAttacmentDelete) {\n if ((this.EnquiryObj.EnquiryDetails.POAttchments == undefined || this.EnquiryObj.EnquiryDetails.POAttchments == null || this.EnquiryObj.EnquiryDetails.POAttchments.length == 0)) {\n return;\n }\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='AccountsConfirmInvoiceNo')[0]?.Pk_Id) {\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment == undefined) {\n this.EnquiryObj.EnquiryDetails.Status = this.enquiryStatusList.filter(x=>x.Status=='MaterialReadyForDispatch')[0]?.Pk_Id\n return;\n }\n }\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n let sum: number = 0;\n this.EnquiryObj.POValues.forEach(element => {\n element.ProductModelPOValue = (element.ProductModelPOValue == null || element.ProductModelPOValue == '' || element.ProductModelPOValue == undefined)\n ? '0' : element.ProductModelPOValue;\n sum = sum + parseInt(element.ProductModelPOValue);\n element.QUotationValueValidation = false;\n });\n if (sum.toString() != this.EnquiryObj.EnquiryDetails.POValue) {\n document.getElementById(\"povalue0\").focus();\n this.toastr.info('Total PO value and product wise PO values are not matching.');\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n this.UpdatePO = false;\n return;\n }\n }\n\n setTimeout(() => this.openPopup());\n }\n openPopup() {\n var confimrmsg = this.AppGlobals.successMessages.filter(x => x.id == this.EnquiryObj.EnquiryDetails.Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n // this.showLoader = true;\n this.updateLoaderEvent.emit(true);\n const frmData = new FormData();\n this.EnquiryObj.RFQObject.forEach(item => {\n item.IsRowDeleted = false;\n });\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day))).toDateString();\n }\n // if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n // this.EnquiryObj.EnquiryDetails.TentativeDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day))).toDateString();\n // }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDateISO = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day))).toDateString();\n }\n if (this.EnquiryObj.EnquiryDetails.EnquiryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.EnquiryDate.year, this.EnquiryObj.EnquiryDetails.EnquiryDate.month, this.EnquiryObj.EnquiryDetails.EnquiryDate.day)));\n }\n // if (this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate != undefined) {\n // this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.year, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.month, this.EnquiryObj.EnquiryDetails.TentativeDeliveryDate.day)));\n // }\n if (this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate != undefined) {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = new Date(this.convertDate(new NgbDate(this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.year, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.month, this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate.day)));\n }\n\n if(this.EnquiryObj.POValues.length > 0)\n {\n this.EnquiryObj.POValues.forEach(ele => {\n ele.ScheduledShipmentDate = new Date(this.convertDate(new NgbDate(ele.ScheduledShipmentDate.year, ele.ScheduledShipmentDate.month, ele.ScheduledShipmentDate.day))).toDateString();\n });\n }\n\n if (this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition == \"Customized\") {\n this.EnquiryObj.TermsAndConditions = null;\n \n if(this.QGRFQEditable == true)\n {\n this.EnquiryObj.CustomTermsAndConditions;\n \n }else{\n this.EnquiryObj.CustomTermsAndConditions = this.custtermscond;\n }\n }\n \n let EnquiryObj = JSON.stringify(this.EnquiryObj);\n frmData.append(\"EnquiryModel\", EnquiryObj);\n\n // this.showLoader = true;\n //this.updateLoaderEvent.emit(true);\n if (this.EnquiryObj.EnquiryDetails.QuoteGenAttachments != null) {\n for (let i = 0; i < this.EnquiryObj.EnquiryDetails.QuoteGenAttachments.length; i++) {\n frmData.append(\"QuoteGenAttachments[\" + i + \"]\", this.EnquiryObj.EnquiryDetails.QuoteGenAttachments[i]);\n }\n }\n for (let i = 0; i < this.EnquiryObj.RFQObject.length; i++) {\n if (this.EnquiryObj.RFQObject[i].MDSAttachment != undefined) {\n frmData.append(\"MDSAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].MDSAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].ITCAttachment != undefined) {\n frmData.append(\"ITCAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].ITCAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].CustomerAttachment != undefined) {\n frmData.append(\"CustomerAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].CustomerAttachment[0]);\n }\n if (this.EnquiryObj.RFQObject[i].WeissAttachment != undefined) {\n frmData.append(\"WeissAttachment[\" + i + \"]\", this.EnquiryObj.RFQObject[i].WeissAttachment[0]);\n }\n }\n if (this.EnquiryObj.EnquiryDetails.BOMAttachment) {\n frmData.append(\"BOMAttachment\", this.EnquiryObj.EnquiryDetails.BOMAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.InvoiceAttachment) {\n frmData.append(\"InvoiceAttachment\", this.EnquiryObj.EnquiryDetails.InvoiceAttachment[0]);\n }\n if (this.EnquiryObj.EnquiryDetails.POAttchments) {\n frmData.append(\"POAttchments\", this.EnquiryObj.EnquiryDetails.POAttchments[0]);\n }\n \n this.commonService.PostData(\"Enquiry\", \"Add\", frmData, null).subscribe((data: any) => {\n this.customerDrpdnDetails = data;\n // this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n \n // if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='EnquiryAdded')[0]?.Pk_Id.SupplyChainConfirmedDeliveryDate) {\n // this.generateOAPDF();\n // }\n\t // else {\n // this.showLoader = false;\n this.updateLoaderEvent.emit(false);\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQAcceptedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL1')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL2')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyL3')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='RFQSubmittedbyCustomerService')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OANoGenerated')[0]?.Pk_Id) {\n // this.router.navigate(['/EditViewEnquiry/' + this.EnquiryObj.EnquiryDetails.EnquiryId]);\n // this.toastr.success(confimrmsg.successmsg);\n window.location.reload();\n } else {\n // this.showLoader = false;\n this.router.navigate(['/Enquiry']);\n this.toastr.success(confimrmsg.successmsg);\n //this.backtoList();\n }\n //}\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n //this.showLoader = false;\n this.updateLoaderEvent.emit(false);\n });\n } else {\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='QuotationRevision')[0]?.Pk_Id) {\n this.chosenItem = \"2\";\n this.quoterevcomments = this.EnquiryObj.EnquiryDetails.Comments;\n this.EnquiryObj.EnquiryDetails.Comments = \"\";\n }\n else {\n\n if (this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrdersentforMngmtApproval_SalesDirector')[0]?.Pk_Id ||\n this.EnquiryObj.EnquiryDetails.Status == this.enquiryStatusList.filter(x=>x.Status=='OrderConfirmedbyCustomerServiceSendSO')[0]?.Pk_Id) {\n this.UpdatePO = false;\n }\n if (this.PreviousStatus > 0) {\n this.EnquiryObj.EnquiryDetails.Status = this.PreviousStatus;\n }\n\n }\n\n }\n });\n\n }\n\n \n\n\n checkRFQGridValidation() {\n var inde = 0;\n this.IsRFQDataValid = true;\n this.EnquiryObj.RFQObject.forEach((element, index) => {\n if (element.ProductLine == undefined || element.ProductLine == null || element.ProductLine == 0) {\n document.getElementById(\"productline\" + index).focus();\n element.ProductLineValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n document.getElementById(\"productmodel\" + index).focus();\n element.ProductModelValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n document.getElementById(\"quantity\" + index).focus();\n element.QuantityValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.MDSOption == undefined || element.MDSOption == null || element.MDSOption == 0) {\n document.getElementById(\"mdsoption\" + index).focus();\n element.MDSOptionValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesPrice == undefined || element.SalesPrice == null || element.SalesPrice == 0) {\n document.getElementById(\"salesprice\" + index).focus();\n element.SalesPriceValidation = true;\n this.IsRFQDataValid = false;\n }\n if (element.SalesDiscount == undefined || element.SalesDiscount == null) {\n document.getElementById(\"salesdiscount\" + index).focus();\n element.SalesDiscountValidation = true;\n this.IsRFQDataValid = false;\n }\n\n });\n\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n\n\n downloadPDF() {\n const url = this.QuotationPdfGenerationHostPath+ 'uploads/pdf/' + this.EnquiryObj.EnquiryDetails.QuotationPdf_filename;\n window.open(url, \"download\");\n }\n\n DownloadPDFfromServer(Filename: any) {\n this.commonService.gereatePDF('Enquiry', 'DownloadPDF', Filename).subscribe((data: any) => {\n\n importedSaveAs(data, Filename);\n });\n }\n checkattachment() {\n this.rfqattpresent = false;\n this.EnquiryObj.RFQObject.forEach(element => {\n if (!(element.MDS_filename == null || element.MDS_filename == undefined || element.MDS_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.ITC_filename == null || element.ITC_filename == undefined || element.ITC_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Weiss_filename == null || element.Weiss_filename == undefined || element.Weiss_filename == '')) {\n this.rfqattpresent = true;\n }\n if (!(element.Customer_filename == null || element.Customer_filename == undefined || element.Customer_filename == '')) {\n this.rfqattpresent = true;\n }\n });\n }\n DownloadAllAttachments() {\n this.checkattachment();\n if (!this.rfqattpresent) {\n this.toastr.info('No attachment present.');\n return;\n }\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n this.commonService.GetData('Enquiry', 'Download', queryString).subscribe((data: any) => {\n var url = AppGlobals.ZipDownloadUrl + data + '.zip';\n window.open(url, \"_blank\");\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n\n\n public saveAsFile(pdfurl: any, fileName: string): void {\n //const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(this.fileDownloadPath + pdfurl, fileName);\n }\n\n onSelectDate(date: NgbDateStruct, dateType: string) {\n if (date != null) {\n if (dateType == 'RequestedDeliveryDate') {\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = date;\n this.EnquiryObj.EnquiryDetails.RequestedDeliveryDate = this.ngbDateParserFormatter.format(date);\n }\n else if (dateType == 'EnquiryDate') {\n this.EnquiryObj.EnquiryDetails.EnquiryDate = date;\n this.EnquiryObj.EnquiryDetails.EnquiryDate = this.ngbDateParserFormatter.format(date);\n }\n\n }\n }\n\n\n generateOAPDF() {\n this.showLoader = true;\n let queryString = \"\";\n\n let url = AppGlobals.baseAppUrl + \"PrintPdf/GenerateOAPdf?EnquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n queryString += \"Url=\" + url;\n queryString += \"&EnquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId;\n\n this.commonService.GetData('Enquiry', 'GenerateOAPdf', queryString).subscribe((data: any) => {\n let res = data;\n this.toastr.success('OA Generated Successfully!');\n window.location.reload();\n this.showLoader = false;\n }, error => {\n this.toastr.error('OA not generated successfully!');\n this.showLoader = false;\n });\n }\n\n getAllWorkFlow() {\n this.commonService.GetData(\"Workflow\", \"GetAll\", null).subscribe((data: any) => {\n \n if(data!=null){\n var workflowData = data;\n this.workflowId=workflowData.filter(x=>x.document_type_code == \"SUPPLY_CHAIN\")[0].workflow_id;\n this.getWorkflowActions(this.workflowId);\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getWorkflowActions(workflowId:any)\n { \n let queryString = \"\";\n queryString = \"enquiryId=\" + this.EnquiryObj.EnquiryDetails.EnquiryId +\"&workflowId=\" + workflowId ;\n\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetTransitionRulesByStatus\",queryString).subscribe((data: any) => {\n this.workflowActionList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n getEnquiryStatus()\n {\n this.commonService.GetData(\"Enquiry\",\"GetEnquiryStatus\", null).subscribe((data: any) => {\n this.enquiryStatusList=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n OnWorkflowAction(myform9:NgForm,workflowActionId:number)\n { \n var rule= this.workflowActionList.filter(x=>x.workflowActionId==workflowActionId);\n \n myform9.control.markAllAsTouched();\n if(myform9.invalid)\n {\n this.toastr.error(\"Please fill required information\");\n return;\n } \n this.SetStatus(rule,myform9); \n }\n\n getUserRoles(){\n this.commonService.GetData(\"Account\", \"GetAll\", null).subscribe((data: any) => {\n this.UserRolesData = data;\n \n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n \n sendbackRules:EnquirySendBack[]=[];\n getSendbackWorkfow()\n {\n this.updateLoaderEvent.emit(true);\n this.commonService.GetData(\"EnquiryWorkflowTransitionRules\",\"GetWorkflowSendbackRule\", null).subscribe((data: any) => {\n this.sendbackRules=data;\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n }\n\n rule:EnquirySendBack;\n SendBack()\n { \n var quotationRule= this.sendbackRules.filter(x=>x.WorkflowId==this.workflowId);\n this.rule=quotationRule[0];\n\n const modalRef = this.modalService.open(SendBackCommentComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var sendBackObj = {\n EnquiryId: this.EnquiryObj.EnquiryDetails.EnquiryId,\n workflowId: this.workflowId,\n finalrule: this.rule\n }\n modalRef.componentInstance.sendBackObj = sendBackObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n}\n","\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Supply Chain\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerName}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.IndustrySegment}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.CustomerType}}\n
    \n
    \n \n
    \n {{EnquiryObj.EnqCustomerDetails.Region}}\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.RFQTermsAndCondition}}\n
    \n
    \n \n
    \n €\n {{EnquiryObj.EnquiryDetails.FinalAmount |\n indianCurrency}}/-\n
    \n
    \n
    \n \n
    \n {{EnquiryObj.EnquiryDetails.KindAttention}}\n
    \n
    \n \n \n
    \n
    \n \n
    \n € {{EnquiryObj.EnquiryDetails.POValue |\n indianCurrency}}/-\n
    \n
    \n \n \n\n
    \n\n
    \n \n \n
    \n \n
    \n \n
    \n\n\n
    \n\n
    \n \n
    \n \n\n
    \n
    \n Type is\n required\n
    \n
    \n
    \n\n
    \n\n\n \n
    \n
    \n Upload\n \n
    \n
    \n {{AppGlobals.supportedFileFormatsForOtherMultipleAttachments}}\n 0\">\n
      \n \n
    • \n {{item.name}}  \n
    • \n \n
    \n\n \n
    \n\n
    \n\n
    \n\n
    \n \n \n \n Product Model\n PO Quantity\n Scheduled Shipment Date *\n \n \n \n \n\n \n {{item.ProductModelName}}\n \n {{item.POQuantity}}\n \n \n
    \n \n
    \n \n \n \n
    \n
    \n\n \n \n \n \n
    \n\n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is\n required\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n    \n \n\n \n    \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n ","import { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { EnquiryStatus } from 'src/app/EnquiryStatus';\nimport { EnquiryDetailsModel } from 'src/app/Model/EnquiryModel';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { Router } from '@angular/router';\nimport { NgForm } from '@angular/forms';\n\n\n@Component({\n selector: 'app-technical-discard',\n templateUrl: './technical-discard.component.html',\n styleUrls: ['./technical-discard.component.scss']\n})\nexport class TechnicalDiscardComponent implements OnInit {\n\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n\n @Input() showLoader: boolean = false;\n @Input() enquiryDataObj;\n //technicalDiscardReasonList: any;\n technicalDiscardReasonList: SingleFieldModel[] = [];\n enqId: any;\n selectedTCReason: any = 0;\n technicalDiscardReasonValidation: boolean;\n role: string;\n enquiryStatus = EnquiryStatus;\n btnforL1: boolean = false;\n btnforL2: boolean = false;\n btnforL3: boolean = false;\n enqNextStatusId:any;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n\n constructor(private toastr: ToastrService, private activeModal: NgbActiveModal,\n private commonService: CommonService, private modalService: NgbModal, public dialog: MatDialog,\n private router: Router) { }\n\n ngOnInit(): void {\n this.role = localStorage.getItem(\"UserRole\");\n // console.log(\"openTechnicalDiscardPopup data --->\", this.enquiryDataObj);\n this.enqId = this.enquiryDataObj.EnquiryId;\n this.enqNextStatusId= this.enquiryDataObj.EnquiryStatusId;\n this.getAllTechnicalDiscardReason();\n this.getEnquiryDetailsById(this.enqId);\n this.ButtonsAccess();\n }\n\n\n // getAllTechnicalDiscardReason() {\n // this.showLoader = true;\n\n // this.commonService.GetData('Enquiry', 'GetTechnicalDiscardDropdownData', null).subscribe((data: any) => {\n // this.technicalDiscardReasonList = data.TechnicalDiscard;\n // // console.log(\"technicalDiscardReasonList\", this.technicalDiscardReasonList);\n // this.showLoader = false;\n // }, error => {\n // this.toastr.error(\"Failed to load data!\");\n // this.showLoader = false;\n // });\n\n // }\n\n getAllTechnicalDiscardReason() {\n this.showLoader = true;\n let reasoncode = 'TECH_CAT'\n let queryString = \"\";\n queryString = \"reasonCatCode=\" + reasoncode;\n this.commonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReason\", queryString).subscribe((data: any) => {\n this.technicalDiscardReasonList = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getEnquiryDetailsById(id) {\n let queryString = \"\";\n queryString = \"id=\" + id;\n this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n if(this.EnquiryObj.EnquiryDetails.TechnicalDiscardId==null)\n {\n this.EnquiryObj.EnquiryDetails.TechnicalDiscardId=undefined;\n }\n },error => {\n this.showLoader = false;\n });\n }\n\n onTCReasonChange(id) {\n this.technicalDiscardReasonValidation = false;\n this.selectedTCReason = id;\n console.log(\"id of selected tc--->\", this.selectedTCReason);\n\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n ButtonsAccess() {\n //this.isQuotationEditable = true;\n /**************************Admin Access******************************* */\n if (this.role == UserRoles.Admin) {\n if (this.enquiryDataObj.PendingAtRoleId == UserRoles.L1) {\n this.btnforL1 = true;\n }\n if (this.enquiryDataObj.PendingAtRoleId == UserRoles.L2) {\n this.btnforL2 = true;\n }\n if (this.enquiryDataObj.PendingAtRoleId == UserRoles.L3) {\n this.btnforL3 = true;\n }\n\n }\n /**************************End Admin Access******************************* */\n if (this.role == UserRoles.L1) {\n this.btnforL1 = true;\n }\n if (this.role == UserRoles.L2) {\n this.btnforL2 = true;\n }\n if (this.role == UserRoles.L3) {\n this.btnforL3 = true;\n }\n }\n\n EnquiryTechnicalDiscard(technicalDiscardForm : NgForm) {\n \n // if (this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason == undefined || this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason == null ||\n // this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason == 0) {\n // return;\n // }\n\n technicalDiscardForm.control.markAllAsTouched();\n if (technicalDiscardForm.invalid) {\n this.toastr.error(\"Please fill required information\");\n return;\n }\n\n var technicaldiscardclosereasondetails = this.technicalDiscardReasonList.filter(x => x.Id == this.EnquiryObj.EnquiryDetails.EnquiryConfirmReason)\n this.EnquiryObj.EnquiryDetails.EnquiryConfirmStatus = technicaldiscardclosereasondetails[0].Name; \n this.EnquiryObj.EnquiryDetails.ReasonCategory = technicaldiscardclosereasondetails[0].ReasonCategoryId;\n\n this.EnquiryObj.EnquiryDetails.Status = this.enqNextStatusId;\n var confimrmsg = AppGlobals.successMessages.filter(x => x.id == this.enqNextStatusId)[0];\n this.showLoader = true;\n let enquiryDetails = JSON.stringify(this.EnquiryObj);\n const frmData = new FormData();\n frmData.append(\"enquiryDetails\", enquiryDetails);\n\n this.commonService.PostData(\"Enquiry\", \"TechnicalDiscardUpdate\", frmData, null).subscribe((data: any) => {\n this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n\n this.showLoader = false;\n this.toastr.success(confimrmsg.successmsg);\n this.router.navigate(['/Enquiry']);\n this.closePopup();\n\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.showLoader = false;\n });\n\n // const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n // maxWidth: \"400px\",\n // data: {\n // title: \"Are you sure?\",\n // message: confimrmsg.confirmmsg\n // }\n // });\n\n // dialogRef.afterClosed().subscribe(dialogResult => {\n // if (dialogResult) {\n // this.showLoader = true;\n\n // let enquiryDetails = JSON.stringify(this.EnquiryObj);\n // const frmData = new FormData();\n // frmData.append(\"enquiryDetails\", enquiryDetails);\n\n // this.commonService.PostData(\"Enquiry\", \"TechnicalDiscardUpdate\", frmData, null).subscribe((data: any) => {\n // this.EnquiryObj.EnquiryDetails.EnquiryId = data;\n\n // this.showLoader = false;\n // this.toastr.success(confimrmsg.successmsg);\n // this.router.navigate(['/Enquiry']);\n // this.closePopup();\n\n // }, error => {\n // this.toastr.error(confimrmsg.errormsg);\n // this.showLoader = false;\n // });\n // }\n // });\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n}\n","\n
    \n \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n

    \n Enquiry Technical Discard\n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Technical Discard reason is required\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is required\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n \n
    \n
    ","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductLine } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { AlertsModel } from 'src/app/Model/AlertsModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-alerts-details',\n templateUrl: './alerts-details.component.html',\n styleUrls: ['./alerts-details.component.scss']\n})\nexport class AlertsDetailsComponent implements OnInit {\n\n displayedColumns: string[] = ['EnquiryStatus','First_Rem','First_Rem_ToWhom','Second_Rem','Second_Rem_ToWhom','Third_Rem','Third_Rem_ToWhom','Escalation','Escalation_ToWhom','CC_Rem_toWhom', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n UserRole: any;\n isAlertsEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title, private route: ActivatedRoute,private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService) {\n }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n\n // this.isAlertsEditable = AppGlobals.AlertsAccessEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n\n this.GetAllAlertsDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllAlertsDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllAlertsDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.CommonService.GetData('Alerts', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllAlertsDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active == 'EnquiryStatus1'?'EnquiryStatus': event.active;\n this.GetAllAlertsDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllAlertsDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n\n UpdateAlertStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this alert?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('Alerts', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Alert deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this alert because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate alert!\");\n }\n this.GetAllAlertsDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate alert!\");\n this.GetAllAlertsDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllAlertsDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this alert?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('Alerts', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Alert activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate alert!\");\n }\n this.GetAllAlertsDetails();\n }, error => {\n this.toastr.error(\"Failed to activate alert!\");\n this.GetAllAlertsDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllAlertsDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isAlertsEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isAlertsManagement')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Reminder Configuration\n

    \n
    \n
    \n
    \n
      \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n
    \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n\n \n \n\n\n
    Enquiry Status {{row.EnquiryStatus}} Enquiry StatusReminder (In Days) {{row.First_Rem}} To Whom {{row.First_Rem_ToWhom}} Reminder (In Days) {{row.Second_Rem}} To Whom {{row.Second_Rem_ToWhom}} Reminder (In Days) {{row.Third_Rem}} To Whom {{row.Third_Rem_ToWhom}} Reminder (In Days) {{row.Escalation}} To Whom {{row.Escalation_ToWhom}} CC {{row.CC_Rem_toWhom}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n Action First Reminder Second Reminder Third Reminder Escalation
    \n No records found
    \n
    \n \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AlertsModel } from 'src/app/Model/AlertsModel';\nimport { first } from '@amcharts/amcharts4/.internal/core/utils/Array';\nimport { EnquiryStatus } from 'src/app/EnquiryStatus';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-alerts',\n templateUrl: './edit-view-alerts.component.html',\n styleUrls: ['./edit-view-alerts.component.scss']\n})\nexport class EditViewAlertsComponent implements OnInit {\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n AlertsObject: AlertsModel = new AlertsModel();\n charCode: any;\n UserRole: any;\n isAlertsEditable: boolean = false;\n @Input()\n showLoader: boolean = false;\n Roles: any[] = [];\n enquiryStatus = EnquiryStatus;\n AppRoles = UserRoles;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isAlertsEditable = AppGlobals.AlertsAccessEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.AlertsObject.Pk_Id = this.route.snapshot.params[\"id\"];\n this.getAlertsIdDetailsById(this.AlertsObject.Pk_Id);\n\n }\n\n getAlertsIdDetailsById(AlertsId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + AlertsId;\n\n this.CommonService.GetData('Alerts', 'GetById', queryString).subscribe((data: any) => {\n this.AlertsObject = data;\n\n\n this.Roles = data.Roles;\n this.AlertsObject.First_Rem_ToWhomList.forEach(towhom => {\n if (towhom != null) {\n this.Roles.forEach(el => {\n if (el.Id == towhom) {\n this.AlertsObject.First_Rem_ToWhomList = el.Name;\n }\n });\n }\n });\n this.AlertsObject.Second_Rem_ToWhomList.forEach(towhom => {\n if (towhom != null) {\n this.Roles.forEach(el => {\n if (el.Id == towhom) {\n this.AlertsObject.Second_Rem_ToWhomList = el.Name;\n }\n });\n }\n });\n this.AlertsObject.Third_Rem_ToWhomList.forEach(towhom => {\n if (towhom != null) {\n this.Roles.forEach(el => {\n if (el.Id == towhom) {\n this.AlertsObject.Third_Rem_ToWhomList = el.Name;\n }\n });\n }\n });\n this.AlertsObject.Escalation_ToWhomList.forEach(towhom => {\n if (towhom != null) {\n this.Roles.forEach(el => {\n if (el.Id == towhom) {\n this.AlertsObject.Escalation_ToWhomList = el.Name;\n }\n });\n }\n });\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n // getAllRoles() {\n // this.showLoader = true;\n // this.CommonService.GetData('Account', 'GetAllRoles', null).subscribe((data: any) => {\n // this.Roles = data;\n // this.showLoader = false;\n // }, error => {\n // this.toastr.error(\"Failed to load data!\");\n // this.showLoader = false;\n // });\n\n // }\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Alerts - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Alerts - ECOTECH\");\n }\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n OnReminderDaysChange(frm: any, fieldname: string) {\n var First_Rem = Number(this.AlertsObject.First_Rem);\n var Second_Rem = Number(this.AlertsObject.Second_Rem);\n var Third_Rem = Number(this.AlertsObject.Third_Rem);\n var Escalation = Number(this.AlertsObject.Escalation);\n\n var firstfield_seterror: boolean = false;\n var secondfield_seterror: boolean = false;\n var thirdfield_seterror: boolean = false;\n var escalationfield_seterror: boolean = false;\n\n if (First_Rem > 0) {\n\n if (First_Rem >= Second_Rem || First_Rem >= Third_Rem || First_Rem >= Escalation) {\n firstfield_seterror = true;\n }\n\n if (firstfield_seterror == true) {\n frm.controls['first_rem_nm'].setErrors({ RemValidation: true });\n }\n else {\n frm.controls['first_rem_nm'].setErrors(null);\n }\n }\n\n if (Second_Rem > 0) {\n\n if (First_Rem >= Second_Rem || Second_Rem >= Third_Rem || Second_Rem >= Escalation) {\n secondfield_seterror = true;\n }\n\n if (secondfield_seterror == true) {\n frm.controls['second_rem_nm'].setErrors({ RemValidation: true });\n }\n else {\n frm.controls['second_rem_nm'].setErrors(null);\n }\n }\n\n if (Third_Rem > 0) {\n\n if (First_Rem >= Third_Rem || Second_Rem >= Third_Rem ||Third_Rem >= Escalation) {\n thirdfield_seterror = true;\n }\n\n if (thirdfield_seterror == true) {\n frm.controls['third_rem_nm'].setErrors({ RemValidation: true });\n }\n else {\n frm.controls['third_rem_nm'].setErrors(null);\n }\n }\n\n if (Escalation > 0) {\n\n if (Escalation <= First_Rem || Escalation <= Second_Rem || Escalation <= Third_Rem) {\n escalationfield_seterror = true;\n }\n if (escalationfield_seterror == true) {\n frm.controls['escalation'].setErrors({ RemValidation: true });\n }\n else {\n frm.controls['escalation'].setErrors(null);\n }\n }\n\n }\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this alerts?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n this.CommonService.PostData('Alerts', 'Update', this.AlertsObject, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Alert updated successfully!');\n this.router.navigate(['/Reminders-config']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Alert already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update alerts!');\n this.router.navigate(['/Reminders-config']);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update alerts!');\n this.showLoader = false;\n this.router.navigate(['/Reminders-config']);\n });\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isAlertsEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isAlertsManagement')[0]?.IsEditable;\n \n });\n \n }\n\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Alert\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n \n\n
    \n\n\n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ToastrService } from 'ngx-toastr';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { BusinessPlanModel } from 'src/app/Model/BusinessPlanModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-business-plan-details',\n templateUrl: './business-plan-details.component.html',\n styleUrls: ['./business-plan-details.component.scss']\n})\nexport class BusinessPlanDetailsComponent implements OnInit {\n showLoader: boolean = false;\n businessPlanDetails: BusinessPlanModel[] = [];\n displayedColumns: string[] = ['UserName', 'Region', 'RoleName', 'TargetYear', 'TargetFor', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n UserRole: any;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter\n @ViewChild(MatPaginator) paginator: MatPaginator;\n isBPMasterEditable: boolean = false;\n constructor(\n public dialog: MatDialog,\n private Service: CommonService,\n private toastr: ToastrService,\n private route: ActivatedRoute,\n private titleService: Title,\n private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService\n ) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n\n // this.isBPMasterEditable = AppGlobals.BusinessPlanEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.getAllBusinessPlandetails();\n }\n\n getAllBusinessPlandetails() {\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n this.showLoader = true;\n this.Service.GetData('BusinessPlanSalesTarget', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.businessPlanDetails = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.businessPlanDetails);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.getAllBusinessPlandetails();\n }\n }\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.getAllBusinessPlandetails();\n }\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.getAllBusinessPlandetails();\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n UpdateBPStatusById(data: BusinessPlanModel, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this business plan for sales and orders?\",\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n this.Service.PostData('BusinessPlanSalesTarget', 'UpdateStatus', data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Business plan for sales and orders deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this business plan for sales and orders because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate business plan for sales and orders!\");\n }\n this.getAllBusinessPlandetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate business plan for sales and orders!\");\n this.getAllBusinessPlandetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.getAllBusinessPlandetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this business plan for sales and orders?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n this.Service.PostData('BusinessPlanSalesTarget', 'UpdateStatus', data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Business plan for sales and orders activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate business plan for sales and orders!\");\n }\n this.getAllBusinessPlandetails();\n }, error => {\n this.toastr.error(\"Failed to activate business plan for sales and orders!\");\n this.getAllBusinessPlandetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.getAllBusinessPlandetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isBPMasterEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isBusinessPlanforSalesandOrder')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Business Plan for Sales and Order\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n\n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n
    Employee Name\n {{row.UserName}} Region\n \n \n {{item.Name}}{{i === row.Regions.length -1 ? '': ',' }}\n \n Employee Role\n {{row.RoleName}} Target Year\n \n {{row.TargetYear}} Target For {{row.TargetFor}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active':\n 'Inactive'}}\n
    \n
    No records found
    \n\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ToastrService } from 'ngx-toastr';\nimport { SalesOrderBusinesPlan } from 'src/app/Model/SalesOrderBusinessPlan';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { BusinessPlanModel, PlanModel } from 'src/app/Model/BusinessPlanModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-business-plan-for-sales-and-order',\n templateUrl: './business-plan-for-sales-and-order.component.html',\n styleUrls: ['./business-plan-for-sales-and-order.component.scss']\n})\nexport class BusinessPlanForSalesAndOrderComponent implements OnInit {\n BusnessPlan: SalesOrderBusinesPlan = new SalesOrderBusinesPlan();\n showLoader: boolean = false;\n // targetYears = [\"2020\", \"2021\", \"2022\", \"2023\", \"2024\", \"2025\", \"2026\", \"2027\", \"2028\", \"2029\", \"2030\",\n // \"2031\", \"2032\", \"2033\", \"2034\", \"2035\", \"2036\", \"2037\", \"2038\", \"2039\", \"2040\",\n // \"2041\", \"2042\", \"2043\", \"2044\", \"2045\", \"2046\", \"2047\", \"2048\", \"2049\",\n // ];\n targetYears:any[]=[];\n currYear: number = new Date().getFullYear();\n targets = ['BP Sales', 'BP Order Intake'];\n allEmployees: any;\n roleName: any;\n item: any;\n allExistingData: any[];\n planExist: boolean;\n FinalModel: any[];\n name: any;\n selectedUserData: any;\n zeroValues: boolean;\n charCode: any;\n BusinessPlanobje: BusinessPlanModel = new BusinessPlanModel();\n IsBPDataValid: boolean = true;\n\n constructor(\n public dialog: MatDialog,\n private Service: CommonService,\n private toastr: ToastrService,\n private router: Router,\n private route: ActivatedRoute,\n private titleService: Title,\n private appConfigService: AppConfigService\n ) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch =i;\n this.targetYears.push(batch);\n k++;\n }\n this.getAllUsers();\n }\n\n setName(event: any) {\n this.BusinessPlanobje.RegionName = event.target.value;\n\n }\n onUnitsChange(i) {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].Units.toString(0));\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].Units.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].Units)) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = false;\n }\n }\n onAmountChange(i) {\n\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].Amount)) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].AmountValidation = false;\n }\n }\n onFC1Change(i)\n {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].FC1Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].FC1Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].FC1Amount)) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].FC1Validation = false;\n }\n }\n onFC2Change(i)\n {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].FC2Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].FC2Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].FC2Amount)) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].FC2Validation = false;\n }\n }\n onFC3Change(i)\n {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].FC3Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].FC3Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].FC3Amount)) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].FC3Validation = false;\n }\n }\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n checkValidBusinessPlan() {\n this.BusinessPlanobje.PlanList.forEach(element => {\n // var povalue: number = parseFloat(element.Units.toString());\n // if (povalue == undefined || povalue == null) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else if (povalue < 0) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else if (povalue % 1 != 0) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else if (element.Units.toString().indexOf('.') > -1) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else {\n // element.UnitsValidation = false;\n // }\n\n var povalue: number = parseFloat(element.Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (element.Amount.toString().indexOf('.') > -1) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else {\n element.AmountValidation = false;\n }\n\n var povalue: number = parseFloat(element.FC1Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (element.FC1Amount.toString().indexOf('.') > -1) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else {\n element.FC1Validation = false;\n }\n\n var povalue: number = parseFloat(element.FC2Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (element.FC2Amount.toString().indexOf('.') > -1) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else {\n element.FC2Validation = false;\n }\n\n var povalue: number = parseFloat(element.FC3Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (element.FC3Amount.toString().indexOf('.') > -1) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else {\n element.FC3Validation = false;\n }\n\n \n });\n }\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n onSubmit(myform: any) {\n // var unit = this.BusinessPlanobje.PlanList.filter(x => x.Units != 0);\n var amt = this.BusinessPlanobje.PlanList.filter(x => x.Amount != 0);\n // if (unit.length == 0) {\n // this.zeroValues = true;\n // alert(\"Units cannot be 0 for all the months.\")\n // return;\n // }\n\n if (amt.length == 0) {\n this.zeroValues = true;\n alert(\"Amount cannot be 0 for all the months.\")\n return;\n }\n\n this.IsBPDataValid = true;\n this.checkValidBusinessPlan();\n if (!this.IsBPDataValid) {\n return;\n }\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this business plan for sales and orders?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n this.FinalModel = [];\n this.zeroValues = false;\n\n if (this.allExistingData == null) {\n this.showLoader = true;\n this.Service.PostData('BusinessPlanSalesTarget', 'Add', this.BusinessPlanobje, null).subscribe((data: any) => {\n let result = data;\n if (result.ResponseCode == 1) {\n this.toastr.success('Business plan added successfully!');\n this.router.navigate(['/BusinessPlanDetails']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add business plan');\n this.showLoader = false;\n this.router.navigate(['/BusinessPlanDetails']);\n });\n }\n else {\n this.showLoader = true;\n this.Service.PostData('BusinessPlanSalesTarget', 'Update', this.BusinessPlanobje, null).subscribe((data: any) => {\n let result = data;\n if (result.ResponseCode == 1) {\n this.toastr.success('Business plan updated successfully!');\n this.router.navigate(['/BusinessPlanDetails']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to update business plan');\n this.showLoader = false;\n this.router.navigate(['/BusinessPlanDetails']);\n });\n }\n }\n });\n }\n\n getAllUsers() {\n this.showLoader = true;\n this.Service.GetData(\"Employee\", \"GetAllsalesengg\", null).subscribe((data: any) => {\n this.allEmployees = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n onselectChange() {\n if (this.BusnessPlan.UserName != undefined) {\n this.selectedUserData = this.allEmployees.filter(x => x.Fk_User_Id == this.BusinessPlanobje.EmployeeId);\n if (this.selectedUserData.length > 0) {\n this.BusinessPlanobje.RoleName = this.selectedUserData[0].RoleName;\n\n }\n }\n if (this.BusnessPlan.TargetFor == undefined || this.BusnessPlan.Year == undefined || this.BusnessPlan.UserName == undefined) {\n return;\n }\n\n\n let queryString = \"\";\n queryString = \"TargetYear=\" + this.BusinessPlanobje.TargetYear;\n queryString += \"&TargetFor=\" + this.BusinessPlanobje.TargetFor;\n queryString += \"&EmployeeId=\" + this.BusinessPlanobje.EmployeeId;\n\n this.Service.GetData(\"BusinessPlanSalesTarget\", \"GetExistingPlan\", queryString).subscribe((data: any) => {\n this.allExistingData = data;\n if (data != null) {\n this.allExistingData = data.PlanList;\n var i = 0;\n data.PlanList.forEach(element => {\n this.BusinessPlanobje.PlanList[i].Id = element.Id;\n // this.BusinessPlanobje.PlanList[i].Units = element.Units;\n this.BusinessPlanobje.PlanList[i].Amount = element.Amount;\n this.BusinessPlanobje.PlanList[i].FC1Amount = element.FC1Amount==null?0:element.FC1Amount;\n this.BusinessPlanobje.PlanList[i].FC2Amount = element.FC2Amount==null?0:element.FC2Amount;\n this.BusinessPlanobje.PlanList[i].FC3Amount = element.FC3Amount==null?0:element.FC3Amount;\n i = i + 1;\n });\n }\n else {\n var i = 0;\n this.BusinessPlanobje.PlanList.forEach(element => {\n this.BusinessPlanobje.PlanList[i].Id = 0;\n // this.BusinessPlanobje.PlanList[i].Units = 0;\n this.BusinessPlanobje.PlanList[i].Amount = 0;\n this.BusinessPlanobje.PlanList[i].FC1Amount = 0;\n this.BusinessPlanobje.PlanList[i].FC2Amount = 0;\n this.BusinessPlanobje.PlanList[i].FC3Amount = 0;\n i = i + 1;\n });\n }\n });\n }\n\n}\n","\n\n
    \n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Business Plan for Sales and Order\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { number, string } from '@amcharts/amcharts4/core';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { BusinessPlanModel } from 'src/app/Model/BusinessPlanModel';\nimport { SalesOrderBusinesPlan } from 'src/app/Model/SalesOrderBusinessPlan';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-edit-business-plan',\n templateUrl: './edit-business-plan.component.html',\n styleUrls: ['./edit-business-plan.component.scss']\n})\nexport class EditBusinessPlanComponent implements OnInit {\n BusinessPlan: SalesOrderBusinesPlan = new SalesOrderBusinesPlan();\n showLoader: boolean;\n allExistingData: any;\n FinalModel: any[];\n selectedUserData: any;\n allEmployees: any;\n name: any;\n zeroValues: boolean;\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n charCode: any;\n BusinessPlanobje: BusinessPlanModel = new BusinessPlanModel();\n isBPMasterEditable: boolean = false;\n UserRole: any;\n IsBPDataValid: boolean = true;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n constructor(private route: ActivatedRoute,\n private Service: CommonService,\n private toastr: ToastrService,\n public dialog: MatDialog,\n private router: Router,\n private titleService: Title,\n private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService\n) { }\n\n // targetYears = [\"2020\", \"2021\", \"2022\", \"2023\", \"2024\", \"2025\", \"2026\", \"2027\", \"2028\", \"2029\", \"2030\",\n // \"2031\", \"2032\", \"2033\", \"2034\", \"2035\", \"2036\", \"2037\", \"2038\", \"2039\", \"2040\",\n // \"2041\", \"2042\", \"2043\", \"2044\", \"2045\", \"2046\", \"2047\", \"2048\", \"2049\",\n // ];\n targetYears:any[]=[];\n currYear: number = new Date().getFullYear();\n targets = ['BP Sales', 'BP Order Booked'];\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch =i;\n this.targetYears.push(batch);\n k++;\n }\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n\n //this.isBPMasterEditable = AppGlobals.BusinessPlanEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.getAllUsers();\n\n this.BusinessPlanobje.TargetYear = this.route.snapshot.params[1];\n this.BusinessPlanobje.TargetFor = this.route.snapshot.params[2];\n this.BusinessPlanobje.EmployeeId = this.route.snapshot.params[3];\n this.GetBusinessPlan();\n }\n\n getAllUsers() {\n this.showLoader = true;\n this.Service.GetData(\"Employee\", \"GetAll\", null).subscribe((data: any) => {\n this.allEmployees = data;\n if (this.BusinessPlan.UserName != undefined) {\n this.selectedUserData = this.allEmployees.filter(x => x.Fk_User_Id == this.BusinessPlan.Fk_UserId_Target);\n if (this.selectedUserData.length > 0) {\n this.name = this.selectedUserData[0].RoleName;\n }\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetBusinessPlan() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"TargetYear=\" + this.BusinessPlanobje.TargetYear;\n queryString += \"&TargetFor=\" + this.BusinessPlanobje.TargetFor;\n queryString += \"&EmployeeId=\" + this.BusinessPlanobje.EmployeeId;\n\n\n this.Service.GetData(\"BusinessPlanSalesTarget\", \"GetExistingPlan\", queryString).subscribe((data: any) => {\n this.BusinessPlanobje.EmployeeId = data?.EmployeeId;\n this.BusinessPlanobje.TargetFor = data?.TargetFor;\n this.BusinessPlanobje.TargetYear = data?.TargetYear;\n this.BusinessPlanobje.RoleName = data?.RoleName;\n\n if (data.PlanList != null) {\n\n var i = 0;\n data.PlanList.forEach(element => {\n this.BusinessPlanobje.PlanList[i].Id = element.Id;\n // this.BusinessPlanobje.PlanList[i].Units = element.Units;\n this.BusinessPlanobje.PlanList[i].Amount = element.Amount;\n this.BusinessPlanobje.PlanList[i].FC1Amount = element.FC1Amount==null?0:element.FC1Amount;\n this.BusinessPlanobje.PlanList[i].FC2Amount = element.FC2Amount==null?0:element.FC2Amount;\n this.BusinessPlanobje.PlanList[i].FC3Amount = element.FC3Amount==null?0:element.FC3Amount;\n i = i + 1;\n }, error => {\n this.toastr.error(\"Failed to load existing plan!\");\n this.showLoader = false;\n });\n\n this.showLoader = false;\n }\n else {\n var i = 0;\n this.BusinessPlanobje.PlanList.forEach(element => {\n this.BusinessPlanobje.PlanList[i].Id = 0;\n // this.BusinessPlanobje.PlanList[i].Units = 0;\n this.BusinessPlanobje.PlanList[i].Amount = 0;\n this.BusinessPlanobje.PlanList[i].FC1Amount = 0;\n this.BusinessPlanobje.PlanList[i].FC2Amount = 0;\n this.BusinessPlanobje.PlanList[i].FC3Amount = 0;\n i = i + 1;\n });\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n\n setName(event: any) {\n this.name = event.target.value;\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n onUnitsChange(i) {\n\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].Units.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].Units.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n }\n else if (isNaN(this.BusinessPlanobje.PlanList[i].Units)) {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = true;\n this.IsBPDataValid = false;\n }\n else {\n this.BusinessPlanobje.PlanList[i].UnitsValidation = false;\n }\n\n }\n onAmountChange(i) {\n\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n }\n else if (isNaN(this.BusinessPlanobje.PlanList[i].Amount)) {\n this.BusinessPlanobje.PlanList[i].AmountValidation = true;\n this.IsBPDataValid = false;\n } else {\n this.BusinessPlanobje.PlanList[i].AmountValidation = false;\n }\n }\n\n onFC1Change(i)\n {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].FC1Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].FC1Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].FC1Amount)) {\n this.BusinessPlanobje.PlanList[i].FC1Validation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].FC1Validation = false;\n }\n }\n onFC2Change(i)\n {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].FC2Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].FC2Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].FC2Amount)) {\n this.BusinessPlanobje.PlanList[i].FC2Validation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].FC2Validation = false;\n }\n }\n onFC3Change(i)\n {\n var povalue: number = parseFloat(this.BusinessPlanobje.PlanList[i].FC3Amount.toString());\n if (povalue == undefined || povalue == null) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0 || povalue.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (this.BusinessPlanobje.PlanList[i].FC3Amount.toString().indexOf('.') > -1) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (isNaN(this.BusinessPlanobje.PlanList[i].FC3Amount)) {\n this.BusinessPlanobje.PlanList[i].FC3Validation = true;\n this.IsBPDataValid = false;\n }else {\n this.BusinessPlanobje.PlanList[i].FC3Validation = false;\n }\n }\n \n checkValidBusinessPlan() {\n this.BusinessPlanobje.PlanList.forEach(element => {\n // var povalue: number = parseFloat(element.Units.toString());\n // if (povalue == undefined || povalue == null) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else if (povalue < 0) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else if (povalue % 1 != 0) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else if (element.Units.toString().indexOf('.') > -1) {\n // element.UnitsValidation = true;\n // this.IsBPDataValid = false;\n // } else {\n // element.UnitsValidation = false;\n // }\n\n var povalue: number = parseFloat(element.Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else if (element.Amount.toString().indexOf('.') > -1) {\n element.AmountValidation = true;\n this.IsBPDataValid = false;\n } else {\n element.AmountValidation = false;\n }\n\n\n var povalue: number = parseFloat(element.FC1Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else if (element.FC1Amount.toString().indexOf('.') > -1) {\n element.FC1Validation = true;\n this.IsBPDataValid = false;\n } else {\n element.FC1Validation = false;\n }\n\n var povalue: number = parseFloat(element.FC2Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else if (element.FC2Amount.toString().indexOf('.') > -1) {\n element.FC2Validation = true;\n this.IsBPDataValid = false;\n } else {\n element.FC2Validation = false;\n }\n\n var povalue: number = parseFloat(element.FC3Amount.toString());\n if (povalue == undefined || povalue == null) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue < 0) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (povalue % 1 != 0) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else if (element.FC3Amount.toString().indexOf('.') > -1) {\n element.FC3Validation = true;\n this.IsBPDataValid = false;\n } else {\n element.FC3Validation = false;\n }\n });\n }\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n onSubmit(myform: any) {\n // var unit = this.BusinessPlanobje.PlanList.filter(x => x.Units != 0);\n var amt = this.BusinessPlanobje.PlanList.filter(x => x.Amount != 0);\n // if (unit.length == 0) {\n // this.zeroValues = true;\n // alert(\"Units cannot be 0 for all the months.\")\n // return;\n // }\n\n if (amt.length == 0) {\n this.zeroValues = true;\n alert(\"Amount cannot be 0 for all the months.\")\n return;\n }\n this.IsBPDataValid = true;\n this.checkValidBusinessPlan();\n if (!this.IsBPDataValid) {\n return;\n }\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this business plan for sales and orders?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n this.Service.PostData('BusinessPlanSalesTarget', 'Update', this.BusinessPlanobje, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n this.toastr.success('Business plan updated successfully!');\n this.router.navigate(['/BusinessPlanDetails']);\n }, error => {\n this.toastr.error('Failed to update business plan');\n this.showLoader = false;\n this.router.navigate(['/BusinessPlanDetails']);\n });\n }\n });\n\n\n }\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Business Plan - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Business Plan - ECOTECH\"); \n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isBPMasterEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isBusinessPlanforSalesandOrder')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Business Plan for Sales and Order\n

    \n
    \n
    \n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n
    \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AddCustomerOpportunityModel } from 'src/app/Model/AddCustomerOpportunityModel';\nimport { EnquiryDetailsModel } from 'src/app/Model/EnquiryModel';\nimport { LeadModel } from 'src/app/Model/LeadModel';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-add-lead',\n templateUrl: './add-lead.component.html',\n styleUrls: ['./add-lead.component.scss']\n})\nexport class AddLeadComponent implements OnInit {\n\n AddCustomerOpportunityModel = new AddCustomerOpportunityModel();\n EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n Country: any[] = [];\n Region: any[] = [];\n IndustrySegment: any[] = [];\n // Typeofcustomer: any[] = [];\n enquirySource: SingleFieldModel[] = [];\n CustomerType: any[] = [];\n showLoader: boolean = false;\n minDate: NgbDate;\n maxDate: NgbDate;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n\n LeadObj: LeadModel = new LeadModel();\n Id: any;\n @Input()\n EnquiryngbDateToFiter: NgbDate | null;\n EnquiryngbDateFromFiter: NgbDate | null;\n\n constructor(private router: Router,\n private toastr: ToastrService,\n private Service: CommonService,\n public dialog: MatDialog,\n private calendar: NgbCalendar,\n public formatter: NgbDateParserFormatter,\n private CommonService: CommonService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n }\n\n ngOnInit(): void {\n this.GetCustomerDropdownData();\n this.getEnquirySourceDetails();\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to add this Lead?\"\n }\n\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n const frmData = new FormData();\n\n if (this.LeadObj.LeadDate != undefined) {\n this.LeadObj.LeadDate = new Date(this.convertDate(new NgbDate(this.LeadObj.LeadDate.year, this.LeadObj.LeadDate.month, this.LeadObj.LeadDate.day))).toDateString();\n }\n\n let LeadDatails = JSON.stringify(this.LeadObj);\n frmData.append(\"LeadModel\", LeadDatails);\n this.CommonService.PostData('Lead', 'Add', frmData, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Lead added successfully!');\n this.CommonService.RefreshHeaderFun();\n this.router.navigate(['/Lead']);\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add Lead!');\n this.router.navigate(['/Lead']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add Lead!');\n this.showLoader = false;\n this.router.navigate(['/Lead']);\n });\n }\n\n\n });\n }\n GetCustomerDropdownData() {\n this.showLoader = true;\n this.Service.GetData(\"Customer\", \"GetCustomerDropdownDetails\", null).subscribe((data: any) => {\n //this.Country = data.Country;\n this.Region = data.Region;\n this.IndustrySegment = data.IndustrySegment;\n this.CustomerType = data.CustomerType;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null { const parsed = this.formatter.parse(input); return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue; }\n\n getEnquirySourceDetails() {\n this.showLoader = true;\n this.CommonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.showLoader = false;\n });\n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Lead\n

    \n
    \n
    \n\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { NgbActiveModal, NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { EnquiryStatus } from 'src/app/EnquiryStatus';\nimport { LeadModel } from 'src/app/Model/LeadModel';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-close-lead',\n templateUrl: './close-lead.component.html',\n styleUrls: ['./close-lead.component.scss']\n})\n\n\n\nexport class CloseLeadComponent implements OnInit {\n LeadObj: LeadModel = new LeadModel();\n // EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n\n @Input() showLoader: boolean = false;\n @Input() leadDataObj;\n closeOpportunityList: SingleFieldModel[] = [];\n leadId: any;\n enquiryStatus = EnquiryStatus;\n\n OppCloseId: any;\n role: string;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n Comment: any;\n\n constructor(private toastr: ToastrService,\n private activeModal: NgbActiveModal,\n private commonService: CommonService,\n private Service: CommonService,\n public dialog: MatDialog,\n private router: Router) { }\n\n\n ngOnInit(): void {\n this.role = localStorage.getItem(\"UserRole\");\n this.leadId = this.leadDataObj.Lead_Id;\n this.getAllCloseOpportunityReason();\n this.getLeadDetailsById(this.leadId);\n\n }\n\n\n getAllCloseOpportunityReason() {\n this.commonService.GetData(\"OpportunityCloseReason\", \"GetAll\", null).subscribe((data: any) => {\n this.closeOpportunityList = data;\n this.OppCloseId = undefined;\n },\n error => {\n this.toastr.error(\"Failed to load Data!\");\n this.showLoader = false;\n });\n }\n\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n\n // getEnquiryDetailsById(id) {\n // let queryString = \"\";\n // queryString = \"id=\" + id;\n // this.commonService.GetData('Enquiry', 'GetById', queryString).subscribe((data: any) => {\n // this.EnquiryObj.EnquiryDetails = data.EnquiryDetails;\n // });\n // }\n getLeadDetailsById(Lead_Id: number) {\n //this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Lead_Id=\" + Lead_Id;\n this.Service.GetData('Lead', 'GetById', queryString).subscribe((data: any) => {\n this.LeadObj = data;\n\n // this.LeadObj.LeadDate = new NgbDate(new Date(this.LeadObj.LeadDate).getFullYear(), new Date(this.LeadObj.LeadDate).getMonth() + 1, new Date(this.LeadObj.LeadDate).getDate());\n\n\n });\n\n }\n\n CloseLeadReason(Status, closeLeadForm: NgForm) {\n\n this.LeadObj.Fk_LeadCloseReason = this.OppCloseId;\n\n\n // if (this.LeadObj.Fk_LeadCloseReason == undefined || this.LeadObj.Fk_LeadCloseReason == null ||\n // this.LeadObj.Fk_LeadCloseReason == 0) {\n // return;\n // }\n closeLeadForm.control.markAllAsTouched();\n if (closeLeadForm.invalid) {\n return;\n }\n\n var confimrmsg = AppGlobals.successMessages.filter(x => x.id == Status)[0];\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: confimrmsg.confirmmsg\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n\n let leadDetails = JSON.stringify(this.LeadObj);\n const frmData = new FormData();\n frmData.append(\"leadDetails\", leadDetails);\n\n\n this.commonService.PostData(\"Lead\", \"CloseLead\", frmData, null).subscribe((data: any) => {\n this.LeadObj.Lead_Id = data;\n\n this.showLoader = false;\n this.toastr.success(confimrmsg.successmsg);\n this.router.navigate(['/Lead']);\n this.closePopup();\n\n\n }, error => {\n this.toastr.error(confimrmsg.errormsg);\n this.showLoader = false;\n //this.router.navigate(['/Enquiry']);\n });\n }\n });\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n}\n","\n
    \n\n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n

    \n Close Lead Reason\n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Close Lead reason is required\n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n Comment is required\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    ","import { Location } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router, RouterLinkWithHref } from '@angular/router';\nimport { NgbDate, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { EnquiryDetailsModel } from 'src/app/Model/EnquiryModel';\nimport { LeadModel } from 'src/app/Model/LeadModel';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { CloseLeadComponent } from '../../close-lead/close-lead.component';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n@Component({\n selector: 'app-edit-view-lead',\n templateUrl: './edit-view-lead.component.html',\n styleUrls: ['./edit-view-lead.component.scss']\n})\n\nexport class EditViewLeadComponent implements OnInit {\n LeadObj: LeadModel = new LeadModel();\n // EnquiryObj: EnquiryDetailsModel = new EnquiryDetailsModel();\n Id: any;\n Country: any[] = [];\n Region: any[] = [];\n IndustrySegment: any[] = [];\n FK_EnquirySourceId : any[] = [];\n Typeofcustomer: any[] = [];\n enquirySource: any[] = [];\n showLoader: boolean = false;\n minDate: NgbDate;\n maxDate: NgbDate;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n isLeadEditable: boolean = false;\n UserRole: any;\n AppGlobals = AppGlobals;\n closeResult: string;\n type=\"lead\";\n leadStatus:any;\n constructor(\n private router: Router,\n private location: Location,\n public dialog: MatDialog,\n private Service: CommonService,\n private toastr: ToastrService,\n private route: ActivatedRoute,\n private modalService: NgbModal,\n private CommonService: CommonService,\n private titleService: Title,\n private appConfigService : AppConfigService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate());\n }\n ngOnInit(): void {\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isLeadEditable = AppGlobals.LeadMasterEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.Id = this.route.snapshot.params[\"id\"];\n this.getLeadDetailsById(this.Id);\n this.GetCustomerDropdownData();\n this.getEnquirySourceDetails();\n\n }\n GetCustomerDropdownData() {\n this.showLoader = true;\n this.Service.GetData(\"Customer\", \"GetCustomerDropdownDetails\", null).subscribe((data: any) => {\n //this.Country = data.Country;\n this.Region = data.Region;\n this.IndustrySegment = data.IndustrySegment;\n this.Typeofcustomer = data.CustomerType;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getLeadDetailsById(Lead_Id: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Lead_Id=\" + Lead_Id;\n this.Service.GetData('Lead', 'GetById', queryString).subscribe((data: any) => {\n this.LeadObj = data;\n this.LeadObj.LeadDate = new NgbDate(new Date(this.LeadObj.LeadDate).getFullYear(), new Date(this.LeadObj.LeadDate).getMonth() + 1, new Date(this.LeadObj.LeadDate).getDate());\n this.remLimit = this.maxLimit - data.Description.length;\n if(this.LeadObj!=null)\n {\n if(this.LeadObj.IsConvertToProspect)\n {\n this.leadStatus=\"Converted to prospect\"; \n }\n \n if(this.LeadObj.Fk_LeadCloseReason!=null)\n {\n this.leadStatus=\"Lead is closed with reason : \" + this.LeadObj.closeReason;\n }\n if(this.LeadObj.Fk_LeadCloseReason==null && !this.LeadObj.IsConvertToProspect)\n {\n this.leadStatus=\"Lead is active\";\n }\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Lead - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Lead - ECOTECH\");\n }\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to Update this Lead?\"\n }\n\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n if (this.LeadObj.LeadDate != undefined) {\n this.LeadObj.LeadDate = new Date(this.convertDate(new NgbDate(this.LeadObj.LeadDate.year, this.LeadObj.LeadDate.month, this.LeadObj.LeadDate.day))).toDateString();\n }\n \n const frmData = new FormData();\n let LeadDatails = JSON.stringify(this.LeadObj);\n frmData.append(\"LeadModel\", LeadDatails);\n if (this.LeadObj.Id != undefined) {\n frmData.append(\"Lead\", this.Id);\n }\n\n this.CommonService.PostData('Lead', 'Update', frmData, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Lead Update successfully!');\n this.CommonService.RefreshHeaderFun();\n this.router.navigate(['/Lead']);\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to Update Lead!');\n this.router.navigate(['/Lead']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to Update Lead!');\n this.showLoader = false;\n this.router.navigate(['/Lead']);\n });\n }\n\n\n });\n\n }\n openLeadReasonPopup() {\n const modalRef = this.modalService.open(CloseLeadComponent, {\n size: 'lg', backdrop: 'static', keyboard: false\n });\n\n var leadObj = {\n Lead_Id: this.LeadObj.Lead_Id,\n // EnquiryStatus: this.EnquiryObj.EnquiryDetails.Status,\n // EnqTermsConditionSelected: this.EnquiryObj.EnquiryDetails.RFQTermsAndCondition,\n // IsQuotationPriceOnRequest: this.EnquiryObj.EnquiryDetails.IsQuotationPriceOnRequest,\n // TermsAndCondition: this.EnquiryObj.TermsAndConditions,\n // CustomTermsAndCondition: this.EnquiryObj.CustomTermsAndConditions,\n // PendingAtRoleId: this.EnquiryObj.EnquiryDetails.PendingAtRoleId\n }\n\n modalRef.componentInstance.leadDataObj = leadObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n this.ngOnInit();\n }\n });\n }\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n convert()\n {\n this.router.navigate( ['EditViewCustomer', {id: this.LeadObj.Lead_Id, type: \"lead\"}]); \n }\n \n getEnquirySourceDetails() {\n this.showLoader = true;\n this.CommonService.GetData(\"Enquiry\", \"GetEnquiryDropdownData\", null).subscribe((data: any) => {\n this.enquirySource = data.EnquirySource;\n this.showLoader = false;\n });\n }\n\n goBack() {\n this.location.back();\n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Lead\n

    \n
    \n
    \n\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { SingleFieldComponent, SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-lead-details',\n templateUrl: './lead-details.component.html',\n styleUrls: ['./lead-details.component.scss']\n})\nexport class LeadDetailsComponent implements OnInit {\n\n displayedColumns: string[] = ['CustomerName', 'CustomerAddress', 'Region', 'LeadStatus','EnquiryNumber','CustomerCode','Action'];\n dataSource: MatTableDataSource;\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n Role: any;\n UserRoles: any;\n disabled: boolean = false;\n isImageEditable: boolean = false;\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n\n /*************************************************************************/\n constructor(\n private toastr: ToastrService,\n private Service: CommonService,\n public dialog: MatDialog,\n private route: ActivatedRoute\n ) { }\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n\n ngOnInit(): void {\n this.singleFieldObj.Id = this.route.snapshot.params[\"id\"];\n this.Role = localStorage.getItem(\"UserRole\");\n this.GetAllLeadDetails(); \n }\n\n GetAllLeadDetails() { \n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.Service.GetData('Lead', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllLeadDetails();\n }\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllLeadDetails();\n }\n pageEvent(event: any) {\n\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllLeadDetails();\n }\n\n UpdateLeadById(Lead_Id: number, CurrentStatus: boolean) {\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this lead?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Lead_Id;\n\n this.Service.PostData('Lead', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Lead deactivated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate lead!\");\n }\n this.GetAllLeadDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate lead!\");\n this.GetAllLeadDetails();\n this.showLoader = false;\n });\n }\n else {\n this.GetAllLeadDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this lead?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Lead_Id;\n\n this.Service.PostData('Lead', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Lead activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate lead!\");\n }\n this.GetAllLeadDetails();\n }, error => {\n this.toastr.error(\"Failed to activate lead!\");\n this.GetAllLeadDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllLeadDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Lead Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n\n \n \n\n
    Id {{row.id} Customer Name {{row.CustomerName}} Organization {{row.Organization}} Customer Address {{row.CustomerAddress}} Region {{row.RegionName}} Status {{row.LeadStatus}} Enquiry Number {{row.EnquiryNumber}} Customer Code {{row.CustomerCode}} Action \n \n \n     \n\n \n
    \n
    No records found
    \n\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { StockInventoryModel } from 'src/app/Model/StockInventoryModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-stock-inventory',\n templateUrl: './add-stock-inventory.component.html',\n styleUrls: ['./add-stock-inventory.component.scss']\n})\nexport class AddStockInventoryComponent implements OnInit {\n StockInventoryObj: StockInventoryModel = new StockInventoryModel();\n StockDatevar: Date = new Date();\n minDate: NgbDate;\n maxDate:NgbDate;\n currYear: number = new Date().getFullYear();\n StockFile: any[] = [];\n @Input()\n showLoader: boolean = false;\n tempfile: any;\n @ViewChild('myInput')\n myInputVariable: ElementRef;\n allowedFileType: string[] = [\n 'image/bmp', 'image/jpeg', 'image/png', 'application/pdf', 'text/plain', 'text/csv', 'application/xml', 'text/xml',\n 'application/msword', 'image/jpg', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n , 'application/zip', 'application/x-zip-compressed', 'text/csv', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/zip', 'application/x-zip-compressed', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'];\n \n constructor(private toastr: ToastrService, public dialog: MatDialog, private commonService: CommonService,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private appConfigService : AppConfigService) {\n this.minDate = new NgbDate(2018, 1, 1);\n this.maxDate = new NgbDate(this.currYear,12,31);\n }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n }\n\n getMultipleFileDetails(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc, .docx, .xls, .xlsx, .zip, .ppt, .pptx\");\n //event.target.value = null;\n isValidFile = false;\n } else if (file.name.length > 50) {\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n isValidFile = false;\n }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n this.StockFile.push(file);\n }\n }\n console.log(this.myInputVariable.nativeElement.files);\n }\n\n removeAttachments(index) {\n this.myInputVariable.nativeElement.value = \"\";\n this.StockFile.splice(index, 1);\n }\n\n convertDate(date: any) {\n let year = date.year;\n let month = date.month;\n let day = date.day;\n return year + \"-\" + month + \"-\" + day;\n }\n\n onSubmit(form: any) {\n if (this.StockFile.length == 0 || this.StockFile == null) {\n form.controls['stockfiles'].setErrors(true);\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this stock inventory details?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n const frmData = new FormData();\n if (this.StockInventoryObj.StockDate != undefined) {\n this.StockInventoryObj.StockDate = new Date(this.convertDate(new NgbDate(this.StockInventoryObj.StockDate.year, this.StockInventoryObj.StockDate.month, this.StockInventoryObj.StockDate.day))).toDateString();\n this.StockInventoryObj.StockDateISO = new Date(this.convertDate(new NgbDate(this.StockInventoryObj.StockDate.year, this.StockInventoryObj.StockDate.month, this.StockInventoryObj.StockDate.day))).toDateString();\n }\n let StockInventoryObj = JSON.stringify(this.StockInventoryObj);\n frmData.append(\"StockInventory\", StockInventoryObj);\n\n if (this.StockFile != null) {\n for (let i = 0; i < this.StockFile.length; i++) {\n frmData.append(\"StockAttachments[\" + i + \"]\", this.StockFile[i]);\n }\n }\n this.commonService.PostData('StockInventory', 'Add', frmData, null).subscribe((data: any) => {\n\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Stock inventory details added successfully!\");\n this.router.navigate(['/StockInventory']);\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to stock inventory details!\");\n this.router.navigate(['/StockInventory']);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error(\"Failed to add stock inventory details!\");\n this.showLoader = false;\n this.router.navigate(['/StockInventory']);\n });\n\n }\n });\n }\n }\n\n}\n\n\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Stock Inventory\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n
    \n
    \n\n
    \n Stock date is required\n
    \n
    \n
    \n \n
    \n
    \n Upload\n \n\n
    \n
    \n Stock file is required\n
    \n \n
    \n\n \n [File Format: .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc, .docx, .xls,\n .xlsx, .zip, .ppt, .pptx] [Max 5 MB]\n 0\">\n
      \n \n
    • {{item.name}}  \n
    • \n
      \n
    \n\n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Sort } from '@angular/material/sort';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { StockInventoryModel } from 'src/app/Model/StockInventoryModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-stock-inventory-details',\n templateUrl: './stock-inventory-details.component.html',\n styleUrls: ['./stock-inventory-details.component.scss']\n})\nexport class StockInventoryDetailsComponent implements OnInit {\n displayedColumns: string[] = ['StockDateISO', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n UserRole: any;\n isStockInventoryEditable: boolean = false;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n }\n\n ngOnInit() {\n this.UserRole = localStorage.getItem(\"UserRole\");\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAccess();\n //this.isStockInventoryEditable = AppGlobals.StockInventoryEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.GetAllStockInventory();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllEmployeeDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllStockInventory() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.commonService.GetData('StockInventory', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n if (data.Data != null) {\n this.data.forEach(item => {\n item.StockDate = this.convertDate(item.StockDate);\n });\n }\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllStockInventory();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllStockInventory();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllStockInventory();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n convertDate(date: any) {\n date = date.split('T')[0];\n date = date.split('-').join('/');\n return date;\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isStockInventoryEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isStockInventory')[0]?.IsEditable;\n \n });\n \n }\n\n\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Stock Inventory Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n Search\n \n\n \n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n\n
    Stock Date {{row.StockDate | date: \"dd-MMM-yyyy\"}} Action \n \n \n     \n\n
    \n
    No records found
    \n\n \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\n\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { StockInventoryModel } from 'src/app/Model/StockInventoryModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-view-stock-inventory',\n templateUrl: './view-stock-inventory.component.html',\n styleUrls: ['./view-stock-inventory.component.scss']\n})\nexport class ViewStockInventoryComponent implements OnInit {\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n StockInventoryObj: StockInventoryModel[] = [];\n UserRole: any;\n isEmployeeEditable: boolean = false;\n @Input()\n showLoader: boolean = false;\n fileUrl = AppGlobals.baseFileDownloadUrl + \"StockInventory/\";\n constructor(private router: Router, private route: ActivatedRoute, \n private toastr: ToastrService, private Service: CommonService, \n public dialog: MatDialog, private titleService: Title,\n private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isEmployeeEditable = AppGlobals.EmployeeMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n var Id = this.route.snapshot.params[\"id\"];\n this.getInventoryDetailsById(Id);\n }\n\n getInventoryDetailsById(Id: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.Service.GetData('StockInventory', 'GetById', queryString).subscribe((data: any) => {\n this.StockInventoryObj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n }\n\n DownloadFile(Path: any) {\n let link = document.createElement('a');\n let path = this.fileUrl + Path\n link.setAttribute('href', path);\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n link.remove();\n return false;\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isEmployeeEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isEmployee')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n View Stock Inventory\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n
    Sr. No.Stock File NameAction
    {{i+1}}\n {{Attach.StockFileName}}\n \n Preview\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n","import { query } from '@angular/animations';\nimport { ChangeDetectorRef, Component, Input, OnInit, Pipe, PipeTransform} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { exit } from 'process';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductMatrixModel } from 'src/app/Model/ProductMatrixModel';\nimport { ProductSeries } from 'src/app/Model/ProductModel';\nimport { AccessPermissionModel, DefaultViewModel, ElementTypeList, WorkFlowScreenAccessModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { UserRoles } from 'src/app/UserRoles';\n\n\n\n@Component({\n selector: 'app-edit-view-work-flow-screen-access',\n templateUrl: './edit-view-work-flow-screen-access.component.html',\n styleUrls: ['./edit-view-work-flow-screen-access.component.scss']\n})\nexport class EditViewWorkFlowScreenAccessComponent implements OnInit {\n @Input()\n showLoader: boolean = false;\n WorkFlowScreenData:WorkFlowScreenAccessModel[]=[];\n UserRole: any;\n WorkFlowScreenAccessEditable: boolean = false;\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n AppRoles = UserRoles;\n Roles: any[] = [];\n isMenu:boolean=true;\n isScreen:boolean=true;\n isButton:boolean=true;\n isField:boolean=true;\n accesspermissioninfo:any[]=[];\n testaccessinfo:any[]=[];\n DefaultScreenViewAccess:any[]=[];\n Defaultobj:DefaultViewModel=new DefaultViewModel();\n accesspermissionobj:AccessPermissionModel[]=Array();\n elementTypeObj:ElementTypeList[]=Array();\n ArrayofElementType:ElementTypeList[]=Array();\n \n AccesspermissionForRole:any[]=[];\n\n \n constructor(private toastr: ToastrService, private commonService: CommonService, private router: Router,private cd: ChangeDetectorRef,\n public dialog: MatDialog,private route: ActivatedRoute,private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n }\n\n ngOnInit(): void {\n this.DefaultScreenViewAccess = this.Defaultobj.WorkflowDefaultViewAccessArray;\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.WorkFlowScreenAccessEditable = AppGlobals.WorkFlowScreenAccessEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n // this.getAllWorkFlowScreen();\n this.getAllAccessPermission();\n this.GetAllElementType();\n this.getAllRoles();\n }\n\n getAllWorkFlowScreen()\n {\n this.showLoader = true;\n this.commonService.GetData(\"WorkFlowScreenAccess\", \"GetAll\", null).subscribe((data: any) => {\n this.WorkFlowScreenData=data;\n\n\n /**********************************Add Default View Access******************************** */\n\n // this.WorkFlowScreenData.forEach(element => {\n \n // let DefaultData = this.getDefaultAccessbyRoleID(element.RoleId);\n\n // element.isEnquiryForm_Default = DefaultData.isEnquiryForm_Default;\n // element.isRFQ_Default = DefaultData.isRFQ_Default;\n // element.isQuoteGeneration_Default = DefaultData.isQuoteGeneration_Default;\n // element.isManagementApproval_Default = DefaultData.isManagementApproval_Default;\n // element.isCEOApproval_Default = DefaultData.isCEOApproval_Default;\n // element.isEnquiryConfirmation_Default = DefaultData.isEnquiryConfirmation_Default;\n // element.isSOGeneration_Default = DefaultData.isSOGeneration_Default;\n // element.isOrderAcknowledgement_Default = DefaultData.isOrderAcknowledgement_Default;\n // element.isSupplyChain_Default = DefaultData.isSupplyChain_Default;\n // element.isAccounts_Default = DefaultData.isAccounts_Default;\n \n // });\n\n /**********************************End Add Default View Access******************************** */\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n EditDetails() {\n if(this.isEditable)\n {\n this.isEditable = false;\n // window.scroll({\n // top: 0,\n // left: 0,\n // behavior: 'smooth'\n // });\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n }\n else{\n this.isEditable = true;\n // window.scroll({\n // top: 0,\n // left: 0,\n // behavior: 'smooth'\n // });\n this.FormStatus = \"View\";\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n }\n \n }\n\n getWorkFlowScreenAccessbyRoleId()\n {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"RoleId=\" + this.UserRole;\n\n this.commonService.GetData('WorkFlowScreenAccess', 'GetByRoleId', queryString).subscribe((data: any) => {\n let Workflowscreens= data.toString();\n localStorage.setItem(\"WorkFlowRoleWiseScreenAccess\", Workflowscreens);\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n }\n\n getDefaultAccessbyRoleID(RoleId:any)\n {\n return this.DefaultScreenViewAccess.find(x => x.role === RoleId);\n }\n\n Cancel()\n {\n this.EditDetails();\n this.getAllWorkFlowScreen();\n\n }\n\n onSubmit(myform:any)\n {\n \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update Access and Permission?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n this.showLoader = true;\n if (dialogResult) {\n const newAcessPermission = Object.values(this.accesspermissioninfo).reduce((acc, permissions) => {\n Object.values(permissions).forEach(val => {\n acc.push(...(val as any[]));\n });\n return acc;\n }, []);\n \n this.commonService.PostData(\"ElementAccessPermission\", \"Update\", newAcessPermission, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(\"Access Permission updated successfully!\");\n this.isEditable = true;\n this.FormStatus = \"View\";\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllAccessPermission(); \n this.GetAllElementType();\n this.getAllRoles();\n this.refreshAccessPermission();\n //this.isMenu=true;this.isScreen=true;this.isButton=true;this.isField=true;\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update Access Permission!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error(\"Failed to update Access Permission!\");\n this.showLoader = false;\n });\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n }\n else {\n this.showLoader = false;\n }\n });\n }\n\n getAllAccessPermission()\n {\n this.showLoader = true;\n let querstring=null;\n this.commonService.GetData(\"AccessPermission\",\"GetAll\",querstring).subscribe((data: any) => {\n this.convertdataintoobj(data);\n this.cd.detectChanges();\n this.showLoader = false;\n\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n \n });\n \n }\n\n convertdataintoobj(data:any)\n {\n this.showLoader = true\n this.commonService.convertArrayToObject(data).subscribe((datalist:any)=>\n {\n this.accesspermissioninfo=datalist;\n this.cd.detectChanges();\n this.testaccessinfo=this.accesspermissioninfo;\n console.log(\"datalist==>\",this.accesspermissioninfo);\n this.showLoader = true\n });\n\n this.showLoader = false;\n \n }\n \n GetAllElementType()\n {\n let querstring=\"\";\n this.commonService.GetData(\"ElementTypeForPermission\",\"GetListOfElementType\",querstring).subscribe((data: any) => {\n this.elementTypeObj=data;\n this.ArrayofElementType=this.elementTypeObj;\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n }\n\n OnElementTypechange(ElementType:string)\n {\n\n if(ElementType==\"Menu\"){\n this.isMenu=true;this.isScreen=false;this.isButton=false;this.isField=false;\n }\n if(ElementType==\"WorkFlowScreen\"){\n this.isScreen=true; this.isMenu=false;this.isButton=false;this.isField=false;\n }\n if(ElementType==\"Button\"){\n this.isScreen=false; this.isMenu=false;this.isButton=true;this.isField=false;\n }\n if(ElementType==\"Field\"){\n this.isField=true; this.isScreen=false; this.isMenu=false;this.isButton=false;\n }\n if(ElementType==\"\"){\n this.isField=true; this.isScreen=true; this.isMenu=true;this.isButton=true;\n }\n\n}\n\n getAllRoles() {\n this.showLoader = true;\n this.commonService.GetData(\"Account\", \"GetAllRoles\", null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n OnSelectRole(RoleName:any)\n {\n if(RoleName!=\"\")\n {\n const filteredAccountObject = {};\n const filteredKeys = Object.keys(this.testaccessinfo).filter(key => key === RoleName);\n \n filteredKeys.forEach(key => {\n filteredAccountObject[key] = this.testaccessinfo[key];\n this.accesspermissioninfo=[];\n this.accesspermissioninfo[key] = filteredAccountObject[key];\n console.log(\"Modified one \",this.accesspermissioninfo);\n });\n }else{\n this.accesspermissioninfo=this.testaccessinfo;\n }\n \n }\n \n// converttoArray()\n// {\n// const newAcessPermission = Object.values(this.accesspermissioninfo).reduce((acc, permissions) => {\n// Object.values(permissions).forEach(val => {\n// acc.push(...(val as any[]));\n// });\n// return acc;\n// }, []);\n \n// console.log(\"------->\",newAcessPermission);\n// }\n \ngetAccess()\n {\n \n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.WorkFlowScreenAccessEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isWorkflowScreenAccess')[0]?.IsEditable;\n \n });\n \n }\n\n refreshAccessPermission()\n {\n this.accessservice.GetAll().subscribe((data:any)=>\n {\n this.accesspermissionobj=data;\n localStorage.setItem(\"accesspermissionobj\", JSON.stringify(this.accesspermissionobj));\n console.log(\"Localstorage\",localStorage.getItem(\"accesspermissionobj\"));\n \n });\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Access and Permission Listing\n

    \n
    \n
    \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { element } from 'protractor';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { SingleFieldComponent, SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { Location } from '@angular/common';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\n\n@Component({\n selector: 'app-add-contract-frame-agreement',\n templateUrl: './add-contract-frame-agreement.component.html',\n styleUrls: ['./add-contract-frame-agreement.component.scss']\n})\nexport class AddContractFrameAgreementComponent implements OnInit {\n\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n isdropdowninactive: boolean = false;\n Customer: any[] = [];\n tempProductModel: any[] = [];\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n @Input()\n showLoader: boolean = false;\n Roles: any[] = [];\n \n ProductModel: any[] = [];\n \n NewArr: any[] = [];\n temp_ProductModel: any[] = [];\n ProductModelDiscountArr: SingleFieldModel[] = [];\n productModelrequired: boolean=false;\n productDiscountrequired: boolean;\n ProductModelDiscount:any[]=[];\n workflowActionList:any[] = [];\n WorkflowStatus:number;\n UserRole: any;\n isConfigureEditable: boolean = false;\n product:any[]=[];\n charCode: any;\n constructor(private router: Router, private toastr: ToastrService, private CommonService: CommonService,\n public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title ,private location: Location,private accessservice: AccessPermissionService) { }\n\n ngOnInit(): void {\n this.UserRole = localStorage.getItem(\"UserRole\");\n //this.isConfigureEditable = AppGlobals.ConfigureMastesrsEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.AddNewRow(0);\n this.getAccess();\n this.getAllTransitionrules();\n this.getAllCustomer(\"Customer\", \"GetAll\");\n this.getAllProductModel(\"ProductModel\", \"GetAllModel\");\n this.singleFieldObj.Fk_Customer = this.route.snapshot.params[\"id\"];\n this.getDetailsById(this.singleFieldObj.Fk_Customer);\n // console.log(this.singleFieldObj.Fk_Customer);\n if (this.singleFieldObj.Fk_Customer != undefined && this.singleFieldObj.Fk_Customer!=0) {\n this.isdropdowninactive = true;\n }\n else this.isdropdowninactive = false\n \n }\n\n testing:any[]=[];\n showItems: Array<{ id: number, value: any[] }>;\n OnSelectProductModel(selectedValue, index) {\n var selectedItem = this.tempProductModel.filter(x => x.Id != selectedValue);\n this.testing.push(selectedItem);\n this.showItems[index].value = this.tempProductModel.filter(x => x.Id == selectedValue);\n\n }\n onCompanyselection(data:any)\n {\n var Id=this.singleFieldObj.Fk_Customer;\n this.getDetailsById(Id);\n }\n\n getDetailsById(Id: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.GetData('CustomerSpecialDiscount', 'GetById', queryString).subscribe((data: any) => {\n this.singleFieldObj.customerSpecialDiscountInfo= data;\n if(this.singleFieldObj.customerSpecialDiscountInfo.length==0)\n {\n this.AddNewRow(0);\n }\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n\n onSubmit(myform: any) {\n\n this.productModelrequired=false;\n if (this.singleFieldComponent.ismultiplerecords) {\n if (this.singleFieldObj.customerSpecialDiscountInfo.length == 0) {\n this.singleFieldObj.customerSpecialDiscountInfo[0].ProductModelRequired = true;\n this.showLoader = false;\n return;\n }\n else {\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n if (element.Fk_ProductModel == null || element.Fk_ProductModel == undefined || element.Fk_ProductModel == 0 ) {\n element.ProductModelRequired = true;\n }\n else {\n element.ProductModelRequired = false;\n } \n });\n }\n }\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n if (element.ProductModelRequired) {\n this.productModelrequired=true;\n this.showLoader = false;\n return;\n }\n });\n if (this.productModelrequired == false) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to add this this Customer Frame Agreement ?\"\n }\n });\n if (dialogRef) {\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n let queryString = \"\";\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element=>\n {\n element.Fk_Customer=this.singleFieldObj.Fk_Customer\n }); \n queryString = \"id=\" +this.WorkflowStatus;\n this.CommonService.PostData('CustomerSpecialDiscount', 'Add', this.singleFieldObj.customerSpecialDiscountInfo, queryString,null).subscribe((data: any) => {\n let result = data;\n\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Customer Frame Agreement added successfully!');\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n }\n else if (data.ResponseCode == 0) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning( 'Customer Frame Agreement already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add Customer Frame Agreement!');\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n }\n }, error => {\n this.toastr.error('Failed to add Customer Frame Agreement!');\n this.showLoader = false;\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n })\n \n }\n });\n }\n }\n }\n\n getAllCustomer(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.CommonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n this.Customer = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllProductModel(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.CommonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n this.ProductModel = data;\n this.tempProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n OnDiscountChange(index) {\n\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].UnapprovedProductDiscount==undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel==null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].UnapprovedProductDiscount=0;\n }\n\n if (this.singleFieldObj.customerSpecialDiscountInfo[index].UnapprovedProductDiscount < 0) {\n this.toastr.info(' Discount cannot be negative.');\n this.singleFieldObj.customerSpecialDiscountInfo[index].UnapprovedProductDiscount = 0;\n return;\n }\n else if (this.singleFieldObj.customerSpecialDiscountInfo[index].UnapprovedProductDiscount > 100) {\n this.toastr.info('Discount cannot be greater than 100.');\n this.singleFieldObj.customerSpecialDiscountInfo[index].UnapprovedProductDiscount = 0;\n return;\n }\n }\n\n OnProductModelChange(index)\n {\n \n if(this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=0 || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=false;\n }\n else{\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=true;\n }\n\n }\n \n \n AddNewRow(index) {\n if (this.singleFieldObj.Fk_ProductModel != undefined\n && this.singleFieldObj.UnapprovedProductDiscount != undefined) {\n\n this.singleFieldObj.IsRowDeleted = true;\n var obj = new SingleFieldModel();\n obj.Fk_ProductModel = this.singleFieldObj.Fk_ProductModel;\n obj.UnapprovedProductDiscount = this.singleFieldObj.UnapprovedProductDiscount\n\n this.singleFieldObj.UnapprovedProductDiscount = 0;\n this.singleFieldObj.Fk_ProductModel = 0;\n this.singleFieldObj.customerSpecialDiscountInfo.push(obj);\n }\n else{\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=0 || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=false;\n }\n \n }\n }\n\n deleterow(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.singleFieldObj.customerSpecialDiscountInfo.splice(index, 1);\n } else {\n this.singleFieldObj.customerSpecialDiscountInfo.pop();\n }\n }\n });\n }\n\n getAllTransitionrules()\n {\n this.showLoader = true;\n this.CommonService.GetData('WorkFlowTransitionRule', 'GetAll', null).subscribe((data: any) => {\n this.singleFieldObj.tranisitionrulesobj = data;\n this.singleFieldObj.tranisitionrulesobj.forEach(element=>\n {\n if(element.condition_code=='DiscountSaveAsDraft'&&element.action_by_role_id==this.UserRole)\n {\n this.workflowActionList.push(element);\n var rule= this.workflowActionList.filter(x=>x.action_id==element.action_id);\n console.log(rule);\n }\n\n });\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n OnWorkflowAction(myform:NgForm,nextstateid:number){ \n \n var rule= this.workflowActionList.filter(x=>x.next_state_id==nextstateid);\n this.WorkflowStatus=rule[0].next_state_id;\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n element.action_id=rule[0].action_id;\n \n });\n\n // this.EnquiryObj.EnquiryDetails.FK_transitionrule_id=rule[0].transition_rule_id;\n // this.SetStatus(rule[0].next_state_id,myform2); \n // this.onSubmit(myform);\n } \n \n /* getWorkflowActions()\n { \n let queryString = \"\";\n this.showLoader = true;\n this.CommonService.GetData(\"WorkFlowTransitionRule\",\"GetActionsforFrameAgreement\",queryString).subscribe((data: any) => {\n this.workflowActionList=data;\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n */\n goBack() {\n this.location.back();\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isConfigureEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='IsCustomerFrameAgreement')[0]?.IsEditable;\n console.log(\"IsConfigure-\",this.isConfigureEditable);\n \n });\n \n }\n \n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if\n (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n\n }\n else {\n return true;\n }\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n}\n","\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Customer Frame Agreement\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { SingleFieldComponent, SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-customer-frame-agreement-details',\n templateUrl: './customer-frame-agreement-details.component.html',\n styleUrls: ['./customer-frame-agreement-details.component.scss']\n})\nexport class CustomerFrameAgreementDetailsComponent implements OnInit {\n dataSource: MatTableDataSource;\n displayedColumns: string[] = ['Companyname', 'Value', 'Action'];\n Customer: any[] = [];\n disabled: boolean = false;\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n UserRole: any;\n isConfigureEditable: boolean = false;\n RouteName : string ='';\n someCondition : boolean = false;\n viewedit:boolean=true;\n isAddframeAgreementAccess:boolean=false;\n\n IsCustomerFrameAgreementEditable:boolean;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n UpdateStatus: UpdateStatus = new UpdateStatus();\n \n\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog,\n private route: ActivatedRoute, private router: Router, private titleService: Title,private accessservice: AccessPermissionService) { }\n\n ngOnInit(): void {\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.GetAll();\n this.getAccess();\n }\n \n GetAll() {\n this.showLoader = true;\n let queryString = \"\";\n this.length = 0;\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.CommonService.GetData('CustomerSpecialDiscount', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n \n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAll();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAll();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAll();\n }\n\n \n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n UpdateStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this Customer Frame Agreement?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('CustomerSpecialDiscount', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success( \"Customer Frame Agreement deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this Customer Frame Agreement because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate Customer Frame Agreement!\");\n }\n this.GetAll();\n }, error => {\n this.toastr.error(\"Failed to deactivate Customer Frame Agreement!\");\n this.GetAll();\n this.showLoader = false;\n });\n }\n else {\n this.GetAll();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this Customer Frame Agreement?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('CustomerSpecialDiscount', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Customer Frame Agreement activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate Customer Frame Agreement!\");\n }\n this.GetAll();\n }, error => {\n this.toastr.error(\"Failed to activate Customer Frame Agreement!\");\n this.GetAll();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAll();\n }\n });\n }\n }\n \n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.IsCustomerFrameAgreementEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='IsCustomerFrameAgreement')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n Customer Frame Agreement Listing\n

    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n \n \n\n \n\n \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n\n \n
    \n Customer Name {{row.Companyname}}\n \n WorkFlow Status \n {{row.Value}} Action \n \n \n     \n\n \n  \n {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n \n\n
    No records found
    \n\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { el } from 'date-fns/locale';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { SingleFieldComponent, SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-edit-view-contract-frame-agreement',\n templateUrl: './edit-view-contract-frame-agreement.component.html',\n styleUrls: ['./edit-view-contract-frame-agreement.component.scss']\n})\nexport class EditViewContractFrameAgreementComponent implements OnInit {\n @Input()\n showLoader: boolean = false;\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n editFormValues: boolean = false;\n IsNotApproveRejectButton: boolean = false;\n editFormStatus: string = \"\";\n UserRole: any;\n isConfigureEditable: boolean = false;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Roles: any[] = [];\n TermsAndConditions: any[] = [];\n Customer:any[] =[];\n CustomerNameDetails:any[] =[];\n isotheroute:boolean;\n closeResult: string;\n\n ProductModel:any[]=[];\n ProductModelDiscount:any[]=[];\n tempProductModel: any[] = [];\n ProductModelDiscountArr:SingleFieldModel[]=[];\n productModelrequired: boolean=false;\n workflowActionList:any[] = [];\n workflowActionListforApproval:any[] = [];\n workflowActions:any[] = [];\n WorkflowStatus:number;\n dataList: any[] = [];\n currentstateid:number;\n currentWorkFlowStatus:number;\n FK_Workflow_Status:any;\n CompanyName:any;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n data: any[] = [];\n displayedColumns: string[] = ['Action By', 'Action By Role', 'action_name', 'Action On', 'Comment']\n dataSource: MatTableDataSource;\n historydata: any;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n isCustomerFrameAgreementEditable:boolean;\n action_id: number;\n charCode: any;\n appConfig : any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private router: Router, private route: ActivatedRoute, private titleService: Title, private modalService: NgbModal,private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService) { }\n\n ngOnInit(): void {\n //this.AddNewRow(0);\n this.appConfig = this.appConfigService.getConfig();\n this.getAllTransitionrules();\n let loginDetails = JSON.parse(localStorage.getItem(\"loginDetails\"));\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.isConfigureEditable = AppGlobals.CustomerFrameAgreementWorkFlowEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.singleFieldObj.Id = this.route.snapshot.params[\"id\"];\n \n this.getAccess();\n\n this.GetTransitionRuleForCurrentStateById(this.singleFieldObj.Id);\n this.getDetailsById(this.singleFieldObj.Id);\n this.getWorkFlowActionHistoryById(this.singleFieldObj.Id);\n // this.getaccesinfotoCancel(this.UserRole);\n this.getAllProductModel(\"ProductModel\", \"GetAllModel\");\n }\n\n getWorkFlowActionHistoryById(CustId:number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + CustId;\n\n this.commonService.GetData('WorkflowActionHistory', 'GetById', queryString).subscribe((data: any) => {\n \n //this.data=data;\n this.historydata= data;\n \n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n\n GetTransitionRuleForCurrentStateById(customerid:number)\n { \n let queryString = \"\";\n queryString=\"customerid=\"+customerid;\n this.commonService.GetData('CustomerSpecialDiscount','GetTransitionRuleForCurrentStateById',queryString).subscribe((data:any)=>\n {\n this.singleFieldObj.tranisitionrulesobj=data;\n this.workflowActionListforApproval.push(this.singleFieldObj.tranisitionrulesobj);\n this.GetAll(customerid);\n });\n }\n\n GetAll(customerid:number)\n {\n let queryString = \"\";\n queryString=\"customerid=\"+customerid;\n this.commonService.GetData('CustomerSpecialDiscount', 'GetAll', queryString).subscribe((data: any) => {\n this.dataList = data;\n this.showLoader = true;\n\n var record=this.dataList.filter(x=>x.FK_CustomerId==customerid);\n //this.commonService.GetData('')\n this.currentWorkFlowStatus=record[0]?.FK_Workflow_Status;\n\n var actionlist=this.singleFieldObj.tranisitionrulesobj.filter(x=>x.current_state_id==this.currentWorkFlowStatus&&x.action_by_role_id==this.UserRole);\n\n actionlist.forEach(ele=>\n {\n if(ele.condition_code!=\"DiscountSaveAsDraft\")\n {\n if(ele.actionname!=\"Edit\")\n {\n this.workflowActions.push(ele);\n \n }\n }\n \n this.showLoader=true;\n });\n\n this.getAllCustomer(\"Customer\", \"GetAll\"); \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n \n Update(myform: any) {\n\n this.productModelrequired=false;\n if (this.singleFieldComponent.ismultiplerecords) {\n if (this.singleFieldObj.customerSpecialDiscountInfo.length == 0) {\n this.singleFieldObj.customerSpecialDiscountInfo[0].ProductModelRequired = true;\n this.showLoader = false;\n return;\n }\n else {\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n if (element.Fk_ProductModel == null || element.Fk_ProductModel == undefined || element.Fk_ProductModel == 0 ) {\n element.ProductModelRequired = true;\n }\n else {\n element.ProductModelRequired = false;\n } \n });\n }\n }\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n if (element.ProductModelRequired) {\n this.productModelrequired=true;\n this.showLoader = false;\n return;\n }\n });\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to update this Customer Frame Agreement ?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n \n if(this.productModelrequired==false){\n let queryString = \"\";\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element=>\n {\n element.Fk_Customer=this.singleFieldObj.Id \n element.Comment=this.singleFieldObj.Comment\n }); \n queryString = \"id=\" +this.WorkflowStatus;\n \n this.commonService.PostData('CustomerSpecialDiscount', 'Add', this.singleFieldObj.customerSpecialDiscountInfo, queryString,null).subscribe((data: any) => {\n let result = data;\n\n this.showLoader = false;\n //if(this.UserRole==\"1\"){\n if (result.ResponseCode == 1) {\n this.toastr.success('Customer Frame Agreement Updated successfully!');\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n \n }\n else if (data.ResponseCode == 0) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning('Customer Frame Agreement already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to Update Customer Frame Agreement!');\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n }\n \n }, error => {\n this.toastr.error('Failed to Update Customer Frame Agreement!');\n this.showLoader = false;\n this.router.navigate(['/Dashboard']);\n });\n }\n }\n });\n\n }\n\n getDetailsById(Id: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.commonService.GetData('CustomerSpecialDiscount', 'GetById', queryString).subscribe((data: any) => {\n //this.ProductModelDiscount = data;\n this.singleFieldObj.customerSpecialDiscountInfo=data;\n this.editFormValues=false;\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n\n editForm() {\n if (this.editFormValues == false) {\n this.editFormValues = true;\n this.editFormStatus = \"Edit\";\n this.IsNotApproveRejectButton=true;\n this.titleService.setTitle(this.editFormStatus + \" \" + \"Customer Frame Agreement\"+ \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.editFormStatus + \" \" + \"Customer Frame Agreement\"+ \" - ECOTECH\");\n }\n else {\n this.editFormValues = false;\n this.editFormStatus = \"View\";\n this.IsNotApproveRejectButton=false;\n this.titleService.setTitle(this.editFormStatus + \" \" + \"Customer Frame Agreement\"+ \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.editFormStatus + \" \" + \"Customer Frame Agreement\"+ \" - ECOTECH\");\n }\n }\n\n OnDiscountChange(index)\n {\n \n if (this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount < 0) {\n this.toastr.info('Sales Discount cannot be negative.');\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount = null;\n return;\n }\n else if (this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount > 100) {\n this.toastr.info('Discount cannot be greater than 100.');\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount= null;\n return;\n }\n }\n\n OnProductModelChange(index)\n {\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=0 || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=false;\n }\n else{\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=true;\n }\n\n }\n\n testing: any[] = [];\n\n showItems: Array<{ id: number, value: any[] }>;\n OnSelectProductModel(selectedValue, index) {\n var selectedItem = this.tempProductModel.filter(x => x.Id != selectedValue);\n this.testing.push(selectedItem);\n this.showItems[index].value = this.tempProductModel.filter(x => x.Id == selectedValue);\n\n }\n\n getAllCustomer(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.commonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n this.Customer = data;\n this.CustomerNameDetails=this.Customer.filter(x=>x.Id==this.singleFieldObj.Id);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllProductModel(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.commonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n this.ProductModel = data;\n this.tempProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n AddNewRow(index) {\n if (this.singleFieldObj.Fk_ProductModel != undefined\n && this.singleFieldObj.UnapprovedProductDiscount != undefined) {\n\n this.singleFieldObj.IsRowDeleted = true;\n var obj = new SingleFieldModel();\n obj.Fk_ProductModel = this.singleFieldObj.Fk_ProductModel;\n obj.UnapprovedProductDiscount = this.singleFieldObj.UnapprovedProductDiscount\n\n this.singleFieldObj.UnapprovedProductDiscount = 0;\n this.singleFieldObj.Fk_ProductModel = 0; \n this.singleFieldObj.customerSpecialDiscountInfo.push(obj);\n }\n else{\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=0 || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=false;\n }\n \n }\n }\n\n deleterow(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.singleFieldObj.customerSpecialDiscountInfo.splice(index, 1);\n } else {\n this.singleFieldObj.customerSpecialDiscountInfo.pop();\n }\n }\n });\n }\n\n getAllTransitionrules()\n {\n this.showLoader = true;\n this.commonService.GetData('WorkFlowTransitionRule', 'GetAll', null).subscribe((data: any) => {\n this.singleFieldObj.tranisitionrulesobj = data;\n this.singleFieldObj.tranisitionrulesobj.forEach(element=>\n {\n // if(element.condition_code=='DiscountSaveAsDraftAfterEdit')\n // {\n // this.workflowActionList.push(element); \n // }\n if(element.actionname=='Edit'&& element.action_by_role_id==this.UserRole)\n {\n this.workflowActionList.push(element); \n }\n \n });\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n \n\n getActionListbyId()\n {\n this.showLoader = true;\n this.commonService.GetData('WorkFlowTransitionRule', 'GetActionsbyId', null).subscribe((data: any) => {\n this.singleFieldObj.tranisitionrulesobj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n OnWorkflowAction(myform:NgForm,nextstateid:number){ \n \n var rule= this.workflowActionList.filter(x=>x.next_state_id==nextstateid && x.action_by_role_id==this.UserRole);\n this.WorkflowStatus=rule[0].next_state_id;\n // this.EnquiryObj.EnquiryDetails.FK_transitionrule_id=rule[0].transition_rule_id;\n // this.SetStatus(rule[0].next_state_id,myform2); \n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n element.action_id=rule[0].action_id;\n }); \n this.Update(myform);\n } \n\n OnWorkflowActionForApproval(myform:NgForm,nextstateid:number)\n {\n var rule= this.workflowActions.filter(x=>x.next_state_id==nextstateid);\n this.WorkflowStatus=rule[0].next_state_id;\n this.action_id=rule[0].action_id;\n \n this.UpdateStatusForWorkFlow(this.singleFieldObj.Id ,this.WorkflowStatus); \n }\n\n UpdateStatusForWorkFlow(Customerid:any,WorkflowStatus:any)\n {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to Continue with this Action ?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n \n let queryString=\"\";\n queryString = \"WorkflowStatus=\" +this.WorkflowStatus + \"&action_id=\"+ this.action_id + \"&Comment=\"+ this.singleFieldObj.Comment;\n this.commonService.PostStatus('CustomerSpecialDiscount', 'UpdateStatusForWorkFlow', queryString,this.singleFieldObj.Id).subscribe((data: any) => {\n let result = data;\n\n this.showLoader = false;\n //if(this.UserRole==\"1\"){\n if (result.ResponseCode == 1) {\n this.toastr.success('Customer Frame Agreement Updated successfully!');\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n \n }\n \n else {\n this.toastr.error('Failed to Update Customer Frame Agreement!');\n this.router.navigate(['/CustomerFrameAgreementDetails']);\n }\n \n }, error => {\n this.toastr.error('Failed to Update Customer Frame Agreement!');\n this.showLoader = false;\n this.router.navigate(['/Dashboard']);\n });\n \n }\n });\n\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isCustomerFrameAgreementEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='IsCustomerFrameAgreement')[0]?.IsEditable; \n }); \n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if\n (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n\n }\n else {\n return true;\n }\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Customer Frame Agreement For : {{CustomerNameDetails[0]?.CompanyName}}\n

    \n
    \n
    \n\n
    \n\n\n
    \n\n
    \n
    \n    \n
    \n \n
    \n\n\n
    \n \n\n \n \n\n \n Product Model\n \n \n Existing Frame Agreement Discount\n \n \n New Frame Agreement Discount\n \n \n Action\n \n\n \n \n\n \n\n \n \n \n \n \n
    \n \n Product Model is required\n
    \n \n \n \n\n \n\n \n \n \n \n\n \n\n 0) && ((singleFieldObj.customerSpecialDiscountInfo.length - 1 ) == i)\"\n (click)=\"AddNewRow(singleFieldObj.customerSpecialDiscountInfo.length+1)\"\n style=\"color:#000000;width: 25px;height: 25px;float: right;\"\n class=\"btn btn-primary m-btn m-btn--icon m-btn--icon-only mr-2\">\n \n \n 1) && ((singleFieldObj.customerSpecialDiscountInfo.length - 1 ) == i)\"\n (click)=\"deleterow(i)\"\n style=\"color:#ffffff;width: 25px;height: 25px;\"\n class=\"btn btn-metal m-btn m-btn--icon m-btn--icon-only mr-2\">\n \n \n\n\n\n \n \n\n\n \n\n \n\n
    \n\n \n
    \n\n \n Limit {{maxLimit}} characters,\n {{remLimit}} characters\n remaining.\n
    \n
    \n\n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n \n    \n   \n \n\n \n\n \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n

    Workflow Action History\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    CustomerId\n {{row.CustomerId}} Action By\n {{row.userName}} Action By Role\n {{row.userrole}}Action\n {{row.action_name}} Action On\n \n {{row.ActionOn | date: \"dd-MMM-yyyy h:mm a\"}} Comment {{row.Comment}}
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { SingleFieldModel, SingleFieldComponent } from 'src/app/Model/SingleFieldModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { element } from 'protractor';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-configuration',\n templateUrl: './add-configuration.component.html',\n styleUrls: ['./add-configuration.component.scss']\n})\nexport class AddConfigurationComponent implements OnInit {\n\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n //CustomerSpecialDiscountObject:SingleFieldModel [] = Array();\n charCode: any;\n IndustrySegment: any[] = [];\n CategoryRegion: any[] = [];\n\n isdropdowninactive: boolean = false;\n\n\n SubSegment: any[] = [];\n TermsAndConditions: any[] = []\n @Input()\n showLoader: boolean = false;\n Roles: any[] = [];\n Customer: any[] = [];\n ProductModel: any[] = [];\n tempProductModel: any[] = [];\n NewArr: any[] = [];\n temp_ProductModel: any[] = [];\n ProductModelDiscountArr: SingleFieldModel[] = [];\n productModelrequired: boolean=false;\n productDiscountrequired: boolean;\n OtherComponent: boolean;\n constructor(private router: Router, private toastr: ToastrService, private CommonService: CommonService,\n public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title, private appConfigService: AppConfigService) { }\n ngOnInit() {\n // alert(this.singleFieldObj.CustomerSpecialDiscountObject);\n this.AddNewRow(0);\n this.singleFieldComponent.RoutingParam = this.route.snapshot.params[\"heading\"];\n if (this.singleFieldComponent.RoutingParam == \"CustomerSpecialDiscount\") {\n this.singleFieldObj.Fk_Customer = this.route.snapshot.params[\"id\"]\n if (this.singleFieldObj.Fk_Customer != undefined) {\n this.isdropdowninactive = true;\n }\n else this.isdropdowninactive = false\n }\n\n this.showLoader = true;\n this.OtherComponent=true;\n switch (this.singleFieldComponent.RoutingParam) {\n case \"MDSOption\":\n this.singleFieldComponent.Heading = \"MDS Option\";\n this.singleFieldComponent.RoutingParam = \"MDSOption\";\n this.singleFieldComponent.ButtonText = \"Add MDS Option\";\n this.singleFieldComponent.ConfirmationText = \"MDS option\";\n this.singleFieldComponent.ControllerName = \"MDSOptions\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"MDS option\";\n this.singleFieldComponent.firstFiledLabel = \"MDS Option\";\n this.singleFieldComponent.firstFieldValidationMsg = \"MDS option\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"SalesPrice\":\n this.singleFieldComponent.Heading = \"Sales Price Discount\";\n this.singleFieldComponent.RoutingParam = \"SalesPrice\";\n this.singleFieldComponent.ButtonText = \"Add Sales Price Discount\";\n this.singleFieldComponent.ConfirmationText = \"sales price\";\n this.singleFieldComponent.ControllerName = \"SalesPrice\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Sales price\";\n this.singleFieldComponent.firstFiledLabel = \"Sales Price\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Sales price\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isExtraFields = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = '';\n this.getAllRoles();\n // this.singleFieldComponent.FirstFiledPatternValidationMessage = \"Please enter alphanumeric values ​​only\";\n // this.singleFieldComponent.FirstFiledPatternValidationMessage = \"Please enter alphanumeric values ​​only\";\n // this.singleFieldComponent.FirstFiledPatternValidationMessage = \"Please enter alphanumeric values ​​only\";\n break;\n case \"Country\":\n this.singleFieldComponent.Heading = \"Country\";\n this.singleFieldComponent.RoutingParam = \"Country\";\n this.singleFieldComponent.ButtonText = \"Add Country\";\n this.singleFieldComponent.ConfirmationText = \"country\";\n this.singleFieldComponent.ControllerName = \"Country\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Country\";\n this.singleFieldComponent.SuccessText2 = \"Country Code\";\n this.singleFieldComponent.firstFiledLabel = \"Country\";\n this.singleFieldComponent.secondFiledLabel = \"Country Code\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Country\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Country Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.SecondFieldMaxLen = 10;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"Invalid\";\n break;\n\n case \"CustomerCategory\":\n this.singleFieldComponent.Heading = \"Customer Category\";\n this.singleFieldComponent.RoutingParam = \"CustomerCategory\";\n this.singleFieldComponent.ButtonText = \"Add Customer Category\";\n this.singleFieldComponent.ConfirmationText = \"customer category\";\n this.singleFieldComponent.ControllerName = \"CustomerCategory\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Customer category\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Category\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Customer category\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"CustomerClassification\":\n this.singleFieldComponent.Heading = \"Customer Classification\";\n this.singleFieldComponent.RoutingParam = \"CustomerClassification\";\n this.singleFieldComponent.ButtonText = \"Add Customer Classification\";\n this.singleFieldComponent.ConfirmationText = \"customer classification\";\n this.singleFieldComponent.ControllerName = \"CustomerClassification\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Customer classification\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Classification\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Customer classification\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"EnquirySource\":\n this.singleFieldComponent.Heading = \"Enquiry Source\";\n this.singleFieldComponent.RoutingParam = \"EnquirySource\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Source\";\n this.singleFieldComponent.ConfirmationText = \"enquiry source\";\n this.singleFieldComponent.ControllerName = \"EnquirySource\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Enquiry source\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Source\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry source\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"IndustrySegment\":\n this.singleFieldComponent.Heading = \"Industry Segment\";\n this.singleFieldComponent.RoutingParam = \"IndustrySegment\";\n this.singleFieldComponent.ButtonText = \"Add Industry Segment\";\n this.singleFieldComponent.ConfirmationText = \"industry segment\";\n this.singleFieldComponent.ControllerName = \"IndustrySegment\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Industry segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Industry segment\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"SubSegment\":\n this.singleFieldComponent.Heading = \"Sub Segment\";\n this.singleFieldComponent.RoutingParam = \"SubSegment\";\n this.singleFieldComponent.ButtonText = \"Add Sub Segment\";\n this.singleFieldComponent.ConfirmationText = \"sub segment\";\n this.singleFieldComponent.ControllerName = \"SubSegment\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Sub segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Industry segment\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Sub segment\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.GetData(\"IndustrySegment\", \"GetAll\");\n break;\n case \"Region\":\n this.singleFieldComponent.Heading = \"Region\";\n this.singleFieldComponent.RoutingParam = \"Region\";\n this.singleFieldComponent.ButtonText = \"Add Region\";\n this.singleFieldComponent.ConfirmationText = \"region\";\n this.singleFieldComponent.ControllerName = \"Region\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Region\";\n this.singleFieldComponent.SuccessText2 = \"Region Code\";\n this.singleFieldComponent.firstFiledLabel = \"Region\";\n this.singleFieldComponent.secondFiledLabel = \"Region Code\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Region\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Region Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.SecondFieldMaxLen = 10;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"TypeofCustomer\":\n this.singleFieldComponent.Heading = \"Type of Customer\";\n this.singleFieldComponent.RoutingParam = \"TypeofCustomer\";\n this.singleFieldComponent.ButtonText = \"Add Type of Customer\";\n this.singleFieldComponent.ConfirmationText = \"type of customer\";\n this.singleFieldComponent.ControllerName = \"CustomerType\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Type of customer\";\n this.singleFieldComponent.firstFiledLabel = \"Type of Customer\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Type of customer\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"EstimatedProductValue\":\n this.singleFieldComponent.Heading = \"Estimated Product Value\";\n this.singleFieldComponent.RoutingParam = \"EstimatedProductValue\";\n this.singleFieldComponent.ButtonText = \"Add Estimated Product Value\";\n this.singleFieldComponent.ConfirmationText = \"estimated product value\";\n this.singleFieldComponent.ControllerName = \"EstimatedProductValue\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Estimated product value\";\n this.singleFieldComponent.firstFiledLabel = \"Estimated Product Value\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Estimated product value\";\n this.singleFieldComponent.secondFiledLabel = \"Role\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Role\"\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getAllRoles();\n break;\n case \"Currency\":\n this.singleFieldComponent.Heading = \"Currency\";\n this.singleFieldComponent.RoutingParam = \"Currency\";\n this.singleFieldComponent.ButtonText = \"Add Currency\";\n this.singleFieldComponent.ConfirmationText = \"currency\";\n this.singleFieldComponent.ControllerName = \"Currency\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Currency\";\n this.singleFieldComponent.firstFiledLabel = \"Currency\";\n this.singleFieldComponent.secondFiledLabel = \"Exchange Rate (€)\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Currency\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Exchange rate\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = /^[0-9]\\d*(\\.\\d+)?$/;\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.SecondFieldMaxLen = 6;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"TermsConditions\":\n this.singleFieldComponent.Heading = \"Terms & Conditions\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions\";\n this.singleFieldComponent.ButtonText = \"Add Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditions\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition\";\n this.singleFieldComponent.secondFiledLabel = \"Standard Value\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Terms & condition\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Standard Value\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n case \"StandardReasonforWinningLosing\":\n this.singleFieldComponent.Heading = \"Standard Reason\";\n this.singleFieldComponent.RoutingParam = \"StandardReasonforWinningLosing\";\n this.singleFieldComponent.ButtonText = \"Add Standard Reason\";\n this.singleFieldComponent.ConfirmationText = \"standard reason for winning/losing\";\n this.singleFieldComponent.ControllerName = \"ReasonEnquiryWinLoss\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Standard reason for winning/losing\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Status\";\n this.singleFieldComponent.secondFiledLabel = \"Select Catagory\";\n this.singleFieldComponent.thirdFieldLabel = \"Reason for Winning/Losing\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry status\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Required\";\n this.singleFieldComponent.ThirdFieldValidationMsg = \"Reason for winning/losing\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true;\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 10;\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.ThirdFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getAllCategoryRegion();\n break;\n case \"EnquiryCloseReason\":\n this.singleFieldComponent.Heading = \"Enquiry Close Reason\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Close Reason\";\n this.singleFieldComponent.ControllerName = \"EnquiryCloseReason\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Enquiry Close Reason\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Close Reason\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry Close Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n\n case \"LeadCloseReason\":\n this.singleFieldComponent.Heading = \"Lead Close Reason\";\n this.singleFieldComponent.RoutingParam = \"LeadCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Lead Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Lead close reason\";\n this.singleFieldComponent.ControllerName = \"OpportunityCloseReason\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Lead close reason\";\n this.singleFieldComponent.firstFiledLabel = \"Lead Close Reason\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Lead Close Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n\n case \"EnquiryCompetitor\":\n this.singleFieldComponent.Heading = \"Enquiry Competitor\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCompetitor\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Competitor\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Competitor\";\n this.singleFieldComponent.ControllerName = \"EnquiryCompetitor\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Enquiry Competitor\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Competitor\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry Competitor\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n\n case \"CustomerGroup\":\n this.singleFieldComponent.Heading = \"Customer Group\";\n this.singleFieldComponent.RoutingParam = \"CustomerGroup\";\n this.singleFieldComponent.ButtonText = \"Add Customer Group\";\n this.singleFieldComponent.ConfirmationText = \"customer group\";\n this.singleFieldComponent.ControllerName = \"CustomerGroup\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Customer group\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Group\";\n this.singleFieldComponent.secondFiledLabel = \"Customer Group Code\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Customer Group\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Customer Group Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.SecondFieldMaxLen = 150;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n\n case \"TechnicalDiscardReason\":\n this.singleFieldComponent.Heading = \"Technical Discard Reason\";\n this.singleFieldComponent.RoutingParam = \"TechnicalDiscardReason\";\n this.singleFieldComponent.ButtonText = \"Add Technical Discard Reason\";\n this.singleFieldComponent.ConfirmationText = \"Technical discard reason\";\n this.singleFieldComponent.ControllerName = \"TechnicalDiscard\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Technical discard reason\";\n this.singleFieldComponent.firstFiledLabel = \"Technical Discard Reason\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Technical Discard Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n\n\n case \"TermsConditions-NonStandard\":\n this.singleFieldComponent.Heading = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions-NonStandard\";\n this.singleFieldComponent.ButtonText = \"Add Non Standard Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"non standard terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditionsCustomized\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions-Non Standard\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition-Non Standard\";\n this.singleFieldComponent.secondFiledLabel = \"Non Standard Value\";\n this.singleFieldComponent.TableHeader1 = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.TableHeader2 = \"Non Standard Values\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Non standard term & condition\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Non standard value\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.GetData(\"TermsAndConditions\", \"GetAll\");\n break;\n\n case \"Application\":\n this.singleFieldComponent.Heading = \"Application\";\n this.singleFieldComponent.RoutingParam = \"Application\";\n this.singleFieldComponent.ButtonText = \"Add Application\";\n this.singleFieldComponent.ConfirmationText = \"Application\";\n this.singleFieldComponent.ControllerName = \"Application\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Application\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.thirdFieldLabel = \"Application Name\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.TableHeader2 = \"Sub Segment\";\n this.singleFieldComponent.TableHeader3 = \"Application\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Industry Segment\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Sub Segment\";\n this.singleFieldComponent.thirdFieldValidationMsg = \"Application Name\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true;\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.ThirdFieldMaxLen = 250;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.SecondFieldPattern = \"\";\n this.singleFieldComponent.SecondFieldPatternValidationMessage = \"\";\n this.singleFieldComponent.ThirdFieldPattern = \"\";\n this.singleFieldComponent.ThirdFieldPatternValidationMessage = \"\";\n this.GetData(\"IndustrySegment\", \"GetAll\");\n \n break;\n\n\n case \"CustomerSpecialDiscount\":\n \n this.router.navigate(['/AddContractFrameAgreementComponent/0']);\n // this.singleFieldComponent.Heading = \"Customer Frame Agreement\";\n // this.singleFieldComponent.RoutingParam = \"CustomerSpecialDiscount\";\n // this.singleFieldComponent.ButtonText = \"Add Customer Frame Agreement\";\n // this.singleFieldComponent.ConfirmationText = \"Customer Frame Agreement\";\n // this.singleFieldComponent.ControllerName = \"CustomerSpecialDiscount\";\n // this.singleFieldComponent.ActionName = \"Add\";\n // this.singleFieldComponent.SuccessText = \"Customer Frame Agreement\";\n\n // this.singleFieldComponent.firstFiledLabel = \"Frame Agreement\";\n // this.singleFieldComponent.secondFiledLabel = \"Product Model\";\n // this.singleFieldComponent.thirdFiledLabel = \"Customer Name\";\n // this.singleFieldComponent.firstFieldValidationMsg = \"Customer Name\";\n // this.singleFieldComponent.SecondFieldValidationMsg = \"Product Model\";\n // this.singleFieldComponent.ThirdFieldValidationMsg = \"Product Model\";\n // this.singleFieldComponent.isDoubleField = false;\n // // this.singleFieldComponent.isDropdownrequird = false;\n // this.singleFieldComponent.isvariablediscountfield = true;\n // this.singleFieldComponent.isthirdfielddropdown = true;\n // this.singleFieldComponent.issecondfielddropdown = true;\n // this.singleFieldComponent.ismultiplerecords = true;\n // this.singleFieldComponent.Pattern = \"\";\n // this.singleFieldComponent.FirstFieldMaxLen = 100;\n // this.singleFieldComponent.SecondFieldMaxLen = 100;\n // this.singleFieldComponent.FirstFiledPattern = \"\";\n // this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n\n // this.getAllCustomer(\"Customer\", \"GetAll\");\n\n // this.getAllProductModel(\"ProductModel\", \"GetAllModel\");\n \n break;\n\n case \"RoleManagement\":\n this.singleFieldComponent.Heading = \"Role Management\";\n this.singleFieldComponent.RoutingParam = \"RoleManagement\";\n this.singleFieldComponent.ButtonText = \"Add Role\";\n this.singleFieldComponent.ConfirmationText = \"Role Management\";\n this.singleFieldComponent.ControllerName = \"Account\";\n this.singleFieldComponent.ActionName = \"Add\";\n this.singleFieldComponent.SuccessText = \"Role Management\";\n this.singleFieldComponent.firstFiledLabel = \"Role Management\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Role Management\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n break;\n\n\n }\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(this.singleFieldComponent.ButtonText + \" - \" + appConfig.titleName);\n //this.titleService.setTitle(this.singleFieldComponent.ButtonText + \" - ECOTECH\");\n this.showLoader = false;\n }\n\n\n /*******************************************************************************\n * Get data\n * ******************************************************************************/\n GetData(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n\n this.CommonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n if (ControllerName === 'IndustrySegment') { this.IndustrySegment = data; }\n else if (ControllerName === 'SubSegment') { this.SubSegment = data; }\n else { this.TermsAndConditions = data; }\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n getAllCustomer(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.CommonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n this.Customer = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllProductModel(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.CommonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n this.ProductModel = data;\n this.tempProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllRoles() {\n this.showLoader = true;\n this.CommonService.GetData(\"Account\", \"GetAllEmployeeRoles\", null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n\n // **************************** For Validation of Discount ******************************\n\n OnDiscountChange(index) {\n\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount==undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel==null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount=0;\n }\n\n if (this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount < 0) {\n this.toastr.info(' Discount cannot be negative.');\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount = 0;\n return;\n }\n else if (this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount > 100) {\n this.toastr.info('Discount cannot be greater than 100.');\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductDiscount = 0;\n return;\n }\n }\n\n //**********************Discount change for to and from******************************** */\n\n /*OnDiscountChangeToFrom(index)\n {\n if (this.singleFieldObj[index].DiscountFrom < 0 || this.singleFieldObj[index].DiscountTo<0) {\n alert(' Discount cannot be negative.');\n this.singleFieldObj[index].DiscountFrom = null;\n return;\n }\n else if (this.singleFieldObj[index].DiscountFrom > 100|| this.singleFieldObj[index].DiscountTo > 100) {\n alert('Discount cannot be greater than 100.');\n this.singleFieldObj[index].DiscountTo = null;\n return; \n }\n else if(this.singleFieldObj[index].DiscountFrom>this.singleFieldObj[index].DiscountTo)\n {\n alert('Discount To must be less than Discount From');\n this.singleFieldObj[index].DiscountTo=null;\n }\n \n \n }\n */\n onIndustrySegmentSelect(e: any) {\n this.GetSubSegment(e.target.value);\n }\n\n //Get sub segment by industry segment id\n GetSubSegment(SegmentId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SegmentId=\" + SegmentId;\n this.CommonService.GetData(\"SubSegment\", \"GetByIndustrySegmentId\", queryString).subscribe((data: any) => {\n this.SubSegment = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End Get data\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if\n (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n\n }\n else {\n return true;\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n this.productModelrequired=false;\n if (this.singleFieldComponent.ismultiplerecords) {\n if (this.singleFieldObj.customerSpecialDiscountInfo.length == 0) {\n this.singleFieldObj.customerSpecialDiscountInfo[0].ProductModelRequired = true;\n this.showLoader = false;\n return;\n }\n else {\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n if (element.Fk_ProductModel == null || element.Fk_ProductModel == undefined || element.Fk_ProductModel == 0 ) {\n element.ProductModelRequired = true;\n }\n else {\n element.ProductModelRequired = false;\n } \n });\n }\n }\n this.singleFieldObj.customerSpecialDiscountInfo.forEach(element => {\n if (element.ProductModelRequired) {\n this.productModelrequired=true;\n this.showLoader = false;\n return;\n }\n });\n\n if (this.productModelrequired == false) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to add this \" + this.singleFieldComponent.ConfirmationText + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n if (this.singleFieldComponent.ismultiplerecords) { \n this.CommonService.PostData(this.singleFieldComponent.ControllerName, 'Add', this.singleFieldObj.customerSpecialDiscountInfo, null, this.singleFieldObj.Fk_Customer).subscribe((data: any) => {\n let result = data;\n\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success(this.singleFieldComponent.SuccessText + ' added successfully!');\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n else if (data.ResponseCode == 0) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning(this.singleFieldComponent.SuccessText + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add ' + this.singleFieldComponent.ConfirmationText + '!');\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n }, error => {\n this.toastr.error('Failed to add ' + this.singleFieldComponent.ConfirmationText + '!');\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n });\n }\n else\n this.CommonService.PostData(this.singleFieldComponent.ControllerName, 'Add', this.singleFieldObj, null).subscribe((data: any) => {\n let result = data;\n\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success(this.singleFieldComponent.SuccessText + ' added successfully!');\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n else if (data.ResponseCode == 0) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning(this.singleFieldComponent.SuccessText + ' already exists!');\n this.showLoader = false;\n }\n else if (data.ResponseCode == 2) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning(this.singleFieldComponent.SuccessText2 + ' already exists!');\n this.showLoader = false;\n }\n\n else {\n this.toastr.error('Failed to add ' + this.singleFieldComponent.ConfirmationText + '!');\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n }, error => {\n this.toastr.error('Failed to add ' + this.singleFieldComponent.ConfirmationText + '!');\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n });\n }\n });\n }\n\n }\n\n deleterow(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.singleFieldObj.customerSpecialDiscountInfo.splice(index, 1);\n } else {\n this.singleFieldObj.customerSpecialDiscountInfo.pop();\n }\n }\n });\n }\n\n testing: any[] = [];\n\n showItems: Array<{ id: number, value: any[] }>;\n OnSelectProductModel(selectedValue, index) {\n var selectedItem = this.tempProductModel.filter(x => x.Id != selectedValue);\n this.testing.push(selectedItem);\n this.showItems[index].value = this.tempProductModel.filter(x => x.Id == selectedValue);\n\n }\n\n AddNewRow(index) {\n if (this.singleFieldObj.Fk_ProductModel != undefined\n && this.singleFieldObj.ProductDiscount != undefined) {\n\n this.singleFieldObj.IsRowDeleted = true;\n var obj = new SingleFieldModel();\n obj.Fk_ProductModel = this.singleFieldObj.Fk_ProductModel;\n obj.ProductDiscount = this.singleFieldObj.ProductDiscount\n\n this.singleFieldObj.ProductDiscount = 0;\n this.singleFieldObj.Fk_ProductModel = 0;\n this.singleFieldObj.customerSpecialDiscountInfo.push(obj);\n }\n else{\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=0 || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=false;\n }\n \n }\n }\n\n OnProductModelChange(index)\n {\n if(this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=0 || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=undefined || this.singleFieldObj.customerSpecialDiscountInfo[index].Fk_ProductModel!=null)\n {\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=false;\n }\n else{\n this.singleFieldObj.customerSpecialDiscountInfo[index].ProductModelRequired=true;\n }\n\n }\n\n fieldChange(value)\n {\n console.log('checkbox value --->',value);\n if(value == true)\n { \n this.singleFieldObj.IsCompetitorRequired = true;\n }\n else\n {\n this.singleFieldObj.IsCompetitorRequired = false;\n }\n \n }\n\n getAllCategoryRegion() {\n this.showLoader = true;\n this.CommonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReasonCategory\", null).subscribe((data: any) => {\n this.CategoryRegion = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add {{singleFieldComponent.Heading}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n\n \n
    \n
    \n\n
    \n\n
    \n
    \n\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SingleFieldModel, SingleFieldComponent } from 'src/app/Model/SingleFieldModel';\nimport { Sort } from '@angular/material/sort';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { ViewChild } from '@angular/core';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { number } from '@amcharts/amcharts4/core';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-configuration-details',\n templateUrl: './configuration-details.component.html',\n styleUrls: ['./configuration-details.component.scss']\n})\nexport class ConfigurationDetailsComponent implements OnInit {\n\n displayedColumns: string[] = ['Name', 'Value', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n UserRole: any;\n isConfigureEditable: boolean = false;\n RouteName : string ='';\n someCondition : boolean = false;\n isReasonCategoryVisible : boolean = false;\n viewedit:boolean=true;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n appConfig : any;\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n UpdateStatus: UpdateStatus = new UpdateStatus();\n configurationArray: string[] = [\"Country\", \"Customer Category\", \"Customer Classification\", \"Enquiry Source\",\n \"Industry Segment\", \"Sub Segment\", \"MDS Option\", \"Region\", \"Sales Price Discount\", \"Type of Customer\", \"Estimated Product Value\",\n \"Customer Group\", \"Technical Discard\", \"Application\",\n \"EnquiryCloseReason\",\"LeadCloseReason\",\"CustomerSpecialDiscount\",\"AddLoginImage\"];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog,\n private route: ActivatedRoute, private router: Router, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n this.appConfig = this.appConfigService.getConfig();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isConfigureEditable = AppGlobals.ConfigureMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.singleFieldComponent.RoutingParam = this.route.snapshot.params[\"heading\"];\n\n this.OnSelect(this.singleFieldComponent.RoutingParam)\n \n if (this.singleFieldComponent.RoutingParam == \"\" || this.singleFieldComponent.RoutingParam == undefined) {\n this.singleFieldComponent.Heading = \"Country\";\n this.singleFieldComponent.RoutingParam = \"Country\";\n this.singleFieldComponent.ButtonText = \"Add Country\";\n this.singleFieldComponent.ConfirmationText = \"country\";\n this.singleFieldComponent.ControllerName = \"Country\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Country\";\n this.singleFieldComponent.firstFiledLabel = \"Country\";\n this.singleFieldComponent.secondFiledLabel = \"Country Code\";\n this.singleFieldComponent.TableHeader1 = \"Country\";\n this.singleFieldComponent.TableHeader2 = \"Country Code\";\n this.singleFieldComponent.isDoubleField = true;\n \n this.GetAll();\n\n }\n else {\n switch (this.singleFieldComponent.RoutingParam) {\n case \"MDSOption\":\n this.singleFieldComponent.Heading = \"MDS Option\";\n this.singleFieldComponent.RoutingParam = \"MDSOption\";\n this.singleFieldComponent.ButtonText = \"Add MDS Option\";\n this.singleFieldComponent.ConfirmationText = \"MDS option\";\n this.singleFieldComponent.ControllerName = \"MDSOptions\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"MDS option\";\n this.singleFieldComponent.firstFiledLabel = \"MDS Option\";\n this.singleFieldComponent.TableHeader1 = \"MDS Option\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"SalesPrice\":\n this.singleFieldComponent.Heading = \" Sales Price Discount\";\n this.singleFieldComponent.RoutingParam = \"SalesPrice\";\n this.singleFieldComponent.ButtonText = \"Add Sales Price Discount\";\n this.singleFieldComponent.ConfirmationText = \"Sales Price Discount\";\n this.singleFieldComponent.ControllerName = \"SalesPrice\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Sales Price Discount\";\n this.singleFieldComponent.firstFiledLabel = \"Sales Price \";\n this.singleFieldComponent.TableHeader1 = \"Sales Price\"; \n this.singleFieldComponent.TableHeader2 = \"Discount % (From - To)\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isExtraFields=true;\n this.GetAll();\n break;\n case \"Country\":\n this.singleFieldComponent.Heading = \"Country\";\n this.singleFieldComponent.RoutingParam = \"Country\";\n this.singleFieldComponent.ButtonText = \"Add Country\";\n this.singleFieldComponent.ConfirmationText = \"country\";\n this.singleFieldComponent.ControllerName = \"Country\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Country\";\n this.singleFieldComponent.firstFiledLabel = \"Country\";\n this.singleFieldComponent.secondFiledLabel = \"Country Code\";\n this.singleFieldComponent.TableHeader1 = \"Country\";\n this.singleFieldComponent.TableHeader2 = \"Country Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n\n case \"CustomerCategory\":\n this.singleFieldComponent.Heading = \"Customer Category\";\n this.singleFieldComponent.RoutingParam = \"CustomerCategory\";\n this.singleFieldComponent.ButtonText = \"Add Customer Category\";\n this.singleFieldComponent.ConfirmationText = \"customer category\";\n this.singleFieldComponent.ControllerName = \"CustomerCategory\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer category\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Category\";\n this.singleFieldComponent.TableHeader1 = \"Customer Category\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"CustomerClassification\":\n this.singleFieldComponent.Heading = \"Customer Classification\";\n this.singleFieldComponent.RoutingParam = \"CustomerClassification\";\n this.singleFieldComponent.ButtonText = \"Add Customer Classification\";\n this.singleFieldComponent.ConfirmationText = \"customer classification\";\n this.singleFieldComponent.ControllerName = \"CustomerClassification\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer classification\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Classification\";\n this.singleFieldComponent.TableHeader1 = \"Customer Classification\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"EnquirySource\":\n this.singleFieldComponent.Heading = \"Enquiry Source\";\n this.singleFieldComponent.RoutingParam = \"EnquirySource\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Source\";\n this.singleFieldComponent.ConfirmationText = \"enquiry source\";\n this.singleFieldComponent.ControllerName = \"EnquirySource\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Enquiry source\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Source\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Source\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"IndustrySegment\":\n this.singleFieldComponent.Heading = \"Industry Segment\";\n this.singleFieldComponent.RoutingParam = \"IndustrySegment\";\n this.singleFieldComponent.ButtonText = \"Add Industry Segment\";\n this.singleFieldComponent.ConfirmationText = \"industry segment\";\n this.singleFieldComponent.ControllerName = \"IndustrySegment\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Industry segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"SubSegment\":\n this.singleFieldComponent.Heading = \"Sub Segment\";\n this.singleFieldComponent.RoutingParam = \"SubSegment\";\n this.singleFieldComponent.ButtonText = \"Add Sub Segment\";\n this.singleFieldComponent.ConfirmationText = \"sub segment\";\n this.singleFieldComponent.ControllerName = \"SubSegment\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Sub segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.TableHeader2 = \"Sub Segment\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"Region\":\n this.singleFieldComponent.Heading = \"Region\";\n this.singleFieldComponent.RoutingParam = \"Region\";\n this.singleFieldComponent.ButtonText = \"Add Region\";\n this.singleFieldComponent.ConfirmationText = \"region\";\n this.singleFieldComponent.ControllerName = \"Region\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Region\";\n this.singleFieldComponent.firstFiledLabel = \"Region\";\n this.singleFieldComponent.secondFiledLabel = \"Region Code\";\n this.singleFieldComponent.TableHeader1 = \"Region\";\n this.singleFieldComponent.TableHeader2 = \"Region Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"TypeofCustomer\":\n this.singleFieldComponent.Heading = \"Type of Customer\";\n this.singleFieldComponent.RoutingParam = \"TypeofCustomer\";\n this.singleFieldComponent.ButtonText = \"Add Type of Customer\";\n this.singleFieldComponent.ConfirmationText = \"type of customer\";\n this.singleFieldComponent.ControllerName = \"CustomerType\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Type of customer\";\n this.singleFieldComponent.firstFiledLabel = \"Type of Customer\";\n this.singleFieldComponent.TableHeader1 = \"Type of Customer\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"EstimatedProductValue\":\n this.singleFieldComponent.Heading = \"Estimated Product Value\";\n this.singleFieldComponent.RoutingParam = \"EstimatedProductValue\";\n this.singleFieldComponent.ButtonText = \"Add Estimated Product Value\";\n this.singleFieldComponent.ConfirmationText = \"estimated product value\";\n this.singleFieldComponent.ControllerName = \"EstimatedProductValue\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Estimated product value\";\n this.singleFieldComponent.firstFiledLabel = \"Estimated Product Value\";\n this.singleFieldComponent.TableHeader1 = \"Estimated Product Value\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.TableHeader2 = \"Role\";\n this.GetAll();\n break;\n case \"Currency\":\n this.singleFieldComponent.Heading = \"Currency\";\n this.singleFieldComponent.RoutingParam = \"Currency\";\n this.singleFieldComponent.ButtonText = \"Add Currency\";\n this.singleFieldComponent.ConfirmationText = \"currency\";\n this.singleFieldComponent.ControllerName = \"Currency\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Currency\";\n this.singleFieldComponent.firstFiledLabel = \"Currency\";\n this.singleFieldComponent.secondFiledLabel = \"Exchange Rate (€)\";\n this.singleFieldComponent.TableHeader1 = \"Currency\";\n this.singleFieldComponent.TableHeader2 = \"Exchange Rate (€)\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"TermsConditions\":\n this.singleFieldComponent.Heading = \"Terms & Conditions\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions\";\n this.singleFieldComponent.ButtonText = \"Add Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditions\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition\";\n this.singleFieldComponent.secondFiledLabel = \"Standard Value\";\n this.singleFieldComponent.TableHeader1 = \"Terms & Conditions\";\n this.singleFieldComponent.TableHeader2 = \"Standard Values\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"StandardReasonforWinningLosing\":\n this.singleFieldComponent.Heading = \"Standard Reason\";\n this.singleFieldComponent.RoutingParam = \"StandardReasonforWinningLosing\";\n this.singleFieldComponent.ButtonText = \"Add Standard Reason\";\n this.singleFieldComponent.ConfirmationText = \"standard reason for winning/losing\";\n this.singleFieldComponent.ControllerName = \"ReasonEnquiryWinLoss\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Standard reason for winning/losing\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Status\";\n this.singleFieldComponent.secondFiledLabel = \"Reason for Winning/Losing\";\n this.singleFieldComponent.thirdFieldLabel = \"Reason Category\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Status\";\n this.singleFieldComponent.TableHeader2 = \"Reason for Winning/Losing\";\n this.singleFieldComponent.TableHeader3 = \"Reason Category\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true; \n this.GetAll();\n break;\n case \"EnquiryCompetitor\":\n this.singleFieldComponent.Heading = \"Enquiry Competitor\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCompetitor\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Competitor\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Competitor\";\n this.singleFieldComponent.ControllerName = \"EnquiryCompetitor\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Enquiry Competitor\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Competitor\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Competitor\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n\n case \"CustomerGroup\":\n this.singleFieldComponent.Heading = \"Customer Group\";\n this.singleFieldComponent.RoutingParam = \"CustomerGroup\";\n this.singleFieldComponent.ButtonText = \"Add Customer Group\";\n this.singleFieldComponent.ConfirmationText = \"customer group\";\n this.singleFieldComponent.ControllerName = \"CustomerGroup\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer group\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Group\";\n this.singleFieldComponent.secondFiledLabel = \"Customer Group Code\";\n this.singleFieldComponent.TableHeader1 = \"Customer Group \";\n this.singleFieldComponent.TableHeader2 = \"Customer Group Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n \n case \"TechnicalDiscardReason\":\n this.singleFieldComponent.Heading = \"Technical Discard Reason\";\n this.singleFieldComponent.RoutingParam = \"TechnicalDiscardReason\";\n this.singleFieldComponent.ButtonText = \"Add Technical Discard Reason\";\n this.singleFieldComponent.ConfirmationText = \"Technical discard reason\";\n this.singleFieldComponent.ControllerName = \"TechnicalDiscard\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Technical discard reason\";\n this.singleFieldComponent.firstFiledLabel = \"Technical Discard Reason\";\n this.singleFieldComponent.TableHeader1 = \"Technical Discard Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n \n case \"TermsConditions-NonStandard\":\n this.singleFieldComponent.Heading = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions-NonStandard\";\n this.singleFieldComponent.ButtonText = \"Add Non Standard Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"non standard terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditionsCustomized\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions-Non Standard\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition-Non Standard\";\n this.singleFieldComponent.secondFiledLabel = \"Non Standard Value\";\n this.singleFieldComponent.TableHeader1 = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.TableHeader2 = \"Non Standard Values\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"Application\":\n this.singleFieldComponent.Heading = \"Application\";\n this.singleFieldComponent.RoutingParam = \"Application\";\n this.singleFieldComponent.ButtonText = \"Add Application\";\n this.singleFieldComponent.ConfirmationText = \"Application\";\n this.singleFieldComponent.ControllerName = \"Application\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Application\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.thirdFieldLabel = \"Application Name\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.TableHeader2 = \"Sub Segment\";\n this.singleFieldComponent.TableHeader3 = \"Application\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true;\n this.GetAll();\n break;\n case \"EnquiryCloseReason\":\n this.singleFieldComponent.Heading = \"Enquiry Close Reason\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Close Reason\";\n this.singleFieldComponent.ControllerName = \"EnquiryCloseReason\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Enquiry Close Reason\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Close Reason\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Close Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n\n case \"LeadCloseReason\":\n this.singleFieldComponent.Heading = \"Lead Close Reason\";\n this.singleFieldComponent.RoutingParam = \"LeadCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Lead Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Lead close reason\";\n this.singleFieldComponent.ControllerName = \"OpportunityCloseReason\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Lead close reason\";\n this.singleFieldComponent.firstFiledLabel = \"Lead Close Reason\";\n this.singleFieldComponent.TableHeader1 = \"Lead Close Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n \n // case \"CustomerSpecialDiscount\":\n // this.singleFieldComponent.Heading = \"Customer Special Discount\";\n // this.singleFieldComponent.RoutingParam = \"CustomerSpecialDiscount\";\n // this.singleFieldComponent.ButtonText = \"Add Customer Special Discount\";\n // this.singleFieldComponent.ConfirmationText = \"Customer Special Discount\";\n // this.singleFieldComponent.ControllerName = \"CustomerSpecialDiscount\";\n // this.singleFieldComponent.ActionName = \"GetAllPagination\";\n // this.singleFieldComponent.SuccessText = \"Customer Special Discount\";\n // this.singleFieldComponent.firstFiledLabel = \"Customer Special Discount\";\n // this.singleFieldComponent.TableHeader1 = \"Customer Name\";\n // this.singleFieldComponent.isCompanynamerequired = true;\n // this.singleFieldComponent.isDoubleField = false;\n // this.GetAll();\n // break;\n\n case \"CustomerSpecialDiscount\":\n this.singleFieldComponent.Heading = \"Customer Frame Agreement\";\n this.singleFieldComponent.RoutingParam = \"CustomerSpecialDiscount\";\n this.singleFieldComponent.ButtonText = \"Add Customer Frame Agreement\";\n this.singleFieldComponent.ConfirmationText = \"Customer Frame Agreement\";\n this.singleFieldComponent.ControllerName = \"CustomerSpecialDiscount\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer Frame Agreement\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Frame Agreement\";\n this.singleFieldComponent.TableHeader1 = \"Customer Name\";\n this.singleFieldComponent.isCompanynamerequired = true;\n this.singleFieldComponent.secondFiledLabel = \"WorkFlow Status\";\n \n this.singleFieldComponent.TableHeader2 = \"WorkFlow Status\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n\n case \"RoleManagement\":\n this.singleFieldComponent.Heading = \"Role Management\";\n this.singleFieldComponent.RoutingParam = \"RoleManagement\";\n this.singleFieldComponent.ButtonText = \"Add Role\";\n this.singleFieldComponent.ConfirmationText = \"Role Management\";\n this.singleFieldComponent.ControllerName = \"Account\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Role Management\";\n this.singleFieldComponent.firstFiledLabel = \"Role Management\";\n this.singleFieldComponent.TableHeader1 = \"Role Management\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"AddLoginImage\":\n this.singleFieldComponent.Heading=\"LoginPageImage\";\n this.singleFieldComponent.RoutingParam=\"AddLoginImage\";\n this.singleFieldComponent.ButtonText = \"Add LoginPageImage\";\n this.singleFieldComponent.ConfirmationText = \"LoginPageImage \";\n this.singleFieldComponent.ControllerName = \"LoginPageImage\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"\";\n this.singleFieldComponent.firstFiledLabel = \"LoginPageImage\";\n this.singleFieldComponent.TableHeader1 = \"LoginPageImage\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n\n\n }\n this.showLoader = false;\n\n\n }\n this.titleService.setTitle(this.singleFieldComponent.Heading + \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.singleFieldComponent.Heading + \" - ECOTECH\");\n }\n\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAll() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n MasterChange() {\n this.showLoader = true;\n this.singleFieldComponent.isCompanynamerequired = false;\n this.pageNumber = 1;\n this.pageSize = 5;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.SearchText = \"\";\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n\n \n this.OnSelect(this.singleFieldComponent.RoutingParam);\n this.singleFieldComponent.isExtraFields=false;\n \n switch (this.singleFieldComponent.RoutingParam) {\n case \"MDSOption\":\n this.singleFieldComponent.Heading = \"MDS Option\";\n this.singleFieldComponent.RoutingParam = \"MDSOption\";\n this.singleFieldComponent.ButtonText = \"Add MDS Option\";\n this.singleFieldComponent.ConfirmationText = \"MDS option\";\n this.singleFieldComponent.ControllerName = \"MDSOptions\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"MDS option\";\n this.singleFieldComponent.firstFiledLabel = \"MDS Option\";\n this.singleFieldComponent.TableHeader1 = \"MDS Option\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"SalesPrice\":\n this.singleFieldComponent.Heading = \"Sales Price Discount\";\n this.singleFieldComponent.RoutingParam = \"SalesPrice\";\n this.singleFieldComponent.ButtonText = \"Add Sales Price Discount\";\n this.singleFieldComponent.ConfirmationText = \"sales price Discount\";\n this.singleFieldComponent.ControllerName = \"SalesPrice\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Sales price Discount\";\n this.singleFieldComponent.firstFiledLabel = \"Sales Price\";\n this.singleFieldComponent.TableHeader1 = \"Sales Price\";\n this.singleFieldComponent.secondFiledLabel = \"From\";\n this.singleFieldComponent.TableHeader2 = \"Discount % (From - To)\";\n \n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isExtraFields=true;\n this.GetAll();\n break;\n case \"Country\":\n this.singleFieldComponent.Heading = \"Country\";\n this.singleFieldComponent.RoutingParam = \"Country\";\n this.singleFieldComponent.ButtonText = \"Add Country\";\n this.singleFieldComponent.ConfirmationText = \"country\";\n this.singleFieldComponent.ControllerName = \"Country\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Country\";\n this.singleFieldComponent.firstFiledLabel = \"Country\";\n this.singleFieldComponent.secondFiledLabel = \"Country Code\";\n this.singleFieldComponent.TableHeader1 = \"Country\";\n this.singleFieldComponent.TableHeader2 = \"Country Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n\n case \"CustomerCategory\":\n this.singleFieldComponent.Heading = \"Customer Category\";\n this.singleFieldComponent.RoutingParam = \"CustomerCategory\";\n this.singleFieldComponent.ButtonText = \"Add Customer Category\";\n this.singleFieldComponent.ConfirmationText = \"customer category\";\n this.singleFieldComponent.ControllerName = \"CustomerCategory\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer category\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Category\";\n this.singleFieldComponent.TableHeader1 = \"Customer Category\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"CustomerClassification\":\n this.singleFieldComponent.Heading = \"Customer Classification\";\n this.singleFieldComponent.RoutingParam = \"CustomerClassification\";\n this.singleFieldComponent.ButtonText = \"Add Customer Classification\";\n this.singleFieldComponent.ConfirmationText = \"customer classification\";\n this.singleFieldComponent.ControllerName = \"CustomerClassification\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer classification\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Classification\";\n this.singleFieldComponent.TableHeader1 = \"Customer Classification\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"EnquirySource\":\n this.singleFieldComponent.Heading = \"Enquiry Source\";\n this.singleFieldComponent.RoutingParam = \"EnquirySource\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Source\";\n this.singleFieldComponent.ConfirmationText = \"enquiry source\";\n this.singleFieldComponent.ControllerName = \"EnquirySource\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Enquiry source\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Source\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Source\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"IndustrySegment\":\n this.singleFieldComponent.Heading = \"Industry Segment\";\n this.singleFieldComponent.RoutingParam = \"IndustrySegment\";\n this.singleFieldComponent.ButtonText = \"Add Industry Segment\";\n this.singleFieldComponent.ConfirmationText = \"industry segment\";\n this.singleFieldComponent.ControllerName = \"IndustrySegment\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Industry segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"SubSegment\":\n this.singleFieldComponent.Heading = \"Sub Segment\";\n this.singleFieldComponent.RoutingParam = \"SubSegment\";\n this.singleFieldComponent.ButtonText = \"Add Sub Segment\";\n this.singleFieldComponent.ConfirmationText = \"sub segment\";\n this.singleFieldComponent.ControllerName = \"SubSegment\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Sub segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.TableHeader2 = \"Sub Segment\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"Region\":\n this.singleFieldComponent.Heading = \"Region\";\n this.singleFieldComponent.RoutingParam = \"Region\";\n this.singleFieldComponent.ButtonText = \"Add Region\";\n this.singleFieldComponent.ConfirmationText = \"region\";\n this.singleFieldComponent.ControllerName = \"Region\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Region\";\n this.singleFieldComponent.firstFiledLabel = \"Region\";\n this.singleFieldComponent.secondFiledLabel = \"Region Code\";\n this.singleFieldComponent.TableHeader1 = \"Region\";\n this.singleFieldComponent.TableHeader2 = \"Region Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"TypeofCustomer\":\n this.singleFieldComponent.Heading = \"Type of Customer\";\n this.singleFieldComponent.RoutingParam = \"TypeofCustomer\";\n this.singleFieldComponent.ButtonText = \"Add Type of Customer\";\n this.singleFieldComponent.ConfirmationText = \"type of customer\";\n this.singleFieldComponent.ControllerName = \"CustomerType\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Type of customer\";\n this.singleFieldComponent.firstFiledLabel = \"Type of Customer\";\n this.singleFieldComponent.TableHeader1 = \"Type of Customer\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"EstimatedProductValue\":\n this.singleFieldComponent.Heading = \"Estimated Product Value\";\n this.singleFieldComponent.RoutingParam = \"EstimatedProductValue\";\n this.singleFieldComponent.ButtonText = \"Add Estimated Product Value\";\n this.singleFieldComponent.ConfirmationText = \"estimated product value\";\n this.singleFieldComponent.ControllerName = \"EstimatedProductValue\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Estimated product value\";\n this.singleFieldComponent.firstFiledLabel = \"Estimated Product Value\";\n this.singleFieldComponent.TableHeader1 = \"Estimated Product Value\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.TableHeader2 = \"Role\";\n this.GetAll();\n break;\n case \"Currency\":\n this.singleFieldComponent.Heading = \"Currency\";\n this.singleFieldComponent.RoutingParam = \"Currency\";\n this.singleFieldComponent.ButtonText = \"Add Currency\";\n this.singleFieldComponent.ConfirmationText = \"currency\";\n this.singleFieldComponent.ControllerName = \"Currency\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Currency\";\n this.singleFieldComponent.firstFiledLabel = \"Currency\";\n this.singleFieldComponent.secondFiledLabel = \"Exchange Rate (€)\";\n this.singleFieldComponent.TableHeader1 = \"Currency\";\n this.singleFieldComponent.TableHeader2 = \"Exchange Rate (€)\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"TermsConditions\":\n this.singleFieldComponent.Heading = \"Terms & Conditions\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions\";\n this.singleFieldComponent.ButtonText = \"Add Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditions\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition\";\n this.singleFieldComponent.secondFiledLabel = \"Standard Value\";\n this.singleFieldComponent.TableHeader1 = \"Terms & Conditions\";\n this.singleFieldComponent.TableHeader2 = \"Standard Values\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n case \"StandardReasonforWinningLosing\":\n this.singleFieldComponent.Heading = \"Standard Reason\";\n this.singleFieldComponent.RoutingParam = \"StandardReasonforWinningLosing\";\n this.singleFieldComponent.ButtonText = \"Add Standard Reason\";\n this.singleFieldComponent.ConfirmationText = \"standard reason for winning/losing\";\n this.singleFieldComponent.ControllerName = \"ReasonEnquiryWinLoss\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Standard reason for winning/losing\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Status\";\n this.singleFieldComponent.secondFiledLabel = \"Reason for Winning/Losing\";\n this.singleFieldComponent.thirdFieldLabel = \"Reason Category\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Status\";\n this.singleFieldComponent.TableHeader2 = \"Reason for Winning/Losing\";\n this.singleFieldComponent.TableHeader3 = \"Reason Category\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true;\n this.GetAll();\n break;\n \n case \"EnquiryCloseReason\":\n this.singleFieldComponent.Heading = \"Enquiry Close Reason\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Close Reason\";\n this.singleFieldComponent.ControllerName = \"EnquiryCloseReason\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Enquiry Close Reason\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Close Reason\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Close Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n\n case \"LeadCloseReason\":\n this.singleFieldComponent.Heading = \"Lead Close Reason\";\n this.singleFieldComponent.RoutingParam = \"LeadCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Lead Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Lead close reason\";\n this.singleFieldComponent.ControllerName = \"OpportunityCloseReason\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Lead close reason\";\n this.singleFieldComponent.firstFiledLabel = \"Lead Close Reason\";\n this.singleFieldComponent.TableHeader1 = \"Lead Close Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n // case \"CustomerSpecialDiscount\":\n \n // this.singleFieldComponent.Heading = \"Customer Special Discount\";\n // this.singleFieldComponent.RoutingParam = \"CustomerSpecialDiscount\";\n // this.singleFieldComponent.ButtonText = \"Add Customer Special Discount\";\n // this.singleFieldComponent.ConfirmationText = \"Customer Special Discount\";\n // this.singleFieldComponent.ControllerName = \"CustomerSpecialDiscount\";\n // this.singleFieldComponent.ActionName = \"GetAllPagination\";\n // this.singleFieldComponent.SuccessText = \"Customer Special Discount\";\n // this.singleFieldComponent.firstFiledLabel = \"Customer Special Discount\";\n // this.singleFieldComponent.TableHeader1 = \"Customer Name\";\n // this.singleFieldComponent.isDoubleField = false;\n // // this.singleFieldComponent.isvariablediscountfield=true;\n // this.singleFieldComponent.isCompanynamerequired = true;\n // this.GetAll();\n \n // break;\n\n case \"CustomerSpecialDiscount\":\n \n this.singleFieldComponent.Heading = \"Customer Frame Agreement\";\n this.singleFieldComponent.RoutingParam = \"CustomerSpecialDiscount\";\n this.singleFieldComponent.ButtonText = \"Add Customer Frame Agreement\";\n this.singleFieldComponent.ConfirmationText = \"Customer Frame Agreement\";\n this.singleFieldComponent.ControllerName = \"CustomerSpecialDiscount\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer Frame Agreement\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Frame Agreement\";\n this.singleFieldComponent.TableHeader1 = \"Customer Name\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.secondFiledLabel = \" WorkFlow Status\";\n this.singleFieldComponent.TableHeader2 = \" WorkFlow Status\";\n \n // this.singleFieldComponent.isvariablediscountfield=true;\n this.singleFieldComponent.isCompanynamerequired = true;\n this.GetAll();\n \n break;\n case \"EnquiryCompetitor\":\n this.singleFieldComponent.Heading = \"Enquiry Competitor\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCompetitor\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Competitor\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Competitor\";\n this.singleFieldComponent.ControllerName = \"EnquiryCompetitor\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Enquiry Competitor\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Competitor\";\n this.singleFieldComponent.TableHeader1 = \"Enquiry Competitor\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n case \"CustomerGroup\":\n this.singleFieldComponent.Heading = \"Customer Group\";\n this.singleFieldComponent.RoutingParam = \"CustomerGroup\";\n this.singleFieldComponent.ButtonText = \"Add Customer Group\";\n this.singleFieldComponent.ConfirmationText = \"customer group\";\n this.singleFieldComponent.ControllerName = \"CustomerGroup\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Customer group\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Group\";\n this.singleFieldComponent.secondFiledLabel = \"Customer Group Code\";\n this.singleFieldComponent.TableHeader1 = \"Customer Group\";\n this.singleFieldComponent.TableHeader2 = \"Customer Group Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n \n case \"TechnicalDiscardReason\":\n this.singleFieldComponent.Heading = \"Technical Discard Reason\";\n this.singleFieldComponent.RoutingParam = \"TechnicalDiscardReason\";\n this.singleFieldComponent.ButtonText = \"Add Technical Discard Reason\";\n this.singleFieldComponent.ConfirmationText = \"Technical discard reason\";\n this.singleFieldComponent.ControllerName = \"TechnicalDiscard\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Technical discard reason\";\n this.singleFieldComponent.firstFiledLabel = \"Technical Discard Reason\";\n this.singleFieldComponent.TableHeader1 = \"Technical Discard Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n \n case \"TermsConditions-NonStandard\":\n this.singleFieldComponent.Heading = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions-NonStandard\";\n this.singleFieldComponent.ButtonText = \"Add Non Standard Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"non standard terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditionsCustomized\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions-Non Standard\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition-Non Standard\";\n this.singleFieldComponent.secondFiledLabel = \"Non Standard Value\";\n this.singleFieldComponent.TableHeader1 = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.TableHeader2 = \"Non Standard Values\";\n this.singleFieldComponent.isDoubleField = true;\n this.GetAll();\n break;\n \n case \"Application\":\n this.singleFieldComponent.Heading = \"Application\";\n this.singleFieldComponent.RoutingParam = \"Application\";\n this.singleFieldComponent.ButtonText = \"Add Application\";\n this.singleFieldComponent.ConfirmationText = \"Application\";\n this.singleFieldComponent.ControllerName = \"Application\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Application\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.thirdFieldLabel = \"Application Name\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.TableHeader2 = \"Sub Segment\";\n this.singleFieldComponent.TableHeader3 = \"Application\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true; \n this.GetAll();\n break;\n case \"RoleManagement\":\n this.singleFieldComponent.Heading = \"Role Management\";\n this.singleFieldComponent.RoutingParam = \"RoleManagement\";\n this.singleFieldComponent.ButtonText = \"Add Role\";\n this.singleFieldComponent.ConfirmationText = \"Role Management\";\n this.singleFieldComponent.ControllerName = \"Account\";\n this.singleFieldComponent.ActionName = \"GetAllPagination\";\n this.singleFieldComponent.SuccessText = \"Role Management\";\n this.singleFieldComponent.firstFiledLabel = \"Role Management\";\n this.singleFieldComponent.TableHeader1 = \"Role Management\";\n this.singleFieldComponent.isDoubleField = false;\n this.GetAll();\n break;\n // case \"AddLoginImage\":\n // this.singleFieldComponent.Heading=\"LoginPageImage\";\n // this.singleFieldComponent.RoutingParam=\"AddLoginImage\";\n // this.singleFieldComponent.ButtonText = \"Add LoginPageImage\";\n // this.singleFieldComponent.ConfirmationText = \"LoginPageImage \";\n // this.singleFieldComponent.ControllerName = \"LoginPageImage\";\n // this.singleFieldComponent.ActionName = \"GetAllPagination\";\n // this.singleFieldComponent.SuccessText = \"Login Page Image\";\n // this.singleFieldComponent.firstFiledLabel = \"LoginPageImage\";\n // this.singleFieldComponent.TableHeader1 = \"LoginPageImage\";\n // this.singleFieldComponent.isDoubleField = false;\n // this.GetAll();\n }\n this.titleService.setTitle(this.singleFieldComponent.Heading + \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.singleFieldComponent.Heading + \" - ECOTECH\");\n\n }\n\n OnSelect(dropdownOption = \"\"){\n if(dropdownOption == 'Application')\n {\n this.displayedColumns.splice(2, 0, \"Application\");\n this.someCondition=true;\n }\n else if(dropdownOption == 'StandardReasonforWinningLosing')\n {\n this.displayedColumns.splice(2, 0, \"ReasonCategory\");\n this.isReasonCategoryVisible=true;\n }\n else if (this.displayedColumns.length == 4)\n {\n this.displayedColumns.splice(2,1);\n }\n }\n\n GetAll() {\n this.showLoader = true;\n let queryString = \"\";\n \n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.CommonService.GetData(this.singleFieldComponent.ControllerName, this.singleFieldComponent.ActionName, queryString).subscribe((data: any) => {\n this.data = data.Data;\n \n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAll();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAll();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAll();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n UpdateStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this \" + this.singleFieldComponent.ConfirmationText + \"?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData(this.singleFieldComponent.ControllerName, 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.singleFieldComponent.SuccessText + \" deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this \" + this.singleFieldComponent.ConfirmationText + \" because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate \" + this.singleFieldComponent.ConfirmationText + \"!\");\n }\n this.GetAll();\n }, error => {\n this.toastr.error(\"Failed to deactivate \" + this.singleFieldComponent.ConfirmationText + \"!\");\n this.GetAll();\n this.showLoader = false;\n });\n }\n else {\n this.GetAll();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this \" + this.singleFieldComponent.ConfirmationText + \"?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData(this.singleFieldComponent.ControllerName, 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.singleFieldComponent.SuccessText + \" activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate \" + this.singleFieldComponent.ConfirmationText + \"!\");\n }\n this.GetAll();\n }, error => {\n this.toastr.error(\"Failed to activate \" + this.singleFieldComponent.ConfirmationText + \"!\");\n this.GetAll();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAll();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isConfigureEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isConfigureMasters')[0]?.IsEditable;\n \n });\n \n }\n \n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n\n
    \n
    \n
    \n
    \n
    \n

    \n {{singleFieldComponent.Heading}} Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n
    \n\n \n \n
    \n
    \n \n \n \n\n
    \n
    \n \n\n \n\n \n\n \n
    \n
    \n \n \n\n \n\n
    \n\n
    \n \n\n \n\n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n
    \n\n
    \n\n \n \n \n \n \n\n \n \n\n
    \n {{singleFieldComponent.TableHeader1}} {{row.Name}} \n {{singleFieldComponent.TableHeader1}} {{row.Companyname}}\n \n {{singleFieldComponent.TableHeader2}} \n {{row.Value}} \n {{singleFieldComponent.TableHeader2}} {{row.DiscountFrom}} - {{row.DiscountTo}}\n \n {{singleFieldComponent.TableHeader3}} \n {{row.Application}} \n {{singleFieldComponent.TableHeader3}} \n {{row.ReasonCategory}} Action \n
    \n\n \n \n     \n\n \n  \n \n {{row.Status==true ? 'Active': 'Inactive'}}\n\n
    \n
    \n \n \n     \n\n \n  \n {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n\n\n
    No records found
    \n\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { SingleFieldModel, SingleFieldComponent } from 'src/app/Model/SingleFieldModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-configuration',\n templateUrl: './edit-view-configuration.component.html',\n styleUrls: ['./edit-view-configuration.component.scss']\n})\nexport class EditViewConfigurationComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n editFormValues: boolean = false;\n editFormStatus: string = \"\";\n UserRole: any;\n isConfigureEditable: boolean = false;\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n Roles: any[] = [];\n charCode: any;\n TermsAndConditions: any[] = [];\n Customer:any[] =[];\n ProductModel:any[]=[];\n ProductModelDiscount:any[]=[];\n ProductModelDiscountArr:SingleFieldModel[]=[];\n CategoryRegion: any[] = [];\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n appConfig : any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService, public dialog: MatDialog,\n private router: Router, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService: AppConfigService) { }\n\n ngOnInit() {\n this.appConfig = this.appConfigService.getConfig();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess()\n //this.isConfigureEditable = AppGlobals.ConfigureMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.singleFieldObj.Id = this.route.snapshot.params[\"id\"];\n this.singleFieldComponent.RoutingParam = this.route.snapshot.params[\"heading\"];\n this.editFormStatus = \"View\";\n this.showLoader = true;\n switch (this.singleFieldComponent.RoutingParam) {\n case \"MDSOption\":\n this.singleFieldComponent.Heading = \"MDS Option\";\n this.singleFieldComponent.RoutingParam = \"MDSOption\";\n this.singleFieldComponent.ButtonText = \"Add MDS Option\";\n this.singleFieldComponent.ConfirmationText = \"MDS option\";\n this.singleFieldComponent.ControllerName = \"MDSOptions\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"MDS option\";\n this.singleFieldComponent.firstFiledLabel = \"MDS Option\";\n this.singleFieldComponent.firstFieldValidationMsg = \"MDS option\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"SalesPrice\":\n this.singleFieldComponent.Heading = \"Sales Price Discount\";\n this.singleFieldComponent.RoutingParam = \"SalesPrice\";\n this.singleFieldComponent.ButtonText = \"Add Sales Price Discount\";\n this.singleFieldComponent.ConfirmationText = \"sales price\";\n this.singleFieldComponent.ControllerName = \"SalesPrice\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Sales price\";\n this.singleFieldComponent.firstFiledLabel = \"Sales Price\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Sales price\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isSalespriceDiscountFields=true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = '';\n // this.singleFieldComponent.FirstFiledPatternValidationMessage = \"Please enter alphanumeric values ​​only\";\n this.getDetailsById(this.singleFieldObj.Id);\n this.getAllRoles();\n break;\n case \"Country\":\n this.singleFieldComponent.Heading = \"Country\";\n this.singleFieldComponent.RoutingParam = \"Country\";\n this.singleFieldComponent.ButtonText = \"Add Country\";\n this.singleFieldComponent.ConfirmationText = \"country\";\n this.singleFieldComponent.ControllerName = \"Country\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Country\";\n this.singleFieldComponent.SuccessText2 = \"Country Code\";\n this.singleFieldComponent.firstFiledLabel = \"Country\";\n this.singleFieldComponent.secondFiledLabel = \"Country Code\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Country\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Country Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.SecondFieldMaxLen = 10;\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"CustomerCategory\":\n this.singleFieldComponent.Heading = \"Customer Category\";\n this.singleFieldComponent.RoutingParam = \"CustomerCategory\";\n this.singleFieldComponent.ButtonText = \"Add Customer Category\";\n this.singleFieldComponent.ConfirmationText = \"customer category\";\n this.singleFieldComponent.ControllerName = \"CustomerCategory\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Customer category\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Category\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Customer category\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"CustomerClassification\":\n this.singleFieldComponent.Heading = \"Customer Classification\";\n this.singleFieldComponent.RoutingParam = \"CustomerClassification\";\n this.singleFieldComponent.ButtonText = \"Add Customer Classification\";\n this.singleFieldComponent.ConfirmationText = \"customer classification\";\n this.singleFieldComponent.ControllerName = \"CustomerClassification\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Customer classification\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Classification\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Customer classification\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"EnquirySource\":\n this.singleFieldComponent.Heading = \"Enquiry Source\";\n this.singleFieldComponent.RoutingParam = \"EnquirySource\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Source\";\n this.singleFieldComponent.ConfirmationText = \"enquiry source\";\n this.singleFieldComponent.ControllerName = \"EnquirySource\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Enquiry source\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Source\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry source\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"IndustrySegment\":\n this.singleFieldComponent.Heading = \"Industry Segment\";\n this.singleFieldComponent.RoutingParam = \"IndustrySegment\";\n this.singleFieldComponent.ButtonText = \"Add Industry Segment\";\n this.singleFieldComponent.ConfirmationText = \"industry segment\";\n this.singleFieldComponent.ControllerName = \"IndustrySegment\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Industry segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Industry segment\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"SubSegment\":\n this.singleFieldComponent.Heading = \"Sub Segment\";\n this.singleFieldComponent.RoutingParam = \"SubSegment\";\n this.singleFieldComponent.ButtonText = \"Add Sub Segment\";\n this.singleFieldComponent.ConfirmationText = \"sub segment\";\n this.singleFieldComponent.ControllerName = \"SubSegment\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Sub segment\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Industry segment\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Sub segment\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.GetData(\"IndustrySegment\", \"GetAll\");\n break;\n\n case \"Region\":\n this.singleFieldComponent.Heading = \"Region\";\n this.singleFieldComponent.RoutingParam = \"Region\";\n this.singleFieldComponent.ButtonText = \"Add Region\";\n this.singleFieldComponent.ConfirmationText = \"region\";\n this.singleFieldComponent.ControllerName = \"Region\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Region\";\n this.singleFieldComponent.SuccessText2 = \"Region Code\";\n this.singleFieldComponent.firstFiledLabel = \"Region\";\n this.singleFieldComponent.secondFiledLabel = \"Region Code\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Region\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Region Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.SecondFieldMaxLen = 10;\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"TypeofCustomer\":\n this.singleFieldComponent.Heading = \"Type of Customer\";\n this.singleFieldComponent.RoutingParam = \"TypeofCustomer\";\n this.singleFieldComponent.ButtonText = \"Add Type of Customer\";\n this.singleFieldComponent.ConfirmationText = \"type of customer\";\n this.singleFieldComponent.ControllerName = \"CustomerType\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Type of customer\";\n this.singleFieldComponent.firstFiledLabel = \"Type of Customer\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Type of customer\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"EstimatedProductValue\":\n this.singleFieldComponent.Heading = \"Estimated Product Value\";\n this.singleFieldComponent.RoutingParam = \"EstimatedProductValue\";\n this.singleFieldComponent.ButtonText = \"Add Estimated Product Value\";\n this.singleFieldComponent.ConfirmationText = \"estimated product value\";\n this.singleFieldComponent.ControllerName = \"EstimatedProductValue\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Estimated product value\";\n this.singleFieldComponent.firstFiledLabel = \"Estimated Product Value\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Estimated product value\";\n this.singleFieldComponent.secondFiledLabel = \"Role\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Role\"\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.getDetailsById(this.singleFieldObj.Id);\n this.getAllRoles();\n break;\n case \"Currency\":\n this.singleFieldComponent.Heading = \"Currency\";\n this.singleFieldComponent.RoutingParam = \"Currency\";\n this.singleFieldComponent.ButtonText = \"Add Currency\";\n this.singleFieldComponent.ConfirmationText = \"currency\";\n this.singleFieldComponent.ControllerName = \"Currency\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Currency\";\n this.singleFieldComponent.firstFiledLabel = \"Currency\";\n this.singleFieldComponent.secondFiledLabel = \"Exchange Rate (€)\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Currency\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Exchange rate\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = /^[0-9]\\d*(\\.\\d+)?$/;\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.SecondFieldMaxLen = 6;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n case \"TermsConditions\":\n this.singleFieldComponent.Heading = \"Terms & Conditions\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions\";\n this.singleFieldComponent.ButtonText = \"Add Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"terms & conditions\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditions\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition\";\n this.singleFieldComponent.secondFiledLabel = \"Standard Value\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Terms & condition\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Standard Value\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n \n case \"StandardReasonforWinningLosing\":\n this.singleFieldComponent.Heading = \"Standard Reason\";\n this.singleFieldComponent.RoutingParam = \"StandardReasonforWinningLosing\";\n this.singleFieldComponent.ButtonText = \"Add Standard Reason\";\n this.singleFieldComponent.ConfirmationText = \"standard reason for winning/losing\";\n this.singleFieldComponent.ControllerName = \"ReasonEnquiryWinLoss\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Standard reason for winning/losing\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Status\";\n\t this.singleFieldComponent.secondFiledLabel = \"Reason Catagory\";\n\t this.singleFieldComponent.thirdFieldLabel = \"Reason for Winning/Losing\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry status\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Reason Category\";\n \t this.singleFieldComponent.ThirdFieldValidationMsg = \"Reason for winning/losing\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true;\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 10;\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.ThirdFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n this.getAllCategoryRegion();\n break;\n \n case \"EnquiryCloseReason\":\n this.singleFieldComponent.Heading = \"Enquiry Close Reason\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"standard reason Close Enquiry\";\n this.singleFieldComponent.ControllerName = \"EnquiryCloseReason\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Standard reason for Close Enquiry\";\n this.singleFieldComponent.firstFiledLabel = \"Reason for Close Enquiry\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Reason for Close Enquiry\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"LeadCloseReason\":\n this.singleFieldComponent.Heading = \"Lead Close Reason\";\n this.singleFieldComponent.RoutingParam = \"LeadCloseReason\";\n this.singleFieldComponent.ButtonText = \"Add Lead Close Reason\";\n this.singleFieldComponent.ConfirmationText = \"Lead close reason\";\n this.singleFieldComponent.ControllerName = \"OpportunityCloseReason\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Lead close reason\";\n this.singleFieldComponent.firstFiledLabel = \"Reason for Close Lead\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Reason for Close Lead\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"EnquiryCompetitor\":\n this.singleFieldComponent.Heading = \"Enquiry Competitor\";\n this.singleFieldComponent.RoutingParam = \"EnquiryCompetitor\";\n this.singleFieldComponent.ButtonText = \"Add Enquiry Competitor\";\n this.singleFieldComponent.ConfirmationText = \"Enquiry Competitor\";\n this.singleFieldComponent.ControllerName = \"EnquiryCompetitor\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Enquiry Competitor\";\n this.singleFieldComponent.firstFiledLabel = \"Enquiry Competitor\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Enquiry Competitor\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 100;\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"CustomerGroup\":\n this.singleFieldComponent.Heading = \"Customer Group\";\n this.singleFieldComponent.RoutingParam = \"CustomerGroup\";\n this.singleFieldComponent.ButtonText = \"Add Customer Group\";\n this.singleFieldComponent.ConfirmationText = \"customer group\";\n this.singleFieldComponent.ControllerName = \"CustomerGroup\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Customer group\";\n this.singleFieldComponent.firstFiledLabel = \"Customer Group\";\n this.singleFieldComponent.secondFiledLabel = \"Customer Group Code\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Customer Group\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Customer Group Code\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.SecondFieldMaxLen = 150;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"TechnicalDiscardReason\":\n this.singleFieldComponent.Heading = \"Technical Discard Reason\";\n this.singleFieldComponent.RoutingParam = \"TechnicalDiscardReason\";\n this.singleFieldComponent.ButtonText = \"Add Technical Discard Reason\";\n this.singleFieldComponent.ConfirmationText = \"Technical discard reason\";\n this.singleFieldComponent.ControllerName = \"TechnicalDiscard\"; \n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Technical discard reason\";\n this.singleFieldComponent.firstFiledLabel = \"Technical Discard Reason\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Technical Discard Reason\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 50;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n\n case \"TermsConditions-NonStandard\":\n this.singleFieldComponent.Heading = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.RoutingParam = \"TermsConditions-NonStandard\";\n this.singleFieldComponent.ButtonText = \"Add Non Standard Terms & Conditions\";\n this.singleFieldComponent.ConfirmationText = \"terms & conditions non standard\";\n this.singleFieldComponent.ControllerName = \"TermsAndConditionsCustomized\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Terms & conditions-Non Standard\";\n this.singleFieldComponent.firstFiledLabel = \"Terms & Condition-Non Standard\";\n this.singleFieldComponent.secondFiledLabel = \"Non Standard Value\";\n this.singleFieldComponent.TableHeader1 = \"Terms & Conditions-Non Standard\";\n this.singleFieldComponent.TableHeader2 = \"Non Standard Values\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Non standard term & condition\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Non standard value\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n this.GetData(\"TermsAndConditions\", \"GetAll\");\n break;\n\n case \"Application\":\n this.singleFieldComponent.Heading = \"Application\";\n this.singleFieldComponent.RoutingParam = \"Application\";\n this.singleFieldComponent.ButtonText = \"Add Application\";\n this.singleFieldComponent.ConfirmationText = \"Application\";\n this.singleFieldComponent.ControllerName = \"Application\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Application\";\n this.singleFieldComponent.firstFiledLabel = \"Industry Segment\";\n this.singleFieldComponent.secondFiledLabel = \"Sub Segment\";\n this.singleFieldComponent.thirdFieldLabel = \"Application Name\";\n this.singleFieldComponent.TableHeader1 = \"Industry Segment\";\n this.singleFieldComponent.TableHeader2 = \"Sub Segment\";\n this.singleFieldComponent.TableHeader3 = \"Application\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Industry Segment\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Sub Segment\";\n this.singleFieldComponent.thirdFieldValidationMsg = \"Application Name\";\n this.singleFieldComponent.isDoubleField = true;\n this.singleFieldComponent.isTripleField = true; \n this.singleFieldComponent.isDropdownrequird = true;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.ThirdFieldMaxLen = 250;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.singleFieldComponent.SecondFieldPattern = \"\";\n this.singleFieldComponent.SecondFieldPatternValidationMessage = \"\";\n this.singleFieldComponent.ThirdFieldPattern = \"\";\n this.singleFieldComponent.ThirdFieldPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id); \n this.GetData(\"IndustrySegment\", \"GetAll\"); \n break; \n\n case \"CustomerSpecialDiscount\":\n this.singleFieldComponent.Heading = \"Customer Frame Agreement\";\n this.singleFieldComponent.RoutingParam = \"CustomerSpecialDiscount\";\n this.singleFieldComponent.ButtonText = \"Add Customer Frame Agreement\";\n this.singleFieldComponent.ConfirmationText = \"Customer Frame Agreement\";\n this.singleFieldComponent.ControllerName = \"CustomerSpecialDiscount\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Customer Frame Agreement\";\n this.singleFieldComponent.firstFiledLabel = \"Product Model\";\n this.singleFieldComponent.secondFiledLabel = \"Product Discount\";\n this.singleFieldComponent.thirdFiledLabel = \"Product Discount \";\n this.singleFieldComponent.firstFieldValidationMsg = \"Product Model\";\n this.singleFieldComponent.SecondFieldValidationMsg = \"Product Discount \";\n this.singleFieldComponent.ThirdFieldValidationMsg = \"Product Discount \";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isvariablediscountfield=true;\n this.singleFieldComponent.ismultiplerecords=true;\n \n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsByCustomerId(this.singleFieldObj.Id);\n \n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.SecondFieldMaxLen = 100;\n this.GetData(\"CustomerSpecialDiscount\", \"GetAll\");\n break;\n \n case \"RoleManagement\":\n this.singleFieldComponent.Heading = \"Role Management\";\n this.singleFieldComponent.RoutingParam = \"RoleManagement\";\n this.singleFieldComponent.ButtonText = \"Add Role\";\n this.singleFieldComponent.ConfirmationText = \"Role Management\";\n this.singleFieldComponent.ControllerName = \"Account\";\n this.singleFieldComponent.ActionName = \"Update\";\n this.singleFieldComponent.SuccessText = \"Role Management\";\n this.singleFieldComponent.firstFiledLabel = \"Role Management\";\n this.singleFieldComponent.firstFieldValidationMsg = \"Role Management\";\n this.singleFieldComponent.isDoubleField = false;\n this.singleFieldComponent.isDropdownrequird = false;\n this.singleFieldComponent.Pattern = \"\";\n this.singleFieldComponent.FirstFieldMaxLen = 150;\n this.singleFieldComponent.FirstFiledPattern = \"\";\n this.singleFieldComponent.FirstFiledPatternValidationMessage = \"\";\n this.getDetailsById(this.singleFieldObj.Id);\n break;\n }\n this.titleService.setTitle(this.editFormStatus + \" \" + this.singleFieldComponent.Heading + \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.editFormStatus + \" \" + this.singleFieldComponent.Heading + \" - ECOTECH\");\n this.showLoader = false;\n\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n editForm() {\n if (this.editFormValues == false) {\n this.editFormValues = true;\n this.editFormStatus = \"Edit\";\n this.titleService.setTitle(this.editFormStatus + \" \" + this.singleFieldComponent.Heading + \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.editFormStatus + \" \" + this.singleFieldComponent.Heading + \" - ECOTECH\");\n }\n else {\n this.editFormValues = false;\n this.editFormStatus = \"View\";\n this.titleService.setTitle(this.editFormStatus + \" \" + this.singleFieldComponent.Heading + \" - \" + this.appConfig.titleName);\n //this.titleService.setTitle(this.editFormStatus + \" \" + this.singleFieldComponent.Heading + \" - ECOTECH\");\n }\n }\n\n onIndustrySegmentSelect(e: any) \n {\n this.singleFieldObj.SubSegmentId = null;\n this.GetSubSegment(e.target.value);\n console.log(\"id--\",(e.target.value))\n }\n\n //************************************Validation for discount*********************************** */\n\n OnDiscountChange(index)\n {\n if (this.ProductModelDiscount[index].ProductDiscount < 0) {\n this.toastr.info('Sales Discount cannot be negative.');\n this.ProductModelDiscount[index].ProductDiscount = null;\n return;\n }\n else if (this.ProductModelDiscount[index].ProductDiscount > 100) {\n this.toastr.info('Discount cannot be greater than 100.');\n this.ProductModelDiscount[index].ProductDiscount= null;\n return;\n }\n }\n\n getDetailsById(Id: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.commonService.GetData(this.singleFieldComponent.ControllerName, 'GetById', queryString).subscribe((data: any) => {\n this.singleFieldObj = data;\n // console.log(\"asdf---->\",data);\n if(this.singleFieldComponent.ControllerName == 'Application')\n {\n this.GetSubSegment(this.singleFieldObj.SegmentId);\n }\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n\n GetSubSegment(SegmentId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SegmentId=\" + SegmentId;\n this.commonService.GetData(\"SubSegment\", \"GetByIndustrySegmentId\", queryString).subscribe((data: any) => {\n this.SubSegment = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getDetailsByCustomerId(Id: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.commonService.GetData(this.singleFieldComponent.ControllerName, 'GetById', queryString).subscribe((data: any) => {\n this.ProductModelDiscount = data;\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n\n\n GetData(ControllerName: string, ActionName: string) {\n this.showLoader = true;\n this.commonService.GetData(ControllerName, ActionName, null).subscribe((data: any) => {\n if(ControllerName === 'IndustrySegment')\n {this.IndustrySegment = data;}\n else \n {this.TermsAndConditions = data;}\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllRoles() {\n this.showLoader = true;\n this.commonService.GetData(\"Account\", \"GetAllEmployeeRoles\", null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n Update(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to update this \" + this.singleFieldComponent.ConfirmationText + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n if (this.singleFieldComponent.ismultiplerecords) \n {\n this.commonService.PostData(this.singleFieldComponent.ControllerName, 'Update', this.ProductModelDiscount, null, this.singleFieldObj.Id).subscribe((data: any) => {\n\n let result = data;\n if (result.ResponseCode == 1) {\n this.toastr.success(this.singleFieldComponent.SuccessText + \" updated successfully!\");\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n else if (result.ResponseCode == 0) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning(this.singleFieldComponent.SuccessText + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update \" + this.singleFieldComponent.ConfirmationText + \"!\");\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n }, error => {\n this.toastr.error(\"Failed to update \" + this.singleFieldComponent.ConfirmationText + \"!\");\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n });\n\n }\n else \n {\n \n this.commonService.PostData(this.singleFieldComponent.ControllerName, 'Update', this.singleFieldObj, null).subscribe((data: any) => {\n\n if (data.ResponseCode == 1) {\n this.toastr.success(this.singleFieldComponent.SuccessText + \" updated successfully!\");\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n else if (data.ResponseCode == 0) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning(this.singleFieldComponent.SuccessText + ' already exists!');\n this.showLoader = false;\n }\n else if (data.ResponseCode == 2) {\n // myform.controls['fieldtitle'].setErrors({ AlreadyPresent: true });\n this.toastr.warning(this.singleFieldComponent.SuccessText2 + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update \" + this.singleFieldComponent.ConfirmationText + \"!\");\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n }\n }, error => {\n this.toastr.error(\"Failed to update \" + this.singleFieldComponent.ConfirmationText + \"!\");\n this.showLoader = false;\n this.router.navigate(['/ConfigureMasters', this.singleFieldComponent.RoutingParam]);\n });\n\n }\n }\n });\n }\n \n fieldChange(value : any)\n {\n console.log('checkbox value --->',value);\n if(value == true)\n { \n this.singleFieldObj.IsCompetitorRequired = true;\n }\n else\n {\n this.singleFieldObj.IsCompetitorRequired = false;\n }\n \n }\n\n getAllCategoryRegion() \n {\n this.showLoader = true;\n this.commonService.GetData(\"ReasonEnquiryWinLoss\", \"GetAllReasonCategory\", null).subscribe((data: any) => {\n this.CategoryRegion = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isConfigureEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isConfigureMasters')[0]?.IsEditable;\n console.log(\"IsConfigure-\",this.isConfigureEditable);\n \n }); \n\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if\n (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n\n }\n else {\n return true;\n }\n }\n\n}","\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{editFormStatus}} {{singleFieldComponent.Heading}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n
    \n {{singleFieldComponent.firstFiledLabel}}: *\n
    \n \n\n
    \n
    \n {{singleFieldComponent.firstFieldValidationMsg}} is required
    \n
    \n {{singleFieldComponent.firstFieldValidationMsg}} already exists!\n
    \n
    \n {{singleFieldComponent.FirstFiledPatternValidationMessage}}\n
    \n
    \n
    \n
    \n\n \n
    \n \n\n
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} is required
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} already exists!\n
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} is invalid\n
    \n
    \n
    \n
    \n\n\n \n \n {{item.Name}}\n No\n Data Found \n \n\n
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} is required\n
    \n
    \n\n
    \n\n\n
    \n\n
    \n {{singleFieldComponent.firstFiledLabel}}: *\n
    \n \n
    \n
    \n {{singleFieldComponent.firstFieldValidationMsg}} is required
    \n
    \n
    \n\n \n
    \n \n
    \n
    \n {{singleFieldComponent.firstFieldValidationMsg}} is required
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n {{singleFieldComponent.firstFieldValidationMsg}} is required
    \n
    \n
    \n \n\n
    \n \n
    \n
    \n {{singleFieldComponent.firstFieldValidationMsg}} is required\n
    \n
    \n
    \n\n
    \n\n \n
    \n \n\n
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} is required
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} already exists!\n
    \n
    \n
    \n\n
    \n\n \n
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} is required\n
    \n
    \n\n
    \n\n
    \n \n
    \n
    \n {{singleFieldComponent.SecondFieldValidationMsg}} is required\n
    \n
    \n
    \n\n
    \n \n
    \n {{singleFieldComponent.thirdFieldLabel}}: *\n
    \n \n\n
    \n
    \n {{singleFieldComponent.thirdFieldValidationMsg}} is required
    \n
    \n {{singleFieldComponent.thirdFieldValidationMsg}} already exists!\n
    \n
    \n {{singleFieldComponent.ThirdFieldPatternValidationMessage}}\n
    \n
    \n
    \n
    \n\n \n
    \n \n \n\n \n
    \n \n \n
    \n
    \n {{singleFieldComponent.ThirdFieldValidationMsg}} is required
    \n
    \n {{singleFieldComponent.ThirdFieldValidationMsg}} already exists!\n
    \n
    \n
    \n \n
    \n\n
    \n \n
    \n \n \n \n \n\n \n Product Model\n \n \n Product Discount From\n \n \n \n \n\n \n \n \n \n \n {{item.ModelName}}\n \n \n \n \n \n \n \n
    \n\n
    \n\n\n
    \n\n
    \n
    \n \n
    \n
    \n From :\n
    \n \n
    \n \n
    \n To :\n
    \n \n
    \n
    \n\n
    \n \n Approval Authority :\n \n
    \n\n
    \n Level 1:\n \n
    \n \n
    \n\n
    \n Level 2:\n \n
    \n \n
    \n
    \n
    \n Level 3:\n \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n
    \n   \n   \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n\n","import { AppGlobals } from 'src/app/app.global';\nimport { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\nimport { CustomerModel, PlantInformationWithGSTNoModel, TopManagementModel, AttachmentModel } from 'src/app/Model/CustomerModel';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\n\nimport { FormGroup } from '@angular/forms';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-customer',\n templateUrl: './add-customer.component.html',\n styleUrls: ['./add-customer.component.scss']\n})\nexport class AddCustomerComponent implements OnInit {\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n CustomerModel: CustomerModel = new CustomerModel();\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n urlPattern_old: string = \"^http(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\\\+&%\\$#_]*)?$\";\n urlPattern: string = \"(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?\";\n charCode: any;\n Country: any[] = [];\n Region: any[] = [];\n IndustrySegment: any[] = [];\n CustomerClassification: any[] = [];\n CustomerCategory: any[] = [];\n Typeofcustomer: any[] = [];\n SubSegment: any[] = [];\n InvalidExtension: boolean;\n CustomerGroup: any[] = []; //for customer group & code\n CustomerGroupCode: any[] = []; //for customer group & code\n fileType: any[] = ['image/bmp', 'image/jpeg', 'image/png', 'application/pdf', 'text/plain', 'text/csv', 'application/xml', 'text/xml',\n 'application/msword', 'image/jpg', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip', 'application/x-zip-compressed', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'];\n\n KYCfileType: any[] = ['text/csv', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];\n KYC1fileType: any[] = ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']\n tempCorporatePresentation: any;\n tempOrganogram: any;\n tempKYC1: any;\n tempKYC2: any;\n tempKYC3: any;\n PlantInformationWithGSTNoobj: PlantInformationWithGSTNoModel = new PlantInformationWithGSTNoModel();\n TopmanagementObj: TopManagementModel = new TopManagementModel();\n Attachmentobj: AttachmentModel = new AttachmentModel();\n KYC1Attachment: any;\n @Input()\n showLoader: boolean = false;\n plant: any;\n\n fileUrl = AppGlobals.baseFileDownloadUrl + \"KYC/KYCTemplate.xlsx\";\n //fileUrl = AppGlobals.baseFileDownloadUrl + \"KYC/UpgatedKYCTemplate.xlsx\";\n fileUploadForm: FormGroup;\n fileInputLabel: string;\n myfile: string;\n uploadedData: any;\n industrySeg: any;\n subseg: any;\n customerClass: any;\n custCategory: any;\n custType: any;\n tempRegion: any;\n plantRegion: any;\n countryName: any;\n customergroupName: any; //for customer group & code\n customergroupCode: any; //for customer group & code\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n UserRole: any;\n isCustomerEditable: boolean = false;\n type:any;\n mailIdFormat : any;\n businessOfWhichComapany : any;\n opportunitiesForWhichCompany : any;\n weissContactDetailsOfWhichCountry : any;\n weissWithAbbreviatedCountry : any;\n\n constructor(private router: Router, private toastr: ToastrService, private Service: CommonService,\n public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n this.businessOfWhichComapany = appConfig.businessOfWhichComapany;\n this.opportunitiesForWhichCompany = appConfig.opportunitiesForWhichCompany;\n this.weissContactDetailsOfWhichCountry = appConfig.weissContactDetailsOfWhichCountry;\n this.weissWithAbbreviatedCountry = appConfig.weissWithAbbreviatedCountry;\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n //this.GetCustomerCode();\n // this.GetCustomerDropdownData();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isCustomerEditable = AppGlobals.CustomerMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.CustomerModel.BasicCustomerInformationModel.Id = this.route.snapshot.params[\"id\"];\n this.type = this.route.snapshot.params[\"type\"];\n this.GetCustomerDropdownData();\n if(this.type=='lead')\n {\n this.getLeadDetailsById(this.CustomerModel.BasicCustomerInformationModel.Id);\n }\n }\n\n getLeadDetailsById(leadId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Lead_Id=\" + leadId;\n\n this.Service.GetData('Lead', 'GetLeadByIDForCustomer', queryString).subscribe((data: any) => {\n this.CustomerModel = data;\n this.GetSubSegment(this.CustomerModel.CustomerProfile.IndustrySegment);\n this.GetCustomerGroupCode(this.CustomerModel.BasicCustomerInformationModel.CustomergroupId);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n /*******************************************************************************\n * Get data for add customer\n * ******************************************************************************/\n // GetCustomerCode() {\n // this.showLoader = true;\n // this.Service.GetData(\"Customer\", \"GetMaxId\", null).subscribe((data: any) => {\n // //this.CustomerModel.BasicCustomerInformationModel.CustomerCode = data;\n // this.CustomerCode = data;\n // this.showLoader = false;\n // }, error => {\n // this.toastr.error(\"Failed to load data!\");\n // this.showLoader = false;\n // });\n // }\n\n GetCustomerDropdownData() {\n this.showLoader = true;\n this.Service.GetData(\"Customer\", \"GetCustomerDropdownDetails\", null).subscribe((data: any) => {\n this.Country = data.Country;\n this.Region = data.Region;\n this.IndustrySegment = data.IndustrySegment;\n this.CustomerCategory = data.CustomerCategory;\n this.CustomerClassification = data.CustomerClassification;\n this.Typeofcustomer = data.CustomerType;\n this.CustomerGroup = data.CustomerGroup; //for customer group & code\n // console.log(\"CustomerGroup array---->\",this.CustomerGroup)\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetSubSegment(IndustrySegment: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SegmentId=\" + IndustrySegment;\n this.Service.GetData(\"SubSegment\", \"GetByIndustrySegmentId\", queryString).subscribe((data: any) => {\n this.SubSegment = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End get data for add customer\n * ******************************************************************************/\n\n\n /*******************************************************************************\n * File Upload and Delete section\n * ******************************************************************************/\n\n CheckFileValidation(File: any, ValidFileType: any[], MaxSize: number) {\n var Result = {\n isExtensionValid: false,\n isSizeValid: false\n };\n let FileType = File.type;\n if ((File.size) / 1000000 <= MaxSize) {\n Result.isSizeValid = true;\n for (var j = 0; j < ValidFileType.length; j++) {\n if (FileType.toLowerCase() == ValidFileType[j]) {\n Result.isExtensionValid = true;\n break;\n }\n\n }\n\n }\n else {\n Result.isSizeValid = false;\n }\n return Result;\n }\n\n NoOfEmp(myform: any) {\n if (this.CustomerModel.CompanyTurnover.Noofemployees == 0 && this.CustomerModel.CompanyTurnover.Noofemployees.toString() != \"\") {\n myform.controls['noofemployees'].setErrors({ NoGreater: true });\n }\n }\n\n getfiledetails(e: any) {\n if (e.target.files[0].name.length > 50) {\n e.target.value = null;\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n }\n else {\n if (e.target.name == \"KYC1attachment\" || e.target.name == \"KYC2attachment\" || e.target.name == \"KYC3attachment\") {\n var KycResult;\n if (e.target.name == \"KYC1attachment\") {\n KycResult = this.CheckFileValidation(e.target.files[0], this.KYC1fileType, 5);\n }\n else {\n KycResult = this.CheckFileValidation(e.target.files[0], this.KYCfileType, 5);\n }\n if (KycResult.isExtensionValid == true && KycResult.isSizeValid == true) {\n if (e.target.name == \"KYC1attachment\") {\n this.showLoader = true;\n this.myfile = e.target.files[0];\n const formData = new FormData();\n formData.append('file', this.myfile);\n\n this.Service.PostData('Customer', 'AddFromFile', formData, null).subscribe((response: any) => {\n if (response == \"Invalid file.\") {\n this.toastr.warning(\"Please select valid file.\");\n }\n else {\n if (response != null) {\n this.CustomerModel = response;\n if (this.CustomerModel.CompanyTurnover.GroupTurnoverYear == 0) this.CustomerModel.CompanyTurnover.GroupTurnoverYear = null;\n if (this.CustomerModel.CompanyTurnover.DomesticTurnoverYear == 0) this.CustomerModel.CompanyTurnover.DomesticTurnoverYear = null;\n if (this.CustomerModel.CompanyTurnover.ExportTurnoverYear == 0) this.CustomerModel.CompanyTurnover.ExportTurnoverYear = null;\n if (this.CustomerModel.CompanyTurnover.IndiaunitTurnoverYear == 0) this.CustomerModel.CompanyTurnover.IndiaunitTurnoverYear = null;\n if (this.CustomerModel.CompanyTurnover.ProjectedTurnoverYear == 0) this.CustomerModel.CompanyTurnover.ProjectedTurnoverYear = null;\n if (this.CustomerModel.CompanyTurnover.Noofemployees == 0) this.CustomerModel.CompanyTurnover.Noofemployees = null;\n this.industrySeg = this.IndustrySegment.filter(x => x.Name == this.CustomerModel.CustomerProfile.IndustrySegmentName);\n if (this.industrySeg.length > 0) { this.CustomerModel.CustomerProfile.IndustrySegment = this.industrySeg[0].Id; }\n\n if (this.CustomerModel.CustomerProfile.IndustrySegment != null) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SegmentId=\" + this.CustomerModel.CustomerProfile.IndustrySegment;\n this.Service.GetData(\"SubSegment\", \"GetByIndustrySegmentId\", queryString).subscribe((data: any) => {\n this.SubSegment = data;\n if (this.CustomerModel.CustomerProfile.SubSegmentName != \"\") {\n this.subseg = this.SubSegment.filter(x => x.SubSegmentName == this.CustomerModel.CustomerProfile.SubSegmentName);\n if (this.subseg.length > 0) { this.CustomerModel.CustomerProfile.SubSegment = this.subseg[0].Id; }\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n \n // for customer grp name & code\n this.customergroupName = this.CustomerGroup?.filter(x => x.Name == this.CustomerModel.BasicCustomerInformationModel.CustomergroupName);\n if (this.customergroupName?.length > 0) { this.CustomerModel.BasicCustomerInformationModel.CustomergroupId = this.customergroupName[0].Id; }\n\n if (this.CustomerModel.BasicCustomerInformationModel.CustomergroupId != null) {\n this.showLoader = true;\n\n var queryString ;\n queryString = this.CustomerModel.BasicCustomerInformationModel.CustomergroupId;\n this.CustomerGroupCode = this.CustomerGroup?.filter(x => x.Id == queryString);\n \n if (this.CustomerModel.BasicCustomerInformationModel.CustomergroupCode != \"\") \n {\n this.customergroupCode = this.CustomerGroupCode?.filter(x => x.Value == this.CustomerModel.BasicCustomerInformationModel.CustomergroupCode);\n if (this.customergroupCode.length > 0) { this.CustomerModel.BasicCustomerInformationModel.CustomergroupId = this.customergroupCode[0].Id; }\n }\n else{\n this.toastr.error(\"Failed to load data!\");\n }\n this.showLoader = false;\n }\n \n if (this.CustomerModel.CustomerProfile.CustomerClassificationName != \"\") {\n this.customerClass = this.CustomerClassification?.filter(x => x.Name == this.CustomerModel.CustomerProfile.CustomerClassificationName);\n if (this.customerClass.length > 0) { this.CustomerModel.CustomerProfile.CustomerClassification = this.customerClass[0].Id; }\n }\n\n if (this.CustomerModel.CustomerProfile.CustomerCategoryName != \"\") {\n this.custCategory = this.CustomerCategory?.filter(x => x.Name == this.CustomerModel.CustomerProfile.CustomerCategoryName);\n if (this.custCategory.length > 0) { this.CustomerModel.CustomerProfile.CustomerCategory = this.custCategory[0].Id; }\n }\n\n if (this.CustomerModel.CustomerProfile.TypeofcustomerName != \"\") {\n this.custType = this.Typeofcustomer.filter(x => x.Name == this.CustomerModel.CustomerProfile.TypeofcustomerName);\n if (this.custType.length > 0) { this.CustomerModel.CustomerProfile.Typeofcustomer = this.custType[0].Id; }\n }\n\n if (this.CustomerModel.WINWSEAContactDetails.RegionName != \"\") {\n this.tempRegion = this.Region.filter(x => x.Name == this.CustomerModel.WINWSEAContactDetails.RegionName);\n if (this.tempRegion.length > 0) { this.CustomerModel.WINWSEAContactDetails.Region = this.tempRegion[0].Id; }\n }\n\n // if()\n // this.customerClass = this.CustomerClassification.filter(x => x.Name == this.CustomerModel.CustomerProfile.CustomerClassificationName);\n // if (this.customerClass.length > 0) { this.CustomerModel.CustomerProfile.CustomerClassification = this.customerClass[0].Id; }\n if (this.CustomerModel.BasicCustomerInformationModel.CountryName != \"\") {\n this.countryName = this.Country.filter(x => x.Name == this.CustomerModel.BasicCustomerInformationModel.CountryName);\n if (this.countryName.length > 0) { this.CustomerModel.BasicCustomerInformationModel.Country = this.countryName[0].Id; }\n }\n\n\n let i = 0;\n this.CustomerModel.PlantInformationWithGSTNo.forEach(element => {\n this.plantRegion = this.Region.filter(x => x.Name == element.RegionName);\n if (this.plantRegion.length > 0) { this.CustomerModel.PlantInformationWithGSTNo[i].Region = this.plantRegion[0].Id; }\n i++;\n });\n\n\n }\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error('Failed to load data!');\n this.showLoader = false;\n\n });\n }\n else if (e.target.name == \"KYC2attachment\") {\n this.Attachmentobj.KYC2Attachment = e.target.files[0];\n }\n else if (e.target.name == \"KYC3attachment\") {\n this.Attachmentobj.KYC3Attachment = e.target.files[0];\n }\n\n }\n else if (KycResult.isSizeValid == false) {\n e.target.value = null;\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n }\n else if (KycResult.isExtensionValid == false) {\n e.target.value = null;\n if (e.target.name == \"KYC1attachment\") {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .xlsx\");\n }\n else {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .xls, .xlsx\");\n }\n }\n\n }\n\n else {\n var Result = this.CheckFileValidation(e.target.files[0], this.fileType, 5)\n if (Result.isExtensionValid == true && Result.isSizeValid == true) {\n if (e.target.name == \"corppresentation\") {\n this.Attachmentobj.CorporatePresentationAttachment = e.target.files[0];\n }\n else if (e.target.name == \"organogram\") {\n this.Attachmentobj.OrganogramAttachment = e.target.files[0];\n }\n\n }\n else if (Result.isSizeValid == false) {\n e.target.value = null;\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n }\n else if (Result.isExtensionValid == false) {\n e.target.value = null;\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc, .docx, .zip, .ppt, .pptx\");\n }\n\n }\n }\n }\n\n DeleteAttachments(Type: any) {\n switch (Type) {\n case \"corppresentation\":\n this.Attachmentobj.CorporatePresentationAttachment = null;\n break;\n case \"organogram\":\n this.Attachmentobj.OrganogramAttachment = null;\n break;\n case \"KYC2attachment\":\n this.Attachmentobj.KYC2Attachment = null;\n break;\n case \"KYC3attachment\":\n this.Attachmentobj.KYC3Attachment = null;\n break;\n case \"KYC1attachment\":\n this.KYC1Attachment = null;\n break;\n }\n }\n\n /*******************************************************************************\n * End File Upload section\n * ******************************************************************************/\n OnselectIndustrySegment(event: any) {\n this.CustomerModel.CustomerProfile.SubSegment = null;\n this.GetSubSegment(event.target.value);\n }\n\n //for customer grp name & code\n OnselectCustomerGroupName(event: any) {\n //this.CustomerModel.BasicCustomerInformationModel.CustomergroupId = null;\n this.GetCustomerGroupCode(event.target.value);\n \n }\n\n GetCustomerGroupCode(CustomerGroupId: number) {\n this.CustomerModel.BasicCustomerInformationModel.CustomergroupCode = null;\n this.CustomerGroupCode = this.CustomerGroup.filter(x => x.Id == CustomerGroupId);\n // console.log(\"After CustomerGroupName change---->\",this.CustomerGroupCode);\n \n }\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n PercentageShareValidation(myform: any) {\n if (this.CustomerModel.FinancialDetails.PercentageShare > 100) {\n myform.controls['percentageshare'].setErrors({ PercentageGreater: true });\n }\n }\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n /*******************************************************************************\n * Add multiple filed (Dynamic grid)\n * ******************************************************************************/\n AddNewRow(Type: any) {\n\n if (Type == 'Submitted') {\n if (this.PlantInformationWithGSTNoobj.CompanyName != \"\" || this.PlantInformationWithGSTNoobj.Region != null || this.PlantInformationWithGSTNoobj.Address != \"\" || this.PlantInformationWithGSTNoobj.GSTNo != \"\" ||\n this.PlantInformationWithGSTNoobj.KeyAccountNo != \"\" || this.PlantInformationWithGSTNoobj.ContactNo != \"\" || this.PlantInformationWithGSTNoobj.Email != \"\") {\n this.CustomerModel.PlantInformationWithGSTNo.push(this.PlantInformationWithGSTNoobj);\n this.PlantInformationWithGSTNoobj = new PlantInformationWithGSTNoModel();\n }\n if (this.TopmanagementObj.Name != \"\" || this.TopmanagementObj.Designation != \"\" || this.TopmanagementObj.ContactNo != \"\" || this.TopmanagementObj.Email != \"\") {\n this.CustomerModel.TopManagement.push(this.TopmanagementObj);\n this.TopmanagementObj = new TopManagementModel();\n }\n\n }\n else {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add another row for entering remaining details?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n if (Type == 'Plant') {\n if (Object.keys(this.PlantInformationWithGSTNoobj).length > 0) {\n this.CustomerModel.PlantInformationWithGSTNo.push(this.PlantInformationWithGSTNoobj);\n this.PlantInformationWithGSTNoobj = new PlantInformationWithGSTNoModel();\n }\n }\n if (Type == 'TopManagement') {\n if (Object.keys(this.TopmanagementObj).length > 0) {\n this.CustomerModel.TopManagement.push(this.TopmanagementObj);\n this.TopmanagementObj = new TopManagementModel();\n }\n }\n }\n\n });\n\n }\n\n }\n\n deleteField(index: any, Type) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this record?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n if (Type == 'Plant') {\n this.CustomerModel.PlantInformationWithGSTNo.splice(index, 1);\n }\n if (Type == 'TopManagement') {\n this.CustomerModel.TopManagement.splice(index, 1);\n }\n }\n });\n }\n\n /*******************************************************************************\n * End - add multiple filed (Dynamic grid)\n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n if(this.type=='lead')\n {\n this.CustomerModel.BasicCustomerInformationModel.leadId=this.route.snapshot.params[\"id\"];\n \n }\n if (this.CustomerModel.FinancialDetails.PercentageShare > 100) {\n myform.controls['percentageshare'].setErrors({ PercentageGreater: true });\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this customer?\"\n }\n });\n if (this.CustomerModel.CompanyTurnover.Noofemployees == 0 && this.CustomerModel.CompanyTurnover.Noofemployees.toString() != \"\") {\n myform.controls['noofemployees'].setErrors({ NoGreater: true });\n }\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.AddNewRow('Submitted');\n // this.CustomerModel.BasicCustomerInformationModel.CustomerCode = this.CustomerCode;\n const frmData = new FormData();\n frmData.append(\"KYC2Attachment\", this.Attachmentobj.KYC2Attachment);\n frmData.append(\"KYC3Attachment\", this.Attachmentobj.KYC3Attachment);\n frmData.append(\"CorporatePresentationAttachment\", this.Attachmentobj.CorporatePresentationAttachment);\n frmData.append(\"OrganogramAttachment\", this.Attachmentobj.OrganogramAttachment);\n let CustomerDetails = JSON.stringify(this.CustomerModel);\n frmData.append(\"CustomerModel\", CustomerDetails);\n this.showLoader = true;\n this.Service.PostData('Customer', 'Add', frmData, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Customer details added successfully!');\n //this.router.navigate(['/Customer']);\n this.goBack();\n }\n else {\n this.toastr.error(\"Failed to add customer details!\");\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add customer details!');\n this.showLoader = false;\n this.goBack()\n });\n }\n });\n\n }\n\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n goBack()\n {\n if(this.type==\"customer\")\n {\n this.router.navigate(['/Customer']);\n }\n else{\n this.router.navigate(['/Lead']);\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isCustomerEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isCustomer')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n\n \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Customer\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n\n   \n\n Download template here\n
    \n [File Format: .xlsx] [Max 5 MB]\n
    \n\n\n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n First Contact Commercial Person Details\n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n \n Contact number should be 10-15 digits\n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n\n \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n Financial Details\n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter valid percentage of share
    \n \n Percentage of Share must be less than or equal to 100
    \n
    \n
    \n \n\n \n \n\n\n
    \n
    \n
    \n
    \n

    \n \n {{weissContactDetailsOfWhichCountry}} Contact Details\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n \n {{weissWithAbbreviatedCountry}} account manager is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Region is required
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n \n \n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Customer Profile\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Company information/history is required
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Brands/Products range is required
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n [File Format: .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc,\n .docx, .zip, .ppt, .pptx] [Max 5 MB]\n {{Attachmentobj.CorporatePresentationAttachment != undefined ?\n Attachmentobj.CorporatePresentationAttachment.name : \"\"}}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Industry segment is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Sub segment is required
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Customer classification is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Type of customer is required
    \n
    \n
    \n\n\n
    \n
    \n \n
    \n \n
    \n
    \n Customer category is required
    \n
    \n
    \n
    \n
    \n
    \n \n Company Turnover\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n\n \n
    \n\n
    \n Please enter only numbers
    \n
    \n No. of Employees must be greater than 0
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n Customer's customer is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n Plant Information With GST No.\n
    \n
    \n\n
    \n \n \n \n \n Company Name\n \n \n Region\n \n \n Address\n \n \n GST No.\n \n \n Key Account Name\n \n \n Contact No.\n \n \n Email\n \n\n \n Action\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n
    \n \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n \n Contact number should be 10-15 digits\n
    \n
    \n \n \n \n
    \n\n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n \n \n \n \n \n\n \n \n \n\n \n \n\n
    \n
    \n
    \n
    \n

    \n Top Management - Board of Directors, Key Contacts\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n \n\n \n
    NameDesignation/ Dept.Contact No.EmailAction
    \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n\n \n \n
    \n \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits\n \n Contact number should be 10-15 digits\n \n \n
    \n \n
    \n\n \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n [File Format: .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc,\n .docx, .zip, .ppt, .pptx] [Max 5 MB]\n {{Attachmentobj.OrganogramAttachment != undefined ?\n Attachmentobj.OrganogramAttachment.name : \"\"}}\n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n

    \n \n {{businessOfWhichComapany}} Business\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n \n Opportunities for {{opportunitiesForWhichCompany}}\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Indexer is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Heavy duty indexer is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Linear transfer system is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Pick and place system is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Linear system is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Direct drives is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Delta robot is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Value added solution is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Accessories & spare Parts is required
    \n
    \n
    \n
    \n \n
    \n \n Limit {{maxLimit}} characters, {{remLimit}} characters remaining.\n
    \n
    \n Comments is required
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Current Visible Competitors Name with USP  *\n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n Current visible competitors name with USP is required
    \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n

    \n KYC Attachment\n

    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n [File Format: .xls, .xlsx] [Max 5 MB]\n {{Attachmentobj.KYC2Attachment != undefined ?\n Attachmentobj.KYC2Attachment.name : \"\"}}\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n \n [File Format: .xls, .xlsx] [Max 5 MB]\n {{Attachmentobj.KYC3Attachment != undefined ?\n Attachmentobj.KYC3Attachment.name : \"\"}}\n
    \n
    \n
    \n\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n   \n \n Cancel\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n","import { Component, OnInit, ViewChild, Input, NgZone, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SingleFieldComponent, SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AppGlobals } from 'src/app/app.global';\nimport { UserRoles } from 'src/app/UserRoles';\n\nimport * as Excel from 'exceljs/dist/exceljs'\nimport * as XLSX from 'xlsx';\nimport * as FileSaver from 'file-saver';\nimport { HttpClient } from '@angular/common/http';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { from } from 'rxjs';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\n\n@Component({\n selector: 'app-customer-details',\n templateUrl: './customer-details.component.html',\n styleUrls: ['./customer-details.component.scss']\n})\nexport class CustomerDetailsComponent implements OnInit {\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n displayedColumns: string[] = ['Id', 'CompanyName', 'RegionName', 'GroupName', 'ContactPerson', 'KYCAttachment', 'Action'];\n dataSource: MatTableDataSource;\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n disabled: boolean = false;\n Role: any;\n UserRoles: any;\n isCustomerEditable: boolean = false;\n isDownloadCustomerData: boolean = false;\n isKYCAttchmentVisible: boolean = false;\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n \n /*************************************************************************\n End here\n *************************************************************************/\n\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n UpdateStatus: UpdateStatus = new UpdateStatus();\n myfile: any;\n customerData: any[] = [];\n type=\"customer\";\n \n constructor(private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog,\n private http: HttpClient, private NgZone: NgZone, private router: Router, private route: ActivatedRoute,\n private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n this.UserRoles = UserRoles;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n \n this.singleFieldComponent.RoutingParam = this.route.snapshot.params[\"CustomerSpecialDiscount\"];\n this.singleFieldObj.Id = this.route.snapshot.params[\"id\"];\n this.Role = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isCustomerEditable = AppGlobals.CustomerMastersEditableAccessArray.filter(x => x.role == this.Role)[0]?.isEditable;\n // this.isDownloadCustomerData = AppGlobals.CustomerMastersDataDownloadAccessArray.filter(x => x.role == this.Role)[0]?.isEditable;\n // this.isKYCAttchmentVisible= AppGlobals.CustomerMastersKYCAttachmentAccessArray.filter(x => x.role == this.Role)[0]?.isEditable;\n this.GetAllCustomerDetails();\n }\n\n ngOnChanges(){\n this.GetAllCustomerDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllCustomerDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllCustomerDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.Service.GetData('Customer', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllCustomerDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllCustomerDetails();\n }\n }\n\n pageEvent(event: any) {\n \n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n \n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllCustomerDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n /*******************************************************************************\n *Download file section\n * ******************************************************************************/\n DownloadFile(Path: any) {\n let link = document.createElement('a');\n let path = AppGlobals.baseAppUrl + 'Uploads/' + Path\n link.setAttribute('href', path);\n document.body.appendChild(link);\n link.click();\n link.remove();\n return false;\n\n }\n /*******************************************************************************\n *End Download file section\n * ******************************************************************************/\n\n UpdateCustomerStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this customer?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.Service.PostData('Customer', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Customer deactivated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate customer!\");\n }\n this.GetAllCustomerDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate customer!\");\n this.GetAllCustomerDetails();\n this.showLoader = false;\n });\n }\n else {\n this.GetAllCustomerDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this customer?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.Service.PostData('Customer', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Customer activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate customer!\");\n }\n this.GetAllCustomerDetails();\n }, error => {\n this.toastr.error(\"Failed to activate customer!\");\n this.GetAllCustomerDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllCustomerDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n\n ExportData() {\n this.Service.GetData(\"Customer\", \"ExporttoExcel\", null).subscribe((data: any) => {\n this.customerData = data;\n if (this.customerData.length > 0) {\n this.exportAsXLSX(this.customerData, 'CustomerData.xlsx');\n }\n else {\n this.toastr.error(\"Failed to load data!\");\n }\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n exportAsExcelFile(json: any[], excelFileName: string): void {\n // const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n // const workbook: XLSX.WorkBook = { Sheets: { 'CustomerData': worksheet }, SheetNames: ['CustomerData'] };\n\n // const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n // this.saveAsExcelFile(excelBuffer, excelFileName);\n let workbook = new Excel.Workbook();\n workbook = this.getworkSheet(json, workbook);\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n this.saveAsExcelFile(data, excelFileName);\n });\n }\n\n getworkSheet(sheet2: any[], workbook: any) {\n\n let worksheet = workbook.addWorksheet('CustomerData');\n let header = ['CustomerCode',\t'CompanyName',\t'AddressHeadquarters',\t'AddressPlant',\t'City',\t'State',\n 'PINCode',\t'Country',\t'MailAddress',\t'WebSite',\t'HeadquarterInfo',\t'KeyManagementPerson_Name',\n 'KeyManagementPerson_ContactNo',\t'KeyManagementPerson_MailAddress',\t'WINAccountManager',\t'Region',\n 'CompanyInformation',\t'BrandsProducts',\t'IndustrySegment',\t'SubSegment',\t'CustomerClassification',\n 'TypeofcustomerName',\t'CustomerCategory',\t'CustomersCustomer',\t'Indexer',\t'HeavyDutyIndexer',\t\n 'LinearTransferSystem',\t'PickandPlaceSystem',\t'LinearSystem',\t'Directdrives',\t'DeltaRobot',\t\n 'Valueaddedsolution',\t'AccessoriesSpareParts',\t'Comments',\t'CurrentVisibleCompetitorsNamewithUSP'];\n \n let headerRow = worksheet.addRow(header);\n\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: '74B4FE' },\n bgColor: { argb: 'FF0000FF' }\n };\n cell.font = {\n name: 'Arial',\n family: 2,\n bold: true,\n size: 10,\n };\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n\n })\n for (let key of Object.keys(sheet2)) {\n let tmparray = [];\n let tmpobj = sheet2[key];\n\n for (let key of Object.keys(tmpobj)) {\n let tmpobj1 = tmpobj[key];\n tmparray.push(tmpobj1)\n }\n worksheet.addRow(tmparray);\n }\n return workbook;\n\n }\n\n public saveAsExcelFile(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(data, fileName);\n }\n\n public exportAsXLSX(arrayofdata, filename: string): void {\n //const data = this.getFormatedData(arrayofdata);\n this.exportAsExcelFile(arrayofdata, filename);\n }\n\n public getFormatedData(arrayofdata) {\n const formateddata = [];\n for (let i = 0; i < arrayofdata.length; i++) {\n const obj = arrayofdata[i];\n const newobj = {\n CustomerCode: obj.CustomerCode,\n Country: obj.Country,\n CompanyName: obj.CompanyName,\n AddressOfHeadquater: obj.AddressHeadquaters,\n AddressPlant: obj.AddressPlant,\n\n }\n formateddata.push(newobj);\n };\n return formateddata\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isCustomerEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey=='isCustomer')[0]?.IsEditable;\n this.isDownloadCustomerData = this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey=='IsCustomerMastersDataDownloadAccess')[0]?.IsVisible;\n this.isKYCAttchmentVisible=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey=='IsCustomerMastersKYCAttachmentAccess')[0]?.IsVisible;\n });\n \n }\n \n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Customer Listing\n\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n\n
    \n
    \n Customer Frame Agreements\n \n \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n\n \n \n\n
    Customer Code {{row.CustomerCode}} Company Name {{row.CompanyName}} Region {{row.RegionName}} Group {{row.GroupName}} Contact Person {{row.ContactPerson}} KYC Attachment \n \n Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active' : 'Inactive'}}\n \n\n    \n\n \n\n \n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { CustomerModel, PlantInformationWithGSTNoModel, TopManagementModel, AttachmentModel } from 'src/app/Model/CustomerModel';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { SingleFieldModel, SingleFieldComponent } from 'src/app/Model/SingleFieldModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-customer',\n templateUrl: './edit-view-customer.component.html',\n styleUrls: ['./edit-view-customer.component.scss']\n})\nexport class EditViewCustomerComponent implements OnInit {\n CustomerModel: CustomerModel = new CustomerModel();\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n urlPattern_old: string = \"^http(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\\\+&%\\$#_]*)?$\";\n urlPattern: string = \"(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?\";\n charCode: any;\n Country: any[] = [];\n Region: any[] = [];\n IndustrySegment: any[] = [];\n SubSegment: any[] = [];\n CustomerClassification: any[] = [];\n CustomerCategory: any[] = [];\n Typeofcustomer: any[] = [];\n InvalidExtension: boolean;\n CustomerGroup: any[] = []; //for customer group & code\n CustomerGroupCode: any[] = []; //for customer group & code\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n fileType: any[] = ['image/bmp', 'image/jpeg', 'image/png', 'application/pdf', 'text/plain', 'text/csv', 'application/xml', 'text/xml',\n 'application/msword', 'image/jpg', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/zip', 'application/x-zip-compressed', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'];\n KYCfileType: any[] = ['text/csv', 'application/xml', 'text/xml', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];\n tempCorporatePresentation: any;\n tempOrganogram: any;\n tempKYC1: any;\n tempKYC2: any;\n tempKYC3: any;\n PlantInformationWithGSTNoobj: PlantInformationWithGSTNoModel = new PlantInformationWithGSTNoModel();\n TopmanagementObj: TopManagementModel = new TopManagementModel();\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n Attachmentobj: AttachmentModel = new AttachmentModel();\n KYC1Attachment: any;\n UserRole: any;\n isCustomerEditable: boolean = false;\n ProductModelDiscount:any[]=[];\n specialDiscountEnrtiesVisible:boolean;\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n Id: any;\n mailIdFormat : any;\n businessOfWhichComapany : any;\n opportunitiesForWhichCompany : any;\n weissContactDetailsOfWhichCountry : any;\n weissWithAbbreviatedCountry : any;\n\n @Input()\n showLoader: boolean = false;\n \n //leadId: any;\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n this.businessOfWhichComapany = appConfig.businessOfWhichComapany;\n this.opportunitiesForWhichCompany = appConfig.opportunitiesForWhichCompany;\n this.weissContactDetailsOfWhichCountry = appConfig.weissContactDetailsOfWhichCountry;\n this.weissWithAbbreviatedCountry = appConfig.weissWithAbbreviatedCountry;\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isCustomerEditable = AppGlobals.CustomerMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.CustomerModel.BasicCustomerInformationModel.Id = this.route.snapshot.params[\"id\"];\n \n this.GetCustomerDropdownData();\n this.getCustomerDetailsById(this.CustomerModel.BasicCustomerInformationModel.Id);\n // this.getLeadDetailsById(this.CustomerModel.BasicCustomerInformationModel.Id);\n this.getDetailsByCustomerId(this.CustomerModel.BasicCustomerInformationModel.Id); \n this.Id = this.route.snapshot.params[\"id\"]; \n }\n\n\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Customer - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Customer - ECOTECH\");\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n }\n\n\n /*******************************************************************************\n * Get data for add customer\n * ******************************************************************************/\n getCustomerDetailsById(CustomerId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + CustomerId;\n\n this.Service.GetData('Customer', 'GetById', queryString).subscribe((data: any) => {\n this.CustomerModel = data;\n this.remLimit = this.maxLimit - data.OpportunitiesforWeiss.Comments.length;\n this.GetSubSegment(this.CustomerModel.CustomerProfile.IndustrySegment);\n this.GetCustomerGroupCode(this.CustomerModel.BasicCustomerInformationModel.CustomergroupId);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getLeadDetailsById(leadId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Lead_Id=\" + leadId;\n\n this.Service.GetData('Lead', 'GetLeadByIDForCustomer', queryString).subscribe((data: any) => {\n this.CustomerModel = data;\n this.GetSubSegment(this.CustomerModel.CustomerProfile.IndustrySegment);\n this.GetCustomerGroupCode(this.CustomerModel.BasicCustomerInformationModel.CustomergroupId);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getDetailsByCustomerId(CustomerId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + CustomerId;\n\n this.Service.GetData('CustomerSpecialDiscount', 'GetById', queryString).subscribe((data: any) => {\n this.ProductModelDiscount = data;\n \n if(this.ProductModelDiscount?.length==0||this.ProductModelDiscount?.length==undefined)\n {\n this.specialDiscountEnrtiesVisible=false;\n }\n else\n {\n this.specialDiscountEnrtiesVisible=true;\n } \n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n this.showLoader = false;\n }\n\n GetCustomerDropdownData() {\n this.showLoader = true;\n this.Service.GetData(\"Customer\", \"GetCustomerDropdownDetails\", null).subscribe((data: any) => {\n this.Country = data.Country;\n this.Region = data.Region;\n this.IndustrySegment = data.IndustrySegment;\n this.CustomerCategory = data.CustomerCategory;\n this.CustomerClassification = data.CustomerClassification;\n this.Typeofcustomer = data.CustomerType;\n this.CustomerGroup = data.CustomerGroup; //for customer group & code\n //console.log(\"CustomerGroup array---->\",this.CustomerGroup)\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetSubSegment(IndustrySegment: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SegmentId=\" + IndustrySegment;\n this.Service.GetData(\"SubSegment\", \"GetByIndustrySegmentId\", queryString).subscribe((data: any) => {\n this.SubSegment = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End get data for add customer\n * ******************************************************************************/\n\n /*******************************************************************************\n * File Upload section\n * ******************************************************************************/\n\n CheckFileValidation(File: any, ValidFileType: any[], MaxSize: number) {\n var Result = {\n isExtensionValid: false,\n isSizeValid: false\n };\n let FileType = File.type;\n if ((File.size) / 1000000 <= MaxSize) {\n Result.isSizeValid = true;\n for (var j = 0; j < ValidFileType.length; j++) {\n if (FileType.toLowerCase() == ValidFileType[j]) {\n Result.isExtensionValid = true;\n break;\n }\n\n }\n\n }\n else {\n Result.isSizeValid = false;\n }\n return Result;\n }\n\n NoOfEmp(myform: any) {\n if (this.CustomerModel.CompanyTurnover.Noofemployees == 0 && this.CustomerModel.CompanyTurnover.Noofemployees.toString() != \"\") {\n myform.controls['noofemployees'].setErrors({ NoGreater: true });\n }\n }\n\n getfiledetails(e: any) {\n if (e.target.files[0].name.length > 50) {\n e.target.value = null;\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n }\n else {\n if (e.target.name == \"KYC1attachment\" || e.target.name == \"KYC2attachment\" || e.target.name == \"KYC3attachment\") {\n let Result = this.CheckFileValidation(e.target.files[0], this.KYCfileType, 5);\n if (Result.isExtensionValid == true && Result.isSizeValid == true) {\n if (e.target.name == \"KYC1attachment\") {\n this.KYC1Attachment = e.target.files[0];\n const KYCfrmData = new FormData();\n KYCfrmData.append(\"KYC1Attachment\", this.KYC1Attachment);\n this.showLoader = true;\n this.Service.PostData('Customer', 'KYC1Attachment', KYCfrmData, null).subscribe((data: any) => {\n this.CustomerModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error('Failed to load data!');\n this.showLoader = false;\n\n });\n }\n else if (e.target.name == \"KYC2attachment\") {\n this.Attachmentobj.KYC2Attachment = e.target.files[0];\n }\n else if (e.target.name == \"KYC3attachment\") {\n this.Attachmentobj.KYC3Attachment = e.target.files[0];\n }\n\n }\n else if (Result.isExtensionValid == false) {\n e.target.value = null;\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .xls, .xlsx\");\n }\n else if (Result.isSizeValid == false) {\n e.target.value = null;\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n }\n }\n\n else {\n var Result = this.CheckFileValidation(e.target.files[0], this.fileType, 5)\n if (Result.isExtensionValid == true && Result.isSizeValid == true) {\n if (e.target.name == \"corppresentation\") {\n this.Attachmentobj.CorporatePresentationAttachment = e.target.files[0];\n }\n else if (e.target.name == \"organogram\") {\n this.Attachmentobj.OrganogramAttachment = e.target.files[0];\n }\n\n }\n else if (Result.isExtensionValid == false) {\n e.target.value = null;\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc, .docx, .zip, .ppt, .pptx\");\n }\n else if (Result.isSizeValid == false) {\n e.target.value = null;\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n }\n }\n\n }\n\n }\n\n /*******************************************************************************\n * End File Upload section\n * ******************************************************************************/\n\n OnselectIndustrySegment(event: any) {\n this.CustomerModel.CustomerProfile.SubSegment = null;\n this.GetSubSegment(event.target.value);\n }\n\n //for customer grp name & code\n OnselectCustomerGroupName(event: any) {\n //this.CustomerModel.BasicCustomerInformationModel.CustomergroupId = null;\n this.GetCustomerGroupCode(event.target.value);\n \n }\n\n GetCustomerGroupCode(CustomerGroupId: number) {\n this.CustomerModel.BasicCustomerInformationModel.CustomergroupCode = null;\n this.CustomerGroupCode = this.CustomerGroup?.filter(x => x.Id == CustomerGroupId);\n // console.log(\"After CustomerGroupName change---->\",this.CustomerGroupCode);\n \n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n PercentageShareValidation(myform: any) {\n if (this.CustomerModel.FinancialDetails.PercentageShare > 100) {\n myform.controls['percentageshare'].setErrors({ PercentageGreater: true });\n }\n }\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n /*******************************************************************************\n * Add multiple filed (Dynamic grid)\n * ******************************************************************************/\n AddNewRow(Type: any) {\n\n if (Type == 'Submitted') {\n if (this.PlantInformationWithGSTNoobj.CompanyName != \"\" || this.PlantInformationWithGSTNoobj.Region != null || this.PlantInformationWithGSTNoobj.Address != \"\" || this.PlantInformationWithGSTNoobj.GSTNo != \"\" ||\n this.PlantInformationWithGSTNoobj.KeyAccountNo != \"\" || this.PlantInformationWithGSTNoobj.ContactNo != \"\" || this.PlantInformationWithGSTNoobj.Email != \"\") {\n this.CustomerModel.PlantInformationWithGSTNo.push(this.PlantInformationWithGSTNoobj);\n this.PlantInformationWithGSTNoobj = new PlantInformationWithGSTNoModel();\n }\n if (this.TopmanagementObj.Name != \"\" || this.TopmanagementObj.Designation != \"\" || this.TopmanagementObj.ContactNo != \"\" || this.TopmanagementObj.Email != \"\") {\n this.CustomerModel.TopManagement.push(this.TopmanagementObj);\n this.TopmanagementObj = new TopManagementModel();\n }\n\n }\n else {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add another row for entering remaining details?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n if (Type == 'Plant') {\n if (Object.keys(this.PlantInformationWithGSTNoobj).length > 0) {\n this.CustomerModel.PlantInformationWithGSTNo.push(this.PlantInformationWithGSTNoobj);\n this.PlantInformationWithGSTNoobj = new PlantInformationWithGSTNoModel();\n }\n }\n if (Type == 'TopManagement') {\n if (Object.keys(this.TopmanagementObj).length > 0) {\n this.CustomerModel.TopManagement.push(this.TopmanagementObj);\n this.TopmanagementObj = new TopManagementModel();\n }\n }\n }\n\n });\n\n }\n\n }\n\n deleteField(index: any, Type: any, Id: number) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this record?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n if (Type == 'Plant') {\n\n if (Id != null && Id != undefined) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.Service.PostData('Customer', 'DeletePlantDetailsbyId', null, queryString).subscribe((data: any) => {\n this.CustomerModel.PlantInformationWithGSTNo = data;\n this.showLoader = false;\n\n }, error => {\n this.toastr.error(\"Failed to delete record!\");\n this.showLoader = false;\n });\n }\n else {\n this.CustomerModel.PlantInformationWithGSTNo.splice(index, 1);\n }\n\n }\n if (Type == 'TopManagement') {\n if (Id != null && Id != undefined) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.Service.PostData('Customer', 'DeleteTopManagementDetailsbyId', null, queryString).subscribe((data: any) => {\n this.CustomerModel.TopManagement = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to delete record!\");\n this.showLoader = false;\n });\n }\n else {\n this.CustomerModel.TopManagement.splice(index, 1);\n }\n }\n }\n\n });\n }\n\n /*******************************************************************************\n * End - add multiple filed (Dynamic grid)\n * ******************************************************************************/\n\n /*******************************************************************************\n *Download and delete file section\n *******************************************************************************/\n DownloadFile(Path: any, OrignalFilename: any) {\n let link = document.createElement('a');\n let path = AppGlobals.baseAppUrl + 'Uploads/' + Path\n link.setAttribute('href', path);\n link.setAttribute('target', '_blank');\n document.body.appendChild(link);\n link.click();\n link.remove();\n return false;\n }\n\n DeleteAttachments(Type: any, Filename) {\n if (Filename != '') {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this attachment?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n let queryString = \"\";\n queryString = \"Filename=\" + Filename;\n this.showLoader = true;\n this.Service.PostData('Customer', 'DeleteFile', null, queryString).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n switch (Type) {\n case \"corppresentation\":\n this.CustomerModel.CustomerProfile.CorporatePresentationFileName = \"\";\n this.CustomerModel.CustomerProfile.CorporatePresentationFilePath = \"\";\n break;\n case \"organogram\":\n this.CustomerModel.BasicCustomerInformationModel.OrganogramFileName = \"\";\n this.CustomerModel.BasicCustomerInformationModel.OrganogramFilePath = \"\";\n break;\n case \"KYC2attachment\":\n this.CustomerModel.BasicCustomerInformationModel.KYC2FileName = \"\";\n this.CustomerModel.BasicCustomerInformationModel.KYC2FilePath = \"\";\n break;\n case \"KYC3attachment\":\n this.CustomerModel.BasicCustomerInformationModel.KYC3FileName = \"\";\n this.CustomerModel.BasicCustomerInformationModel.KYC3FilePath = \"\";\n break;\n }\n }\n if (result.ResponseCode == 0) {\n this.toastr.warning(\"Failed to delete file!\");\n }\n }, error => {\n this.toastr.error(\"Failed to delete file!\");\n this.showLoader = false;\n });\n }\n });\n\n }\n else if (Filename == '') {\n switch (Type) {\n case \"corppresentation\":\n this.Attachmentobj.CorporatePresentationAttachment = null;\n break;\n case \"organogram\":\n this.Attachmentobj.OrganogramAttachment = null;\n break;\n case \"KYC2attachment\":\n this.Attachmentobj.KYC2Attachment = null;\n break;\n case \"KYC3attachment\":\n this.Attachmentobj.KYC3Attachment = null;\n break;\n case \"KYC1attachment\":\n this.KYC1Attachment = null;\n break;\n\n }\n }\n }\n\n /*******************************************************************************\n *End Download and delete file section\n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n // if(this.type=='lead')\n // {\n // this.CustomerModel.BasicCustomerInformationModel.leadId=this.route.snapshot.params[\"id\"];\n \n // }\n if (this.CustomerModel.FinancialDetails.PercentageShare > 100) {\n myform.controls['percentageshare'].setErrors({ PercentageGreater: true });\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this customer?\"\n }\n });\n if (this.CustomerModel.CompanyTurnover.Noofemployees == 0 && this.CustomerModel.CompanyTurnover.Noofemployees.toString() != \"\") {\n myform.controls['noofemployees'].setErrors({ NoGreater: true });\n }\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.AddNewRow('Submitted');\n const frmData = new FormData();\n frmData.append(\"KYC2Attachment\", this.Attachmentobj.KYC2Attachment);\n frmData.append(\"KYC3Attachment\", this.Attachmentobj.KYC3Attachment);\n frmData.append(\"CorporatePresentationAttachment\", this.Attachmentobj.CorporatePresentationAttachment);\n frmData.append(\"OrganogramAttachment\", this.Attachmentobj.OrganogramAttachment);\n frmData.append(\"CustomerModel\", JSON.stringify(this.CustomerModel));\n this.showLoader = true;\n this.Service.PostData('Customer', 'Update', frmData, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Customer details updated successfully!');\n this.router.navigate(['/Customer']);\n }\n else {\n this.toastr.error(\"Failed to update customer details!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error('Failed to update customer details!');\n this.showLoader = false;\n this.router.navigate(['/Customer']);\n });\n }\n });\n }\n }\n \n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isCustomerEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isCustomer')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n\n \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Customer\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n\n \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n First Contact Commercial Person Details\n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n \n Contact number should be 10-15 digits\n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n\n \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n Financial Details\n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter valid percentage of share
    \n \n Percentage of Share must be less than or equal to 100
    \n
    \n
    \n \n\n \n \n\n\n
    \n
    \n
    \n
    \n

    \n \n {{weissContactDetailsOfWhichCountry}} Contact Details\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n \n {{weissWithAbbreviatedCountry}} account manager is required\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Region is required
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n \n \n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Customer Profile\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Company information/history is required
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Brands/Products range is required
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n \n [File Format: .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc,\n .docx, .zip, .ppt, .pptx] [Max 5 MB]\n {{Attachmentobj.CorporatePresentationAttachment != undefined ?\n Attachmentobj.CorporatePresentationAttachment.name : \"\"}}\n   \n
    \n \n {{CustomerModel.CustomerProfile.CorporatePresentationFileName}}  \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Industry segment is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Sub segment is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Customer classification is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Type of customer is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Customer category is required
    \n
    \n
    \n
    \n
    \n
    \n \n Company Turnover\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n \n
    \n \n
    \n\n
    \n Please enter only numbers
    \n
    \n Year should be 4 digits
    \n
    \n Year should be 4 digits
    \n
    \n
    \n
    \n
    \n \n
    \n\n \n
    \n\n
    \n Please enter only numbers
    \n
    \n No. of Employees must be greater than 0
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n Customer's customer is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n Plant Information With GST No.\n
    \n
    \n
    \n \n \n \n \n Company Name\n \n \n Region\n \n \n Address\n \n \n GST No.\n \n \n Key Account Name\n \n \n Contact No.\n \n \n Email\n \n\n \n Action\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n
    \n \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n \n Contact number should be 10-15 digits\n
    \n
    \n \n \n \n
    \n\n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n \n \n \n \n \n\n \n \n \n\n \n \n\n
    \n
    \n
    \n
    \n

    \n Top Management - Board of Directors, Key Contacts\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n \n\n \n
    NameDesignation/ Dept.Contact No.EmailAction
    \n \n \n \n \n \n \n \n \n \n
    \n \n\n \n \n\n \n \n
    \n \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits\n \n Contact number should be 10-15 digits\n \n \n
    \n \n
    \n\n \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n \n
    \n \n [File Format: .bmp, .jpeg, .jpg, .png, .pdf, .xml, .txt, .doc,\n .docx, .zip, .ppt, .pptx] [Max 5 MB]\n {{Attachmentobj.OrganogramAttachment != undefined ?\n Attachmentobj.OrganogramAttachment.name : \"\"}}\n   \n
    \n \n {{CustomerModel.BasicCustomerInformationModel.OrganogramFileName}}  \n \n\n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n

    \n \n {{businessOfWhichComapany}} Business\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n \n Opportunities for {{opportunitiesForWhichCompany}}\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Indexer is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Heavy duty indexer is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Linear transfer system is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Pick and place system is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Linear system is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Direct drives is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Delta robot is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Value added solution is required
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Accessories & spare parts is required
    \n
    \n
    \n
    \n \n
    \n \n Limit {{maxLimit}} characters, {{remLimit}} characters\n remaining.\n
    \n
    \n Comments is required
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Discount Structure  *\n

    \n
    \n
    \n
    \n
    \n \n
    \n\n \n\n \n \n\n \n Product Model\n \n \n Discount (%)\n \n\n \n \n\n \n\n\n \n \n {{item.ModelName}}\n {{item.ProductDiscount}}\n\n \n\n \n\n \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Current Visible Competitors Name with USP *\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n Current visible competitors name with USP is required
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n KYC Attachment\n

    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n\n \n
    \n \n [File Format: .xls, .xlsx] [Max 5 MB]\n {{Attachmentobj.KYC2Attachment != undefined ?\n Attachmentobj.KYC2Attachment.name : \"\"}}\n   \n
    \n \n {{CustomerModel.BasicCustomerInformationModel.KYC2FileName}}  \n \n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n \n [File Format: .xls, .xlsx] [Max 5 MB]\n {{Attachmentobj.KYC3Attachment != undefined ?\n Attachmentobj.KYC3Attachment.name : \"\"}}\n   \n
    \n \n {{CustomerModel.BasicCustomerInformationModel.KYC3FileName}}  \n \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Engagement Activities\n

    \n
    \n
    \n
    \n
      \n
    • \n Add Activity \n
    • \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n   \n   \n Cancel\n
    \n
    \n
    \n
    \n \n \n\n \n\n \n\n \n \n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-employee',\n templateUrl: './add-employee.component.html',\n styleUrls: ['./add-employee.component.scss']\n})\nexport class AddEmployeeComponent implements OnInit {\n EmployeeDetails: EmployeeGuestModel = new EmployeeGuestModel();\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n //passPattern: any = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,30}$/;\n passPattern: any = '(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,30}';\n isValidEmail: boolean = false;\n Country: any[] = [];\n Roles: any[] = [];\n Region: any[] = [];\n EmployeeData: any[] = [];\n UserId: number;\n charCode: any;\n mailIdFormat : any;\n\n @Input()\n showLoader: boolean = false;\n ConfirmPasshide: boolean = true;\n Passhide: boolean = true;\n\n constructor(private router: Router, private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog\n , private route: ActivatedRoute, private titleService: Title, private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllEmployeeData();\n this.getAllCountry();\n this.getAllRoles();\n this.getAllRegion();\n\n }\n\n /*******************************************************************************\n * Get data for add employee\n * ******************************************************************************/\n getAllCountry() {\n this.showLoader = true;\n this.Service.GetData(\"Country\", \"GetAll\", null).subscribe((data: any) => {\n this.Country = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n getAllRoles() {\n this.showLoader = true;\n this.Service.GetData(\"Account\", \"GetAllEmployeeRoles\", null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllRegion() {\n this.showLoader = true;\n this.Service.GetData(\"Region\", \"GetAll\", null).subscribe((data: any) => {\n this.Region = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllEmployeeData() {\n this.showLoader = true;\n this.Service.GetData(\"Employee\", \"GetAllEmployeeData\", null).subscribe((data: any) => {\n this.EmployeeData = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End Get data for add employee\n * ******************************************************************************/\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n\n ChangeEmployee(value: any) {\n var employee = this.EmployeeData?.filter(x => x.Fk_User_Id == value);\n this.EmployeeDetails.ReportingManagerEmail = employee[0].Email;\n }\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this employee?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.EmployeeDetails.RoleType = 2;\n this.showLoader = true;\n this.Service.PostData('Account', 'Register', this.EmployeeDetails, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Employee details added successfully!');\n this.router.navigate(['/Employee']);\n }\n if (result.ResponseCode == 0) {\n this.toastr.warning('Username already exists!');\n myform.controls['username'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 2) {\n this.toastr.warning('Employee code already exists!');\n myform.controls['empcode'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 3) {\n this.toastr.warning('Contact number already exists!');\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 4) {\n this.toastr.warning('Employee code and contact number already exists!');\n myform.controls['empcode'].setErrors({ AlreadyPresent: true });\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n\n }, error => {\n this.toastr.error('Failed to add employee details!');\n this.showLoader = false;\n this.router.navigate(['/Employee']);\n });\n }\n });\n\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Employee\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n\n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Employee code is required
    \n
    \n Employee code already exists!\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Contact number is required
    \n
    \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n
    \n Contact number already exists!\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Role is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n Country is required
    \n
    \n\n
    \n
    \n \n
    \n \n \n {{item.Name}}\n \n \n
    \n
    \n Region is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n Reporting manager is required
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Reporting Manager Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n {{Passhide ? 'visibility_off': 'visibility'}}\n \n \n
    \n
    \n Password is required
    \n
    \n Password must contains minimum 6 alphanumeric with at least one\n uppercase, one lowercase and one special characters. (Ex. Pass@123)\n
    \n
    \n
    \n
    \n \n
    \n \n \n {{ConfirmPasshide ? 'visibility_off':\n 'visibility'}}\n \n
    \n
    \n Confirm password is required
    \n
    \n Confirm password must be same as password
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n Cancel\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n \n\n \n \n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\nimport { EmployeeGuestModel, EmployeeRegion } from 'src/app/Model/EmployeeGuestModel';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\n\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { OutofOfficeActivityModel } from 'src/app/Model/OutOfOfficeActivityModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-employee',\n templateUrl: './edit-view-employee.component.html',\n styleUrls: ['./edit-view-employee.component.scss']\n})\nexport class EditViewEmployeeComponent implements OnInit {\n EmployeeLeaveDetails: OutofOfficeActivityModel = new OutofOfficeActivityModel();\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n EmployeeDetails: EmployeeGuestModel = new EmployeeGuestModel();\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n // passPattern: any = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,30}$/;\n passPattern: any = '(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,30}';\n Country: any[] = [];\n Roles: any[] = [];\n Region: any[] = [];\n EmployeeData: any[] = [];\n AlternateEmployeeData: any[] = [];\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n charCode: any;\n UserRole: any;\n isEmployeeEditable: boolean = false;\n isEmployeeLeaveDetailsVisible : boolean = true;\n mailIdFormat : any;\n\n @Input()\n showLoader: boolean = false;\n Passhide: boolean = true;\n ConfirmPasshide: boolean = true;\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private Service: CommonService, \n public dialog: MatDialog, private titleService: Title,private cd:ChangeDetectorRef, private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isEmployeeEditable = AppGlobals.EmployeeMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.EmployeeDetails.RegisterId = this.route.snapshot.params[\"id\"];\n //this.getAllEmployeeData();\n this.getEmployeeDetailsById(this.EmployeeDetails.RegisterId);\n this.getAllCountry();\n this.getAllRoles();\n this.getAllRegion();\n \n }\n\n /*******************************************************************************\n * Get data for add employee\n * ******************************************************************************/\n getEmployeeLeaveDetailsById(Fk_User_Id: string) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Fk_User_Id;\n this.Service.GetData('Employee', 'GetLeaveDateOfEmployeeById', queryString).subscribe((data: any) => {\n if (data == null){\n this.isEmployeeLeaveDetailsVisible = false;\n this.EmployeeDetails.AlternateEmployee = \"\";\n }else{\n this.EmployeeLeaveDetails = data;\n this.EmployeeDetails.AlternateEmployee = this.EmployeeLeaveDetails.AlternateUserId;\n this.EmployeeDetails.StartDate = this.EmployeeLeaveDetails.StartDate;\n this.EmployeeDetails.EndDate = this.EmployeeLeaveDetails.EndDate;\n \n }\n \n // this.getAllEmployeeData(Fk_User_Id);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n\n getEmployeeDetailsById(RegisterId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + RegisterId;\n this.Service.GetData('Employee', 'GetEmployeeById', queryString).subscribe((data: any) => {\n this.EmployeeDetails = data;\n let region =[];\n region.push(this.EmployeeDetails.Region);\n\n this.EmployeeDetails.Region=[];\n region[0].forEach(element => {\n this.EmployeeDetails.Region.push(element.Id.toString());\n }); \n // this.cd.detectChanges();\n //this.EmployeeDetails = data;\n this.getEmployeeLeaveDetailsById(this.EmployeeDetails.Fk_User_Id);\n this.getAllEmployeeData(this.EmployeeDetails.Fk_User_Id);\n \n this.getAlternateEmployeeData(this.EmployeeDetails.Role, RegisterId,this.EmployeeDetails.Fk_User_Id);\n\n this.showLoader = false;\n \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllCountry() {\n this.showLoader = true;\n this.Service.GetData(\"Country\", \"GetAll\", null).subscribe((data: any) => {\n this.Country = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllRoles() {\n this.showLoader = true;\n this.Service.GetData('Account', 'GetAllEmployeeRoles', null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllRegion() {\n this.showLoader = true;\n this.Service.GetData(\"Region\", \"GetAll\", null).subscribe((data: any) => {\n this.Region = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllEmployeeData(Fk_User_Id: string) {\n this.showLoader = true;\n this.Service.GetData(\"Employee\", \"GetAllEmployeeData\", null).subscribe((data: any) => {\n this.EmployeeData = data;\n this.EmployeeData = this.EmployeeData.filter(x => x.Fk_User_Id !== Fk_User_Id);\n this.ChangeEmployee(this.EmployeeDetails.ReportingManager);\n this.showLoader = false; \n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n getAlternateEmployeeData(role, RegisterId, Fk_User_Id)\n {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"id=\" + RegisterId +\"&role=\" + role +\"&userid=\" + Fk_User_Id ;\n this.Service.GetData(\"Employee\", \"GetAlternateEmployeeData\", queryString).subscribe((data: any) => {\n this.AlternateEmployeeData = data;\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n \n /*******************************************************************************\n * End get data for add employee\n * ******************************************************************************/\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Employee - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Employee - ECOTECH\");\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n OnChangeAlternateEmployee(value: any){\n var alternateemployee = this.AlternateEmployeeData?.filter(x => x.Fk_User_Id == value);\n this.EmployeeDetails.AlternateEmployee = alternateemployee[0].Fk_User_Id;\n }\n \n ChangeEmployee(value: any) {\n var employee = this.EmployeeData?.filter(x => x.Fk_User_Id == value);\n if (employee.length>0) {\n \tthis.EmployeeDetails.ReportingManagerEmail = employee[0].Email;\n }\n this.cd.detectChanges();\n }\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this employee?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.EmployeeDetails.RoleType = 2;\n this.showLoader = true;\n this.Service.PostData('Account', 'UpdateRegister', this.EmployeeDetails, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Employee details updated successfully!');\n this.router.navigate(['/Employee']);\n }\n if (result.ResponseCode == 0) {\n this.toastr.warning('Username already exists!');\n myform.controls['username'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 2) {\n this.toastr.warning('Employee code already exists!');\n myform.controls['empcode'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 3) {\n this.toastr.warning('Contact number already exists!');\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 4) {\n this.toastr.warning('Employee code and contact number already exists!');\n myform.controls['empcode'].setErrors({ AlreadyPresent: true });\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n if(result.ResponseCode == 5)\n {\n this.toastr.success('Failed to update employee password!');\n this.router.navigate(['/Employee']);\n }\n }, error => {\n this.toastr.error('Failed to update employee details!');\n this.showLoader = false;\n this.router.navigate(['/Employee']);\n });\n }\n });\n\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isEmployeeEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isEmployee')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Employee\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n\n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Employee code is required
    \n
    \n Employee code already exists!\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Contact number is required
    \n
    \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n
    \n Contact number already exists!\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Role is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n Country is required
    \n
    \n\n
    \n
    \n \n
    \n \n\t\t\t\t\t\n\t\t\t\t\t \n {{item.Name}} \n \n \n
    \n
    \n Region is required
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Reporting manager is required
    \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n Reporting Manager Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n \n \n {{Passhide ? 'visibility_off': 'visibility'}}\n \n \n
    \n
    \n Password is required
    \n
    \n Password must contains minimum 6 alphanumeric with at least one\n uppercase, one lowercase and one special characters. (Ex. Pass@123)\n
    \n
    \n
    \n
    \n \n
    \n \n \n {{ConfirmPasshide ? 'visibility_off':\n 'visibility'}}\n \n
    \n
    \n Confirm password is required
    \n
    \n Confirm password must be same as password
    \n
    \n
    \n\n
    \n \n
    \n \n Request For Delegation\n
    \n
    \n \n
    {{EmployeeLeaveDetails.StartDate ? (EmployeeLeaveDetails.StartDate | date) : 'Date not available'}} \n
    \n\n
    \n \n \n
    {{EmployeeLeaveDetails.EndDate ? (EmployeeLeaveDetails.EndDate | date) : 'Date not available'}}\n
    \n
    \n \n
    \n \n
    \n \n\n
    \n
    \n Alternate Employee is required
    \n
    \n
    \n (You can delegate to users with same role & region.)\n
    \n
    \n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n   \n Cancel\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n \n\n \n \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-employee-details',\n templateUrl: './employee-details.component.html',\n styleUrls: ['./employee-details.component.scss']\n})\n\nexport class EmployeeDetailsComponent implements OnInit {\n displayedColumns: string[] = ['Username', 'Name', 'EmpCode', 'RoleName', 'Email', 'ContactNumber','ReportingManagerName','Action'];\n dataSource: MatTableDataSource;\n UpdateStatus: UpdateStatus = new UpdateStatus();\n disabled: boolean = false;\n UserRole: any;\n isEmployeeEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: EmployeeGuestModel[] = [];\n\n constructor(private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isEmployeeEditable = AppGlobals.EmployeeMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.GetAllEmployeeDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllEmployeeDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllEmployeeDetails() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.Service.GetData('Employee', 'GetAllEmployees', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllEmployeeDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllEmployeeDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllEmployeeDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n UpdateEmployeeStatusById(RegisterId: number, RoleType: number, CurrentEmpStatus: boolean) {\n this.UpdateStatus.RegisterId = RegisterId;\n this.UpdateStatus.RoleType = RoleType;\n\n if (CurrentEmpStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this employee?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.UpdateStatus.Status = 1;\n\n this.showLoader = true;\n this.Service.PostData('Account', 'UpdateStatus', this.UpdateStatus, null).subscribe((data: any) => {\n\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Employee deactivated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate employee!\");\n }\n this.GetAllEmployeeDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate employee!\");\n this.GetAllEmployeeDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllEmployeeDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this employee?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.UpdateStatus.Status = 0;\n\n this.showLoader = true;\n this.Service.PostData('Account', 'UpdateStatus', this.UpdateStatus, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Employee activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate employee!\");\n }\n this.GetAllEmployeeDetails();\n }, error => {\n this.toastr.error(\"Failed to activate employee!\");\n this.GetAllEmployeeDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllEmployeeDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n\n }\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isEmployeeEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isEmployee')[0]?.IsEditable;\n \n });\n \n }\n}\n\n\n\n","\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Employee Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n\n\n \n \n\n
    Username {{row.Username}} Name {{row.Name}} Employee Code {{row.EmpCode}} Role {{row.RoleName}} Email {{row.Email}} Contact Number {{row.ContactNumber}} Reporting Manager {{row.ReportingManagerName}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n\n
    \n No records found
    \n \n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-guest',\n templateUrl: './add-guest.component.html',\n styleUrls: ['./add-guest.component.scss']\n})\nexport class AddGuestComponent implements OnInit {\n GuestDetails: EmployeeGuestModel = new EmployeeGuestModel();\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n //passPattern: any = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,30}$/;\n passPattern: any = '(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,30}';\n isValidEmail: boolean = false;\n Country: any[] = [];\n Roles: any[] = [];\n Region: any[] = [];\n UserId: number;\n charCode: any;\n mailIdFormat : any;\n\n @Input()\n showLoader: boolean = false;\n\n ConfirmPasshide: boolean = true;\n Passhide: boolean = true;\n\n constructor(private router: Router, private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllCountry();\n this.getAllRoles();\n this.getAllRegion();\n }\n\n /*******************************************************************************\n * Get data for add employee\n * ******************************************************************************/\n getAllCountry() {\n this.showLoader = true;\n this.Service.GetData(\"Country\", \"GetAll\", null).subscribe((data: any) => {\n this.Country = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n getAllRoles() {\n this.showLoader = true;\n this.Service.GetData('Account', 'GetAllGuestRoles', null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllRegion() {\n this.showLoader = true;\n this.Service.GetData(\"Region\", \"GetAll\", null).subscribe((data: any) => {\n this.Region = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n /*******************************************************************************\n * End Get data for add employee\n * ******************************************************************************/\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this guest?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.GuestDetails.RoleType = 3;\n \n // let numberRegionID:number[]=[];\n // numberRegionID.push(this.GuestDetails.Region[0]);\n // this.GuestDetails.Region = numberRegionID;\n this.showLoader = true;\n this.Service.PostData('Account', 'Register', this.GuestDetails, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Guest added successfully!');\n this.router.navigate(['/Guest']);\n }\n if (result.ResponseCode == 0) {\n this.toastr.warning('Username already exists!');\n myform.controls['username'].setErrors({ AlreadyPresent: true });\n }\n // chk = 2 Guest-id/ EmpCode already exists\n // chk=3 ContactNo. already exists\n // chk=4 ContactNo and Guest-id/ EmpCode already exists\n if (result.ResponseCode == 2) {\n this.toastr.warning('Guest id already exists!');\n myform.controls['guest_id'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 3) {\n this.toastr.warning('Contact number already exists!');\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 4) {\n this.toastr.warning('Guest id and contact number already exists!');\n myform.controls['guest_id'].setErrors({ AlreadyPresent: true });\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n }, error => {\n this.toastr.error('Falied to add guest details!');\n this.showLoader = false;\n this.router.navigate(['/Guest']);\n });\n }\n });\n\n }\n\n\n\n}\n","\n\n
    \n\n \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Guest\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Guest id is required
    \n
    \n Guest id already exists!\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n\n
    \n\n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Contact number is required
    \n
    \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n
    \n Contact number already exists!\n
    \n\n
    \n
    \n
    \n \n
    \n\n \n
    \n
    \n Address is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n\n \n
    \n
    \n Country is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Region is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n Role is required
    \n
    \n
    \n
    \n \n
    \n \n \n {{Passhide ? 'visibility_off': 'visibility'}}\n \n \n
    \n
    \n Password is required
    \n
    \n Password must contains minimum 6 alphanumeric with at least one\n uppercase, one lowercase and one special characters. (Ex. Pass@123)\n
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n \n {{ConfirmPasshide ? 'visibility_off':\n 'visibility'}}\n \n
    \n
    \n Confirm Password is required
    \n
    \n Confirm password must be same as password
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n Cancel\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n \n\n \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n@Component({\n selector: 'app-edit-view-guest',\n templateUrl: './edit-view-guest.component.html',\n styleUrls: ['./edit-view-guest.component.scss']\n})\n\nexport class EditViewGuestComponent implements OnInit {\n GuestDetails: EmployeeGuestModel = new EmployeeGuestModel();\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n emailPattern: string = \"^[a-zA-Z0-9_\\\\.-]+@([a-zA-Z0-9-]+\\\\.)+[a-zA-Z]{2,6}$\";\n // passPattern: any = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,30}$/;\n passPattern: any = '(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&].{6,30}';\n isValidEmail: boolean = false;\n Country: any[] = [];\n Roles: any[] = [];\n Region: any[] = [];\n charCode: any;\n UserRole: any;\n isGuestEditable: boolean = false;\n mailIdFormat : any;\n\n @Input()\n showLoader: boolean = false;\n Passhide: boolean = true;\n ConfirmPasshide: boolean = true;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n // this.GuestDetails.Region = []; // Initialize Region as an empty array\n }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n this.mailIdFormat = appConfig.mailIdFormat;\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isGuestEditable = AppGlobals.GuestMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.GuestDetails.RegisterId = this.route.snapshot.params[\"id\"];\n this.getGuestDetailsById(this.GuestDetails.RegisterId);\n this.getAllCountry();\n this.getAllRoles();\n this.getAllRegion();\n }\n\n /*******************************************************************************\n * Get data for add employee\n * ******************************************************************************/\n getAllCountry() {\n this.showLoader = true;\n this.Service.GetData(\"Country\", \"GetAll\", null).subscribe((data: any) => {\n this.Country = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllRoles() {\n this.showLoader = true;\n this.Service.GetData('Account', 'GetAllGuestRoles', null).subscribe((data: any) => {\n this.Roles = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n getAllRegion() {\n this.showLoader = true;\n this.Service.GetData(\"Region\", \"GetAll\", null).subscribe((data: any) => {\n this.Region = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getGuestDetailsById(RegisterId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + RegisterId;\n\n this.Service.GetData('Guest', 'GetGuestById', queryString).subscribe((data: EmployeeGuestModel) => {\n this.GuestDetails = data;\n // console.log(\"--------------- +\" , this.GuestDetails)\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n /*******************************************************************************\n * End Get data for add employee\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Guest - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Guest - ECOTECH\");\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this guest?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.GuestDetails.RoleType = 3;\n this.showLoader = true;\n this.Service.PostData('Account', 'UpdateRegister', this.GuestDetails, null).subscribe((data: any) => {\n let result = data;\n this.showLoader = false;\n if (result.ResponseCode == 1) {\n this.toastr.success('Guest updated successfully!');\n this.router.navigate(['/Guest']);\n }\n if (result.ResponseCode == 0) {\n this.toastr.warning('Username already exists!');\n myform.controls['username'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 2) {\n this.toastr.warning('Guest id already exists!');\n myform.controls['guest_id'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 3) {\n this.toastr.warning('Contact number already exists!');\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n if (result.ResponseCode == 4) {\n this.toastr.warning('Guest id and contact number already exists!');\n myform.controls['guest_id'].setErrors({ AlreadyPresent: true });\n myform.controls['contactnumber'].setErrors({ AlreadyPresent: true });\n }\n if(result.ResponseCode == 5)\n {\n this.toastr.success('Failed to update guest password!');\n this.router.navigate(['/Guest']);\n }\n }, error => {\n this.toastr.error('Failed to update guest details!');\n this.showLoader = false;\n this.router.navigate(['/Guest']);\n });\n }\n });\n\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isGuestEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isGuest')[0]?.IsEditable;\n console.log(\"IsConfigure-\",this.isGuestEditable);\n \n });\n \n }\n\n}\n","\n\n
    \n\n \n \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Guest\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Guest id is required
    \n
    \n Guest id already exists!\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Email is required
    \n
    \n \n Should be in Email Id format ({{mailIdFormat}})\n
    \n\n
    \n\n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n Contact number is required
    \n
    \n Please enter valid contact number
    \n \n Contact number should be 10-15 digits
    \n
    \n Contact number already exists!
    \n
    \n
    \n
    \n \n
    \n\n \n
    \n
    \n Address is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n\n \n
    \n
    \n Country is required
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n Region is required
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n Role is required
    \n
    \n
    \n
    \n \n
    \n \n \n {{Passhide ? 'visibility_off': 'visibility'}}\n \n \n
    \n
    \n Password is required
    \n
    \n Password must contains minimum 6 alphanumeric with at least one\n uppercase, one lowercase and one special characters. (Ex. Pass@123)\n
    \n
    \n
    \n\n
    \n\n
    \n \n
    \n \n \n {{ConfirmPasshide ? 'visibility_off':\n 'visibility'}}\n \n
    \n
    \n Confirm Password is required
    \n
    \n Confirm password must be same as password
    \n
    \n
    \n\n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n   \n   \n Cancel\n
    \n
    \n
    \n
    \n \n
    \n
    \n\n \n\n \n \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EmployeeGuestModel } from 'src/app/Model/EmployeeGuestModel';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-guest-details',\n templateUrl: './guest-details.component.html',\n styleUrls: ['./guest-details.component.scss']\n})\n\nexport class GuestDetailsComponent implements OnInit {\n displayedColumns: string[] = ['Username', 'Name', 'Address', 'RoleName', 'Email', 'ContactNumber', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n UpdateStatus: UpdateStatus = new UpdateStatus();\n UserRole: any;\n isGuestEditable: boolean = false;\n constructor(private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog, private route: ActivatedRoute,\n private titleService: Title,private accessservice: AccessPermissionService, private appConfigService : AppConfigService) {\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isGuestEditable = AppGlobals.GuestMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.GetAllGuestDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllGuestDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllGuestDetails() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.Service.GetData('Guest', 'GetAllGuests', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllGuestDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllGuestDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllGuestDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n\n UpdateGuestStatusById(RegisterId: number, RoleType: number, CurrentGuestStatus: boolean) {\n this.UpdateStatus.RegisterId = RegisterId;\n this.UpdateStatus.RoleType = RoleType;\n\n if (CurrentGuestStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this guest?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.UpdateStatus.Status = 1;\n\n this.showLoader = true;\n this.Service.PostData('Account', 'UpdateStatus', this.UpdateStatus, null).subscribe((data: any) => {\n\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Guest deactivated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate guest!\");\n }\n this.GetAllGuestDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate guest!\");\n this.GetAllGuestDetails();\n\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllGuestDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this guest?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.UpdateStatus.Status = 0;\n\n this.showLoader = true;\n this.Service.PostData('Account', 'UpdateStatus', this.UpdateStatus, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Guest activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate guest!\");\n }\n this.GetAllGuestDetails();\n }, error => {\n this.toastr.error(\"Failed to activate guest!\");\n this.GetAllGuestDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllGuestDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isGuestEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isGuest')[0]?.IsEditable;\n \n });\n \n }\n\n}\n\n\n","\n\n
    \n\n \n \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Guest Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n\n
    Username {{row.Username}} Name {{row.Name}} Address {{row.Address}}\n Role {{row.RoleName}} Email {{row.Email}} Contact Number {{row.ContactNumber}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n\n
    \n No records found
    \n \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { LoginPageImage } from 'src/app/Model/LoginPageImage';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-add-login-page-dynamic-image',\n templateUrl: './add-login-page-dynamic-image.component.html',\n styleUrls: ['./add-login-page-dynamic-image.component.scss']\n})\nexport class AddLoginPageDynamicImageComponent implements OnInit {\n\n LoginPageImageObj: LoginPageImage = new LoginPageImage();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n ];\n AppGlobals = AppGlobals;\n file: any;\n showLoader: boolean = false;\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n constructor(\n private router: Router,\n private toastr: ToastrService,\n public dialog: MatDialog,\n private CommonService: CommonService\n\n ) { }\n\n ngOnInit(): void {\n }\n\n onSubmit(myform: any) {\n\n if (this.LoginPageImageObj.ImageName == \"\") {\n this.toastr.info(\"Please Select an Image\");\n return;\n }\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to add this Login_Page_Image?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n\n const frmData = new FormData();\n // let LoginPagedetails = JSON.stringify(this.LoginPageImageObj);\n // frmData.append(\"LoginModel\", LoginPagedetails);\n if (this.LoginPageImageObj.ImageName != undefined)\n frmData.append(\"LoginPageImage\", this.file);\n let LoginPagedetails = JSON.stringify(this.LoginPageImageObj);\n frmData.append(\"LoginModel\", LoginPagedetails);\n this.CommonService.PostData('LoginPageImage', 'Add', frmData, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Login_Page_Image added successfully!');\n this.CommonService.RefreshHeaderFun();\n this.router.navigate(['/LoginPageImage']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Login_Page_Image is already exist!');\n this.router.navigate(['/LoginPageImage']);\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add Login_Page_Image!');\n this.router.navigate(['/LoginPageImage']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add Login_Page_Image!');\n this.showLoader = false;\n this.router.navigate(['/LoginPageImage']);\n });\n }\n\n\n });\n }\n // uploadDynamicImage(event, index) {\n // let file = event.target.files[0];\n // let isValidFile = true;\n // let fileExists = true;\n // if (((file.size) / 1000000) <= 5) {\n // isValidFile = this.allowedFileType.includes(file.type);\n // if (!isValidFile) {\n // this.toastr.warning(\"Invalid file\");\n // }\n // if(!fileExists) {\n // this.toastr.warning(\"File is Already exists!\")\n // }\n // else {\n // this.LoginPageImageObj.ImageName = file.name;\n // this.file=file; \n // //const fileExists = true; \n // }\n // }\n // else\n // {\n // this.toastr.info(\"Too large file. Please select file upto 5MB\");\n // }\n // }\n\n uploadDynamicImage(event) {\n for (let i = 0; i < event.target.files.length; i++) {\n let file = event.target.files[i];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 5) {\n\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .bmp, .jpeg, .jpg, .png,\");\n //event.target.value = null;\n isValidFile = false;\n }\n // else if (file.name.length > 50) {\n // this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n // isValidFile = false;\n // }\n }\n else {\n this.toastr.warning(\"File size must be less than or equal to 5MB!\");\n //event.target.value = null;\n isValidFile = false;\n }\n if (isValidFile) {\n // this.StockFile.push(file);\n this.LoginPageImageObj.ImageName = file.name;\n this.file = file;\n }\n }\n\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add LoginPage Image\n

    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n
    \n","import { HttpClient } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, NgZone, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { SingleFieldComponent, SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { UserRoles } from 'src/app/UserRoles';\n\n@Component({\n selector: 'app-details-login-page-dynamic-image',\n templateUrl: './details-login-page-dynamic-image.component.html',\n styleUrls: ['./details-login-page-dynamic-image.component.scss']\n})\nexport class DetailsLoginPageDynamicImageComponent implements OnInit {\n displayedColumns: string[] = ['ImageName', 'Action'];\n dataSource: MatTableDataSource;\n singleFieldComponent: SingleFieldComponent = new SingleFieldComponent();\n singleFieldObj: SingleFieldModel = new SingleFieldModel();\n Role: any;\n UserRoles: any;\n disabled: boolean = false;\n isImageEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n \n /*************************************************************************\n End here\n *************************************************************************/\n \n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n\n ngOnInit(): void {\n this.singleFieldObj.Id = this.route.snapshot.params[\"id\"];\n this.Role = localStorage.getItem(\"UserRole\");\n this.getAccess();\n\n //this.isImageEditable = AppGlobals.CustomerMastersEditableAccessArray.filter(x => x.role == this.Role)[0]?.isEditable;\n //this.isDownloadCustomerData = AppGlobals.CustomerMastersDataDownloadAccessArray.filter(x => x.role == this.Role)[0]?.isEditable;\n this.GetAllImageDetails();\n }\n\n constructor(private toastr: ToastrService, private Service: CommonService, public dialog: MatDialog,\n private http: HttpClient, private NgZone: NgZone, private router: Router, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService\n ) {\n this.UserRoles = UserRoles;\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllCustomerDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n // showimg(){\n \n // this.Service.GetData('LoginPageImage', 'GetActiveImage',null).subscribe((data: any) => {\n // console.log('Data from api',data)\n // this.data = data.Data;\n // this.length = data.Total;\n \n // this.dataSource = new MatTableDataSource(this.data);\n // this.showLoader = false;\n // }, error => {\n // this.toastr.error(\"Failed to load data!\");\n // this.showLoader = false;\n // });\n \n\n // }\n\n\n GetAllImageDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.Service.GetData('LoginPageImage', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllImageDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllImageDetails();\n }\n }\n\n pageEvent(event: any) {\n \n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n \n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllImageDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n \n UpdateImageById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this as login image?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + Id;\n\n this.Service.PostData('LoginPageImage', 'UpdateStatus', null,queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"LoginPageImage deactivated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate LoginPageImage!\");\n }\n this.GetAllImageDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate LoginPageImage!\");\n this.GetAllImageDetails();\n this.showLoader = false;\n });\n }\n else {\n this.GetAllImageDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this as login image?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.Service.PostData('LoginPageImage', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"LoginPageImage activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate LoginPageImage!\");\n }\n this.GetAllImageDetails();\n }, error => {\n this.toastr.error(\"Failed to activate LoginPageImage!\");\n this.GetAllImageDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllImageDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n \n }\n\n defaultchek = false; \n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isImageEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.Role && x.ElementKey=='isLoginPageImage')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Login Page Images\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n\n
    Id {{row.id} Image Name {{row.ImageName}} Action \n \n \n     \n\n \n   {{row.Active==true ? 'Active' : 'Inactive'}}\n \n\n \n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { LoginPageImage } from 'src/app/Model/LoginPageImage';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-edit-view-login-page-dynamic-image',\n templateUrl: './edit-view-login-page-dynamic-image.component.html',\n styleUrls: ['./edit-view-login-page-dynamic-image.component.scss']\n})\nexport class EditViewLoginPageDynamicImageComponent implements OnInit {\n LoginPageImageObj: LoginPageImage = new LoginPageImage();\n allowedFileType: string[] = [\n 'image/bmp',\n 'image/jpeg',\n 'image/png',\n ];\n // Id: any;\n file: any;\n Comment: string = \"\";\n ImagePath: string = \"\";\n remLimit: any = 1500;\n maxLimit: any = 1500;\n varLongTermGoal: any;\n isEditable: boolean = true;\n isCommentEditable: boolean = false;\n FormStatus: string = \"View\";\n\n UserRole:any;\n isLoginPageImageEditable:boolean;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n @Input()\n showLoader: boolean = false;\n data: any[] = [];\n @Output() sendImage: EventEmitter;\n Id:any;\n\n \n constructor(private Service:CommonService,\n private toastr:ToastrService,\n private route: ActivatedRoute,\n private router: Router,\n private titleService: Title,\n public dialog: MatDialog,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n \n }\n \n ngOnInit(): void {\n this.Id= this.route.snapshot.params[\"id\"];\n this.GetAllImageDetails();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // console.log(this.GetAllImageDetails)\n \n }\n \n GetAllImageDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString=\"Id=\"+this.Id;\n this.Service.GetData('LoginPageImage', 'GetById', queryString).subscribe((data: any) => {\n this.LoginPageImageObj = data;\n this.ImagePath = AppGlobals.baseAppUrl + \"uploads/LoginPageImage/\" + encodeURIComponent(data.ImageName);\n this.remLimit = this.maxLimit - data.Comment.length;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n\n }\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n }\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"You want to Update this Comment?\"\n }\n\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n // if (this.LeadObj.LeadDate != undefined) {\n // this.LeadObj.LeadDate = new Date(this.convertDate(new NgbDate(this.LeadObj.LeadDate.year, this.LeadObj.LeadDate.month, this.LeadObj.LeadDate.day)));\n // }\n \n const frmData = new FormData();\n let ImageDatails = JSON.stringify(this.LoginPageImageObj);\n frmData.append(\"LoginModel\", ImageDatails);\n if (this.LoginPageImageObj.Id != undefined) {\n frmData.append(\"LoginPageImage\", this.Id);\n }\n\n this.Service.PostData('LoginPageImage', 'Update', frmData, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Comment Update successfully!');\n this.Service.RefreshHeaderFun();\n this.router.navigate(['/LoginPageImage']);\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to Update Comment!');\n this.router.navigate(['/LoginPageImage']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to Update Comment!');\n this.showLoader = false;\n this.router.navigate(['/LoginPageImage']);\n });\n }\n\n\n });\n\n }\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Comment - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Comment - ECOTECH\");\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isLoginPageImageEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isLoginPageImage')[0]?.IsEditable;\n \n });\n \n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Login Page Image\n

    \n
    \n
    \n
    \n \n\n
    \n
    \n
    \n
    \n
    \n","\nimport { Component, OnInit, Input, ViewChild, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { QuotationDetailsModel, ProductDetailsModel, ProductDrpdnDetails, OptionsModel, QuotationCustomerDetails, TechnicalSpecifications } from 'src/app/Model/QuotationModel';\nimport { number } from '@amcharts/amcharts4/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport * as htmlToImage from 'html-to-image';\nimport { toPng, toJpeg, toBlob, toPixelData, toSvg } from 'html-to-image';\nimport { NgbActiveModal, NgbModal, NgbDate } from '@ng-bootstrap/ng-bootstrap';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Form, NgForm } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { EnquiryStatus } from \"src/app/EnquiryStatus\";\nimport { UserRoles } from \"src/app/UserRoles\";\nimport { forkJoin, pipe } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-priceconfigurator',\n templateUrl: './priceconfigurator.component.html',\n styleUrls: ['./priceconfigurator.component.scss']\n})\nexport class PriceconfiguratorComponent implements OnInit {\n\n dropdownData: any;\n QuotationData: QuotationDetailsModel = new QuotationDetailsModel();\n productDrpdnDetails: ProductDrpdnDetails = new ProductDrpdnDetails();\n @Output() updateLoaderEvent = new EventEmitter();\n IsQuotationDataValid: boolean = true;\n AppRoles: UserRoles;\n WeissLogoPath = \"SITELOGO\";\n\n\n @ViewChild('QuotationForm') QuotationForm: NgForm;\n @ViewChild('refDateElement') refDateElement: ElementRef;\n @ViewChild('yourRefElement') yourRefElement: ElementRef;\n @ViewChild('keyPerElement') keyPerElement: ElementRef;\n @ViewChild('techspec') techspec: ElementRef;\n @ViewChild('keyPerEmail') keyPerEmail: ElementRef;\n @ViewChild('keyPerCNo') keyPerCNo: ElementRef;\n @ViewChild('QuoteComm') QuoteComm: ElementRef;\n\n @Input()\n showLoader: boolean = false;\n @Input() enquiObj;\n productseriesDropdownData: any;\n productmdodelDropdownData: any;\n variantDropdownData: any;\n variant1Data: any[];\n variant2Data: any[];\n variant3Data: any[];\n variant4Data: any[];\n variantLabl1: any;\n variantLabl2: any;\n variantLabl3: any;\n variantLabl4: any;\n Options: any[] = [];\n optionsList: any[];\n selectedOptions: any[] = [];\n OptionsNameList: any[] = [];\n CustomerDetailsObj: QuotationCustomerDetails = new QuotationCustomerDetails();\n enquiryStatusPassed: any;\n OptionsPrice: number;\n IsQuotationPriceOnRequest: any;\n optionsSelected: any[] = [];\n btnforL1: boolean = false;\n btnforL2: boolean = false;\n btnforL3: boolean = false;\n btn_PriceOnRequest: boolean = false;\n isPriceOnRequestVisible: boolean;\n user: string;\n isQuotationEditable: boolean;\n isPricesRequestedBeforeSubmit: boolean;\n TermsandConditions: any;\n YourRefValidation: boolean;\n RefDateValidation: boolean;\n KindAttValidation: boolean;\n isPriceOnRequestValid: boolean;\n columnCount: any = 0;\n showTechnicalSpecs: TechnicalSpecifications[] = new Array();\n role: string;\n btnforCS: boolean;\n charCode: any;\n KindAttContactNoValidilation: boolean;\n KingAttConactNumberValidationMsg: string = \"\";\n KindAttEmailValidilation: boolean;\n KingAttEmailValidationMsg: string = \"\";\n minDate: NgbDate;\n maxDate: NgbDate;\n\n\n remLimit: any = 250;\n maxLimit: any = 250;\n varLongTermGoal: any;\n QuoteCommentsValidation: Boolean;\n specialPkgDiscount: number = 0;\n finalpricewithoutspecialdiscount: any = 0;\n mailIdFormat : any;\n \n constructor(\n private modalService: NgbModal\n , private commonService: CommonService\n , private activeModal: NgbActiveModal\n , public dialog: MatDialog\n , private toastr: ToastrService\n , private router: Router,\n private appConfigService: AppConfigService) {\n // Initialize KingAttEmailValidationMsg with a placeholder message\n this.KingAttEmailValidationMsg = 'Should be in Email Id format ([emailFormat])';\n }\n\n ngOnInit(): void {\n this.showLoader = true;\n this.role = localStorage.getItem(\"UserRole\");\n this.mailIdFormat = this.appConfigService.getConfig().mailIdFormat;\n this.GetAllSeriesData();\n\n }\n\n GetAllSeriesData() {\n this.showLoader = true;\n this.commonService.GetData(\"Enquiry\", \"GetAllSeriesData\", null).subscribe((data: any) => {\n if (data != null) {\n this.dropdownData = data.allseriesmodel;\n //this.AllData.push(this.AllseriesData);\n // this.QuotationData.QuotationInfo = data.QuotationInfo;\n\n if (this.QuotationData.QuotationObj.length == 0) {\n var obj = new ProductDetailsModel();\n this.QuotationData.QuotationObj.push(obj);\n }\n //all series data \n this.productDrpdnDetails.ProductSeries = this.dropdownData.ProductSeries;\n this.CustomerDetailsObj = data.allseriesmodel.CustomerDetails;\n var inde = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n this.calculateTotalPricesForProduct(inde, 0);\n inde++;\n });\n }\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data.\");\n this.showLoader = false;\n });\n }\n\n showTechnicalSpecifications(i) {\n if (this.QuotationData.QuotationObj[i].ProductModel == undefined) {\n this.QuotationData.QuotationObj[i].ProductModelValidation = true;\n this.QuotationData.QuotationObj[i].ProductSeriesValidation = true;\n return;\n }\n this.QuotationData.QuotationObj[i].showTechnicalSpecifications = !this.QuotationData.QuotationObj[i].showTechnicalSpecifications;\n if (this.QuotationData.QuotationObj[i].showTechnicalSpecifications\n &&\n (this.QuotationData.QuotationObj[i].TechnicalSpecifications == undefined || this.QuotationData.QuotationObj[i].TechnicalSpecifications?.length == 0)) {\n\n\n var temp = [];\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = [];\n var obj = new TechnicalSpecifications();\n obj.ProductId = this.QuotationData.QuotationObj[i].ProductId;\n obj.uniqueid = this.makeRandom();\n temp.push(obj);\n this.QuotationData.QuotationObj[i].TechnicalSpecifications = temp;\n }\n }\n\n ShowOptionPriceOnRequestGrid(i) \n {\n if (this.QuotationData.QuotationObj[i].ShowOptionPriceOnRequestGrid) \n {\n this.QuotationData.QuotationObj[i].ShowOptionPriceOnRequestGrid = false;\n }\n else {\n this.QuotationData.QuotationObj[i].ShowOptionPriceOnRequestGrid = true;\n }\n }\n\n makeRandom() {\n let text = \"\";\n var possible: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;'[]\\=-)(*&^%$#@!~\";\n const lengthOfCode = 40;\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n clearRow(index) {\n this.productDrpdnDetails.ProductModel = [];\n this.QuotationData.QuotationObj[index].ProductModel = undefined;\n this.QuotationData.QuotationObj[index].Variant1Label = null;\n this.QuotationData.QuotationObj[index].Variant2Label = null;\n this.QuotationData.QuotationObj[index].Variant3Label = null;\n this.QuotationData.QuotationObj[index].Variant4Label = null;\n this.QuotationData.QuotationObj[index].Variant1 = undefined;\n this.QuotationData.QuotationObj[index].Variant2 = undefined;\n this.QuotationData.QuotationObj[index].Variant3 = undefined;\n this.QuotationData.QuotationObj[index].Variant4 = undefined;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = false;\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].Variant1Price = 0;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].OptionsPrice = 0;\n this.QuotationData.QuotationObj[index].Options = [];\n this.QuotationData.QuotationObj[index].OptionSelected = [];\n this.QuotationData.QuotationObj[index].selectedOptions = [];\n this.QuotationData.QuotationObj[index].selectedVariant1 = [];\n this.QuotationData.QuotationObj[index].selectedVariant2 = [];\n this.QuotationData.QuotationObj[index].selectedVariant3 = [];\n this.QuotationData.QuotationObj[index].selectedVariant4 = [];\n this.Options = [];\n\n this\n this.QuotationData.QuotationObj[index].Variant1Validation = false;\n this.QuotationData.QuotationObj[index].Variant2Validation = false;\n this.QuotationData.QuotationObj[index].Variant3Validation = false;\n this.QuotationData.QuotationObj[index].Variant4Validation = false;\n\n this.QuotationData.QuotationObj[index].Options_POR_Validation = false;\n }\n\n onProductSeriesChange(index) {\n this.showLoader = true;\n this.clearRow(index);\n this.QuotationData.QuotationObj[index].ProductSeriesValidation = false;\n var selectedProductSeries = this.QuotationData.QuotationObj[index].ProductSeries;\n this.QuotationData.QuotationObj[index].selectedProductModel = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.ProductModels;\n //currentProduct.selectedProductModel = this.productDrpdnDetails.ProductModel;\n\n this.QuotationData.QuotationObj[index].Variant1Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant1Label;\n this.QuotationData.QuotationObj[index].Variant2Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant2Label;\n this.QuotationData.QuotationObj[index].Variant3Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant3Label;\n this.QuotationData.QuotationObj[index].Variant4Label = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Variant4Label;\n this.setColspan(index);\n\n this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1 = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.IsLevel2DepOnLevel1;\n this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2 = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.IsLevel3DepOnLevel2;\n this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3 = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.IsLevel4DepOnLevel3;\n\n if (this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Name == 'HN' ||\n this.productDrpdnDetails.ProductSeries.filter(x => x.Id == selectedProductSeries)[0]?.Name == 'HG') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n } else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n\n this.showLoader = false;\n\n }\n\n onProductModelChange(index) {\n this.showLoader = true;\n this.QuotationData.QuotationObj[index].ProductModelValidation = false;\n let queryString = \"\";\n queryString = \"ProductModelId=\" + this.QuotationData.QuotationObj[index].ProductModel;\n this.commonService.GetData(\"Enquiry\", \"GetQuotationVariantDropdownData\", queryString).subscribe((data: any) => {\n\n this.variantDropdownData = data;\n // this.productDrpdnDetails.Variant1 = this.variantDropdownData.Variant1;\n this.QuotationData.QuotationObj[index].productmodeldata = undefined;\n this.QuotationData.QuotationObj[index].selectedVariant1 = this.variantDropdownData.Variant1;\n\n if (!this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4;\n\n }\n this.QuotationData.QuotationObj[index].Variant1 = undefined;\n this.QuotationData.QuotationObj[index].Variant2 = undefined;\n this.QuotationData.QuotationObj[index].Variant3 = undefined;\n this.QuotationData.QuotationObj[index].Variant4 = undefined;\n this.QuotationData.QuotationObj[index].OptionSelected = [];\n this.QuotationData.QuotationObj[index].selectedOptions = [];\n this.QuotationData.QuotationObj[index].Options = [];\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = false;\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = false;\n if (this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name == 'HN' ||\n this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name == 'HG') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n } else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = false;\n this.QuotationData.QuotationObj[index].Variant1Price = 0;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].OptionsPrice = 0;\n this.QuotationData.QuotationObj[index].selectedOptions = this.variantDropdownData.Options;\n // this.Options = this.variantDropdownData.Options;\n // this.QuotationData.QuotationObj[index].Options = [];\n //this.QuotationData.QuotationObj[index].selectedOptions = [];\n this.QuotationData.QuotationObj[index].OptionSelected = [];\n this.QuotationData.QuotationObj[index].ProductModelPrice = this.variantDropdownData.Price;\n this.showLoader = false;\n\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n onOptionSelect(item, index) {\n if (!item.isUserInput) {\n return;\n }\n var optionname;\n // this.QuotationData.QuotationObj[index].selectedOptions = [];\n // this.QuotationData.QuotationObj[index].selectedOptions = this.QuotationData.QuotationObj[index].productmodeldata.Options;\n if (this.Options.length == 0) {\n optionname = this.QuotationData.QuotationObj[index].selectedOptions.filter(x => x.Id == item.source.value)[0];\n } else {\n optionname = this.Options.filter(x => x.Id == item.source.value)[0];\n }\n if (item.source._selected) {\n var opObj = new OptionsModel();\n opObj.OptionId = optionname.Id;\n opObj.ProductOptionId = optionname.ProductOptionId;\n opObj.Price = optionname.Price;\n opObj.Name = optionname.Name;\n opObj.IsPriceOnRequest = optionname.IsPriceOnRequest;\n opObj.optionValid = false;\n this.QuotationData.QuotationObj[index].Options.push(opObj);\n } else {\n this.QuotationData.QuotationObj[index].Options = this.QuotationData.QuotationObj[index].Options.filter(x => x.OptionId != item.source.value);\n }\n let anyOptionPOR = this.QuotationData.QuotationObj[index].Options.filter(x => x.IsPriceOnRequest == true);\n if (anyOptionPOR.length > 0 && anyOptionPOR.length != null && anyOptionPOR.length != undefined) {\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = true;\n }\n else {\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Option = false;\n }\n // if (this.QuotationData.QuotationObj[index].Options.length == 0) {\n // this.QuotationData.QuotationObj[index].OptionsValidation = true;\n // } else {\n // this.QuotationData.QuotationObj[index].OptionsValidation = false;\n // }\n\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n onVariant1Change(index) {\n this.showLoader = true;\n this.QuotationData.QuotationObj[index].Variant1Validation = false;\n this.productDrpdnDetails.IsLevel2DepOnLevel1 = this.dropdownData.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0].IsLevel2DepOnLevel1;\n\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var var1Obj = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = var1Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant1) {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant1;\n } else {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = var1Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].Variant2 = undefined;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n this.productDrpdnDetails.Variant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n }\n } else {\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var var1Obj = this.QuotationData.QuotationObj[index].selectedVariant1.filter(x => x.Id == selectedVariant1)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant1 = var1Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant1) {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant1;\n } else {\n this.QuotationData.QuotationObj[index].Variant1Price = var1Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant1 = var1Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].Variant2 = undefined;\n this.QuotationData.QuotationObj[index].Variant2Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n this.productDrpdnDetails.Variant2 = this.variantDropdownData.Variant2.filter(x => x.Fk_Id == selectedVariant1);\n }\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader = false;\n }\n\n onVariant2Change(index) {\n this.showLoader = true;\n this.QuotationData.QuotationObj[index].Variant2Validation = false;\n this.productDrpdnDetails.IsLevel3DepOnLevel2 = this.dropdownData.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0].IsLevel3DepOnLevel2;\n\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n this.QuotationData.QuotationObj[index].IsUnits_Variant2 = var2Obj?.IsUnits;\n var var2Obj = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0];\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant2) {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant2;\n } else {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = var2Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].Variant3 = undefined;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n this.productDrpdnDetails.Variant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n }\n } else {\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n var var2Obj = this.QuotationData.QuotationObj[index].selectedVariant2.filter(x => x.Id == selectedVariant2)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant2 = var2Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant2) {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant2;\n } else {\n this.QuotationData.QuotationObj[index].Variant2Price = var2Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant2 = var2Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].Variant3 = undefined;\n this.QuotationData.QuotationObj[index].Variant3Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n this.productDrpdnDetails.Variant3 = this.variantDropdownData.Variant3.filter(x => x.Fk_Id == selectedVariant2);\n }\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader = false;\n }\n\n onVariant3Change(index) {\n this.showLoader = true;\n this.QuotationData.QuotationObj[index].Variant3Validation = false;\n this.productDrpdnDetails.IsLevel4DepOnLevel3 = this.dropdownData.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0].IsLevel4DepOnLevel3;\n\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var var3Obj = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant3 = var3Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant3) {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant3;\n } else {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = var3Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].Variant4 = undefined;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n this.productDrpdnDetails.Variant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n }\n } else {\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var var3Obj = this.QuotationData.QuotationObj[index].selectedVariant3.filter(x => x.Id == selectedVariant3)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant3 = var3Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant3) {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant3;\n } else {\n this.QuotationData.QuotationObj[index].Variant3Price = var3Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant3 = var3Obj?.IsPriceOnRequest;\n if (this.productDrpdnDetails.IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].Variant4 = undefined;\n this.QuotationData.QuotationObj[index].Variant4Price = 0;\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n this.productDrpdnDetails.Variant4 = this.variantDropdownData.Variant4.filter(x => x.Fk_Id == selectedVariant3);\n }\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader = false;\n }\n\n onVariant4Change(index) {\n this.showLoader = true;\n this.QuotationData.QuotationObj[index].Variant4Validation = false;\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n var var4Obj = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant4 = var4Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant4) {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant4;\n } else {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = var4Obj?.IsPriceOnRequest;\n } else {\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n // this.QuotationData.QuotationObj[index].Variant4Price = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0]?.IsPriceOnRequest;\n // this.QuotationData.QuotationObj[index].IsUnits_Variant4 = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0]?.IsUnits;\n /***************************************************************************************************** */\n var var4Obj = this.QuotationData.QuotationObj[index].selectedVariant4.filter(x => x.Id == selectedVariant4)[0];\n this.QuotationData.QuotationObj[index].IsUnits_Variant4 = var4Obj?.IsUnits;\n if (this.QuotationData.QuotationObj[index].IsUnits_Variant4) {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price * this.QuotationData.QuotationObj[index].Units_Variant4;\n } else {\n this.QuotationData.QuotationObj[index].Variant4Price = var4Obj?.Price;\n }\n this.QuotationData.QuotationObj[index].IsPriceOnRequest_Variant4 = var4Obj?.IsPriceOnRequest;\n\n /*************************************************************************************************** */\n\n }\n this.calculateTotalPricesForProduct(index, 1);\n this.showLoader = false;\n }\n\n // var1UnitsChange(index) {\n // this.GetVarientDropdowndataforModel(index);\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant1.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant1 == undefined || this.QuotationData.QuotationObj[index].Units_Variant1 == null) {\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant1 < 0) {\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant1 % 1 != 0) {\n // alert('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }else if(strunits.includes(\".\"))\n // {\n // alert('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n // }\n \n // this.IsQuotationDataValid = false; \n // } \n \n // else {\n \n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant1 % 100 != 0)) {\n // alert('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var1_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n // var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n // this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n // } else {\n // var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n // var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n // this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n // //this.QuotationData.QuotationObj[index].Variant1Price = this.QuotationData.QuotationObj[index].selectedVariant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n \n // var2UnitsChange(index) {\n // this.GetVarientDropdowndataforModel(index);\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant2.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant2 == undefined || this.QuotationData.QuotationObj[index].Units_Variant2 == null) {\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant2 < 0) {\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant2 % 1 != 0) {\n // alert('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }\n // else if(strunits.includes(\".\"))\n // {\n // alert('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }\n // else {\n \n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant2 % 100 != 0)) {\n // alert('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var2_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n // var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n // this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n // } else {\n // var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n // var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n // this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n // // this.QuotationData.QuotationObj[index].Variant2Price = this.productDrpdnDetails.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n\n // var3UnitsChange(index) {\n // this.GetVarientDropdowndataforModel(index);\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant3.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant3 == undefined || this.QuotationData.QuotationObj[index].Units_Variant3 == null) {\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant3 < 0) {\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant3 % 1 != 0) {\n // alert('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }\n // else if(strunits.includes(\".\"))\n // {\n // alert('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }\n // else {\n \n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant3 % 100 != 0)) {\n // alert('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var3_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n // var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n // this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n // } else {\n // var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n // var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n // this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n // //this.QuotationData.QuotationObj[index].Variant3Price = this.productDrpdnDetails.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n\n // var4UnitsChange(index) {\n // this.GetVarientDropdowndataforModel(index);\n // var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n // let strunits = this.QuotationData.QuotationObj[index].Units_Variant4.toString();\n // if (this.QuotationData.QuotationObj[index].Units_Variant4 == undefined || this.QuotationData.QuotationObj[index].Units_Variant4 == null) {\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant4 < 0) {\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else if (this.QuotationData.QuotationObj[index].Units_Variant4 % 1 != 0) {\n // alert('Please enter only integer value');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }\n // else if(strunits.includes(\".\"))\n // {\n // alert('Please enter valid units');\n // if (seriesname == 'HG' || seriesname == 'HN') {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n // }\n // else {\n // this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n // }\n \n // this.IsQuotationDataValid = false;\n // }\n // else {\n \n // if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant4 % 100 != 0)) {\n // alert('Please enter the units in multiple of 100.');\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n // this.IsQuotationDataValid = false;\n // } else {\n // this.QuotationData.QuotationObj[index].var4_Unit_Validation = false;\n // }\n // }\n // if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n // this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n // var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n // var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n // this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n // } else {\n // var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n // var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n // this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n // // this.QuotationData.QuotationObj[index].Variant4Price = this.productDrpdnDetails.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n // }\n // this.calculateTotalPricesForProduct(index, 1);\n // }\n \n var1PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant1Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant1 && (element.Variant1Price == undefined || element.Variant1Price == null || (element.Variant1Price == 0 && element.Units_Variant1 != 0) || (element.Variant1Price != 0 && element.Units_Variant1 == 0))) {\n element.var1_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant1 && (element.Variant1Price < 0)) {\n element.var1_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant1Price % 1 != 0) {\n alert('Please enter only integer value');\n element.Variant1Price = 0;\n this.IsQuotationDataValid = false;\n } else if(strprice.includes(\".\"))\n {\n alert('Please enter valid price');\n element.Variant1Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var1_POR_Validation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n var2PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant2Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant2 && (element.Variant2Price == undefined || element.Variant2Price == null || (element.Variant2Price == 0 && element.Units_Variant2 != 0) || (element.Variant2Price != 0 && element.Units_Variant2 == 0))) {\n element.var2_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant2 && (element.Variant2Price < 0)) {\n element.var2_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant2Price % 1 != 0) {\n alert('Please enter only integer value');\n element.Variant2Price = 0;\n this.IsQuotationDataValid = false;\n } else if (strprice.includes(\".\")) {\n alert('Please enter valid price');\n element.Variant2Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var2_POR_Validation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n var3PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant3Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant3 && (element.Variant3Price == undefined || element.Variant3Price == null || (element.Variant3Price == 0 && element.Units_Variant3 != 0) || (element.Variant3Price != 0 && element.Units_Variant3 == 0))) {\n element.var3_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant3 && (element.Variant3Price < 0)) {\n element.var3_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant3Price % 1 != 0) {\n alert('Please enter only integer value');\n element.Variant3Price = 0;\n this.IsQuotationDataValid = false;\n } else if (strprice.includes(\".\")) {\n alert('Please enter valid price');\n element.Variant3Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var3_POR_Validation = false;\n this.IsQuotationDataValid = true;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n var4PORChange(index) {\n var element = this.QuotationData.QuotationObj[index];\n let strprice = element.Variant4Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant4 && (element.Variant4Price == undefined || element.Variant4Price == null || (element.Variant4Price == 0 && element.Units_Variant4 != 0) || (element.Variant4Price != 0 && element.Units_Variant4 == 0))) {\n element.var4_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Variant4 && (element.Variant4Price < 0)) {\n element.var4_POR_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (element.Variant4Price % 1 != 0) {\n alert('Please enter only integer value');\n element.Variant4Price = 0;\n this.IsQuotationDataValid = false;\n }\n else if (strprice.includes(\".\")) {\n alert('Please enter valid price');\n element.Variant4Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.var4_POR_Validation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n varOptionPORChange(i, j) {\n var element = this.QuotationData.QuotationObj[i];\n let strprice = element.Options[j].Price.toString();\n if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Option && (element.Options[j].Price == undefined || element.Options[j].Price == null || element.Options[j].Price == 0)) {\n element.Options[j].optionValid = true;\n this.IsQuotationDataValid = false;\n } else if (this.IsQuotationPriceOnRequest && element.IsPriceOnRequest_Option && element.Options[j].Price < 0) {\n element.Options[j].optionValid = true;\n this.IsQuotationDataValid = false;\n } else if (element.Options[j].Price % 1 != 0) {\n alert('Please enter only integer value');\n element.Options[j].Price = 0;\n this.IsQuotationDataValid = false;\n }\n else if (strprice.includes(\".\")) {\n alert('Please enter valid price');\n element.Options[j].Price = 0;\n this.IsQuotationDataValid = false;\n }\n else {\n element.Options[j].optionValid = false;\n this.IsQuotationDataValid = true;\n }\n this.calculateTotalPricesForProduct(i, 1);\n }\n\n onQuatityChange(index) {\n let strquantity = this.QuotationData.QuotationObj[index].Quantity.toString();\n if ((this.QuotationData.QuotationObj[index].Quantity == 0 || this.QuotationData.QuotationObj[index].Quantity == null || this.QuotationData.QuotationObj[index].Quantity == undefined)) {\n this.QuotationData.QuotationObj[index].Quantity = 1;\n } else if (this.QuotationData.QuotationObj[index].Quantity % 1 != 0) {\n this.QuotationData.QuotationObj[index].QuantityValidation = true;\n return;\n } else {\n this.QuotationData.QuotationObj[index].QuantityValidation = false;\n }\n if (this.QuotationData.QuotationObj[index].Quantity > 1000) {\n this.QuotationData.QuotationObj[index].QuantityRangeValidation = true;\n return;\n } else if (this.QuotationData.QuotationObj[index].Quantity < 1) {\n this.QuotationData.QuotationObj[index].QuantityValidation = true;\n return;\n } else if (strquantity.includes(\".\")) {\n alert('Please enter valid Quantity.');\n this.QuotationData.QuotationObj[index].Quantity = null;\n return;\n }\n else {\n this.QuotationData.QuotationObj[index].QuantityRangeValidation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n onDiscountChange(index) {\n let strdis = this.QuotationData.QuotationObj[index].Discount.toString();\n if ((this.QuotationData.QuotationObj[index].Discount < 0)) {\n this.QuotationData.QuotationObj[index].DiscountValidation = true;\n alert(\"Discount cannot be negative.\");\n this.QuotationData.QuotationObj[index].Discount = 0;\n\n return;\n } else if ((this.QuotationData.QuotationObj[index].Discount > 100)) {\n this.QuotationData.QuotationObj[index].DiscountValidation = true;\n return;\n } else if (this.QuotationData.QuotationObj[index].Discount % 1 != 0) {\n if (this.QuotationData.QuotationObj[index].Discount.toString().split(\".\")[1].length > 2 || this.QuotationData.QuotationObj[index].Discount.toString().split(\".\")[0].length > 2) {\n alert(\"Only two numbers are allowed after decimal point\");\n this.QuotationData.QuotationObj[index].Discount = 0;\n //this.QuotationData.QuotationObj[index].Discount = Math.round((this.QuotationData.QuotationObj[index].Discount + Number.EPSILON) * 100) / 100;\n\n }\n this.QuotationData.QuotationObj[index].DiscountValidation = false;\n } else if ((strdis.charAt(strdis.length - 1) == \".\")) {\n alert(\"Please enter valid discount\");\n this.QuotationData.QuotationObj[index].Discount = 0;\n return;\n }\n else {\n this.QuotationData.QuotationObj[index].DiscountValidation = false;\n }\n this.calculateTotalPricesForProduct(index, 1);\n }\n\n setspecialDiscountPrice() {\n //let specdisc=this.specialPkgDiscount.toString();\n if ((this.specialPkgDiscount < 0)) {\n // alert(\"Discount cannot be negative.\");\n this.specialPkgDiscount = 0;\n return;\n }\n\n else if ((this.specialPkgDiscount > 100)) {\n //alert(\"Discount cannot be Greater than 100\");\n this.specialPkgDiscount = 0;\n return;\n }\n // else if (this.specialPkgDiscount % 1 != 0) {\n // //alert(\"Discount must be a integer\");\n // this.specialPkgDiscount = 0;\n // return;\n // }\n\n else if (this.specialPkgDiscount != 0) {\n\n var percent = 100 - this.specialPkgDiscount;\n\n var calculate = this.QuotationData.QuotationInfo.TotalAmount * (percent / 100);\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(calculate);\n this.specialPkgDiscount = this.specialPkgDiscount;\n // this.isfinalamount=false;\n }\n else if (this.specialPkgDiscount == 0) {\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(this.QuotationData.QuotationInfo.TotalAmount);\n }\n\n\n }\n\n checkQuotationGridValidation(flag) {\n var inde = 0;\n\n this.QuotationData.QuotationObj.forEach(element => {\n if (element.ProductSeries == undefined || element.ProductSeries == null || element.ProductSeries == 0) {\n element.ProductSeriesValidation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.ProductModel == undefined || element.ProductModel == null || element.ProductModel == 0) {\n element.ProductModelValidation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant1Label && (element.Variant1 == undefined || element.Variant1 == null || element.Variant1 == 0)) {\n element.Variant1Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant2Label && (element.Variant2 == undefined || element.Variant2 == null || element.Variant2 == 0)) {\n element.Variant2Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant3Label && (element.Variant3 == undefined || element.Variant3 == null || element.Variant3 == 0)) {\n element.Variant3Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (!element.ProductModelValidation && element.Variant4Label && (element.Variant4 == undefined || element.Variant4 == null || element.Variant4 == 0)) {\n element.Variant4Validation = true;\n this.IsQuotationDataValid = false;\n }\n // if (element.Options == undefined || element.Options == null || element.Options.length == 0) {\n // element.OptionsValidation = true;\n // this.IsQuotationDataValid = false;\n // }\n if (element.Quantity == undefined || element.Quantity == null || element.Quantity == 0) {\n element.QuantityValidation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.Discount < 0) {\n element.DiscountValidation = true;\n this.IsQuotationDataValid = false;\n }\n\n if (element.Discount > 100) {\n element.DiscountValidation = true;\n this.IsQuotationDataValid = false;\n }\n\n // {\n\n if (this.IsQuotationPriceOnRequest && flag == 1 && element.IsPriceOnRequest_Option && x.IsPriceOnRequest && (x.Price == undefined || x.Price == null || x.Price == 0)) {\n element.ShowOptionPriceOnRequestGrid = true;\n x.optionValid = true;\n this.IsQuotationDataValid = false;\n }\n\n });\n\n }\n //>\n //\n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == element.ProductSeries)[0]?.Name;\n if ((seriesname == 'HG' || seriesname == 'HN')) {\n if (element.IsUnits_Variant1 && element.Units_Variant1 % 100 != 0) {\n element.var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.IsUnits_Variant2 && element.Units_Variant2 % 100 != 0) {\n element.var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.IsUnits_Variant3 && element.Units_Variant3 % 100 != 0) {\n element.var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n if (element.IsUnits_Variant4 && element.Units_Variant4 % 100 != 0) {\n element.var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n }\n }\n inde++;\n });\n }\n\n checkPriceOnRequestCostsAndUnits() {\n var inde = 0;\n this.isPricesRequestedBeforeSubmit = true;\n this.QuotationData.QuotationObj.forEach(element => {\n //\n inde++;\n });\n }\n\n checkQuotationHeaderValidation() {\n this.IsQuotationDataValid = true;\n if (this.QuotationData.QuotationInfo.YourReference == \"\" || this.QuotationData.QuotationInfo.YourReference == undefined || this.QuotationData.QuotationInfo.YourReference == null) {\n this.YourRefValidation = true;\n this.IsQuotationDataValid = false;\n setTimeout(() => {\n this.yourRefElement.nativeElement.focus();\n }, 0);\n } else {\n this.YourRefValidation = false;\n }\n if (this.QuotationData.QuotationInfo.ReferenceDateISO == \"\" || this.QuotationData.QuotationInfo.ReferenceDateISO == undefined || this.QuotationData.QuotationInfo.ReferenceDateISO == null) {\n this.IsQuotationDataValid = false;\n this.RefDateValidation = true;\n setTimeout(() => {\n this.refDateElement.nativeElement.focus();\n }, 0);\n } else {\n this.RefDateValidation = false;\n }\n if (this.QuotationData.QuotationInfo.KindAttention == \"\" || this.QuotationData.QuotationInfo.KindAttention == undefined || this.QuotationData.QuotationInfo.KindAttention == null) {\n this.IsQuotationDataValid = false;\n this.KindAttValidation = true;\n setTimeout(() => {\n this.keyPerElement.nativeElement.focus();\n }, 0);\n } else {\n this.KindAttValidation = false;\n }\n if (this.QuotationData.QuotationInfo.KindAttEmailId == \"\" || this.QuotationData.QuotationInfo.KindAttEmailId == undefined || this.QuotationData.QuotationInfo.KindAttEmailId == null) {\n this.IsQuotationDataValid = false;\n this.KindAttEmailValidilation = true;\n this.KingAttEmailValidationMsg = \"Email is required\"\n setTimeout(() => {\n this.keyPerEmail.nativeElement.focus();\n }, 0);\n }\n else {\n this.KindAttEmailValidilation = false;\n }\n if (this.QuotationData.QuotationInfo.KindAttContactNo == \"\" || this.QuotationData.QuotationInfo.KindAttContactNo == undefined || this.QuotationData.QuotationInfo.KindAttContactNo == null) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Contact Number is required\"\n setTimeout(() => {\n this.keyPerCNo.nativeElement.focus();\n }, 0);\n }\n else if (this.QuotationData.QuotationInfo.KindAttContactNo.match(/^[0-9]+$/) == null) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Please enter valid contact number\";\n setTimeout(() => {\n this.keyPerCNo.nativeElement.focus();\n }, 0);\n }\n else if (this.QuotationData.QuotationInfo.KindAttContactNo.length < 10) {\n this.IsQuotationDataValid = false;\n this.KindAttContactNoValidilation = true;\n this.KingAttConactNumberValidationMsg = \"Contact number should be 10-15 digits\";\n setTimeout(() => {\n this.keyPerCNo.nativeElement.focus();\n }, 0);\n }\n else {\n this.KindAttContactNoValidilation = false;\n }\n if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(this.QuotationData.QuotationInfo.KindAttEmailId))) {\n this.IsQuotationDataValid = false;\n this.KindAttEmailValidilation = true;\n // Replace the placeholder [emailFormat] with the dynamic email format\n this.KingAttEmailValidationMsg = this.KingAttEmailValidationMsg.replace('[emailFormat]', this.mailIdFormat);\n // this.KingAttEmailValidationMsg = \"Should be in Email Id format (e.g. user@ecotech.com)\"\n setTimeout(() => {\n this.keyPerEmail.nativeElement.focus();\n }, 0);\n }\n else {\n this.KindAttEmailValidilation = false;\n }\n\n if (this.QuotationData.QuotationInfo.QuotationComments == \"\" || this.QuotationData.QuotationInfo.QuotationComments == undefined || this.QuotationData.QuotationInfo.QuotationComments == null) {\n this.IsQuotationDataValid = false;\n this.QuoteCommentsValidation = true;\n setTimeout(() => {\n this.QuoteComm.nativeElement.focus();\n }, 0);\n }\n else {\n this.QuoteCommentsValidation = false;\n }\n }\n\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n AddNewProduct() {\n var obj = new ProductDetailsModel();\n this.QuotationData.QuotationObj.push(obj);\n }\n\n DeleteProduct(index: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this row?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n if (index != null) {\n this.QuotationData.QuotationObj.splice(index, 1);\n this.specialPkgDiscount = 0;\n } else {\n this.QuotationData.QuotationObj.pop();\n }\n this.calculateTotalQuotationValues();\n }\n });\n }\n\n setColspan(index) {\n this.columnCount = 0;\n if (this.QuotationData.QuotationObj[index].Variant1Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.QuotationData.QuotationObj[index].Variant2Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.QuotationData.QuotationObj[index].Variant3Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.QuotationData.QuotationObj[index].Variant4Label) {\n this.columnCount = this.columnCount + 1;\n }\n if (this.columnCount == 4) {\n this.QuotationData.QuotationObj[index].colspan1 = 1;\n this.QuotationData.QuotationObj[index].colspan2 = 1;\n this.QuotationData.QuotationObj[index].colspan3 = 1;\n this.QuotationData.QuotationObj[index].colspan4 = 1;\n } else if (this.columnCount == 3) {\n this.QuotationData.QuotationObj[index].colspan1 = 1;\n this.QuotationData.QuotationObj[index].colspan2 = 1;\n this.QuotationData.QuotationObj[index].colspan3 = 2;\n this.QuotationData.QuotationObj[index].colspan4 = 0;\n } else if (this.columnCount == 2) {\n this.QuotationData.QuotationObj[index].colspan1 = 2;\n this.QuotationData.QuotationObj[index].colspan2 = 2;\n this.QuotationData.QuotationObj[index].colspan3 = 0;\n this.QuotationData.QuotationObj[index].colspan4 = 0;\n } else if (this.columnCount == 1) {\n this.QuotationData.QuotationObj[index].colspan1 = 4;\n this.QuotationData.QuotationObj[index].colspan2 = 0;\n this.QuotationData.QuotationObj[index].colspan3 = 0;\n this.QuotationData.QuotationObj[index].colspan4 = 0;\n }\n }\n\n \n calculateTotalPricesForProduct(index, flag) {\n var modelprice = 0;\n var var1price = 0;\n var var2price = 0;\n var var3price = 0;\n var var4price = 0;\n var optionprice = 0;\n var QuotationObj = this.QuotationData.QuotationObj[index];\n\n modelprice = QuotationObj?.ProductModelPrice == undefined ? 0 : QuotationObj.ProductModelPrice;\n var1price = QuotationObj?.Variant1Price == undefined ? 0 : QuotationObj.Variant1Price;\n var2price = QuotationObj?.Variant2Price == undefined ? 0 : QuotationObj.Variant2Price;\n var3price = QuotationObj?.Variant3Price == undefined ? 0 : QuotationObj.Variant3Price;\n var4price = QuotationObj?.Variant4Price == undefined ? 0 : QuotationObj.Variant4Price;\n\n this.setColspan(index);\n\n if (flag == 0) {\n if (QuotationObj?.Units_Variant1 >= 0 && QuotationObj?.IsUnits_Variant1) {\n QuotationObj.Variant1Price = QuotationObj.Variant1Price * QuotationObj.Units_Variant1;\n var1price = QuotationObj.Variant1Price;\n }\n if (QuotationObj?.Units_Variant2 >= 0 && QuotationObj?.IsUnits_Variant2) {\n QuotationObj.Variant2Price = QuotationObj.Variant2Price * QuotationObj.Units_Variant2;\n var2price = QuotationObj.Variant2Price;\n }\n if (QuotationObj?.Units_Variant3 >= 0 && QuotationObj?.IsUnits_Variant3) {\n QuotationObj.Variant3Price = QuotationObj.Variant3Price * QuotationObj.Units_Variant3;\n var3price = QuotationObj.Variant3Price;\n }\n if (QuotationObj?.Units_Variant4 >= 0 && QuotationObj?.IsUnits_Variant4) {\n QuotationObj.Variant4Price = QuotationObj.Variant4Price * QuotationObj.Units_Variant4;\n var4price = QuotationObj.Variant4Price;\n }\n }\n\n QuotationObj.PerUnitAmount = QuotationObj?.PerUnitAmount == undefined ? 0 : QuotationObj.PerUnitAmount;\n QuotationObj.TotalAmount = QuotationObj?.TotalAmount == undefined ? 0 : QuotationObj.TotalAmount;\n QuotationObj.FinalAmount = QuotationObj?.FinalAmount == undefined ? 0 : QuotationObj.FinalAmount;\n QuotationObj.OptionsPrice = 0;\n QuotationObj.Options?.forEach(element => {\n QuotationObj.OptionsPrice = QuotationObj?.OptionsPrice + element.Price;\n optionprice = optionprice + element.Price;\n });\n\n QuotationObj.PerUnitAmount = modelprice + var1price + var2price + var3price + var4price + optionprice;\n QuotationObj.Variant1 = (QuotationObj.Variant1 == null || QuotationObj.Variant1 == 0) ? undefined : QuotationObj.Variant1;\n QuotationObj.Variant2 = (QuotationObj.Variant2 == null || QuotationObj.Variant2 == 0) ? undefined : QuotationObj.Variant2;\n QuotationObj.Variant3 = (QuotationObj.Variant3 == null || QuotationObj.Variant3 == 0) ? undefined : QuotationObj.Variant3;\n QuotationObj.Variant4 = (QuotationObj.Variant4 == null || QuotationObj.Variant4 == 0) ? undefined : QuotationObj.Variant4;\n QuotationObj.Discount = QuotationObj.Discount == undefined ? 0 : QuotationObj.Discount;\n\n //var percent = 100 - QuotationObj.Discount;\n QuotationObj.TotalAmount = QuotationObj.PerUnitAmount * QuotationObj.Quantity;\n // var final = QuotationObj.TotalAmount * (percent / 100);\n //QuotationObj.FinalAmount = parseInt(final.toString());\n // QuotationObj.FinalAmount =Math.round((final + Number.EPSILON) * 100) / 100);\n QuotationObj.FinalAmount = Math.round(QuotationObj.TotalAmount);\n this.calculateTotalQuotationValues();\n }\n\n\n calculateTotalQuotationValues() {\n this.QuotationData.QuotationInfo.PerUnitAmount = 0;\n this.QuotationData.QuotationInfo.TotalAmount = 0;\n this.QuotationData.QuotationInfo.FinalAmount = 0;\n var final = 0;\n this.QuotationData.QuotationObj.forEach(element => {\n this.QuotationData.QuotationInfo.PerUnitAmount = this.QuotationData.QuotationInfo.PerUnitAmount + element.PerUnitAmount;\n this.QuotationData.QuotationInfo.TotalAmount = this.QuotationData.QuotationInfo.TotalAmount + element.TotalAmount;\n final = parseFloat(final.toString()) + parseFloat(element.FinalAmount);\n });\n\n var percent = 100 - this.specialPkgDiscount;\n var finals = final * (percent / 100);\n this.QuotationData.QuotationInfo.FinalAmount = Math.round(finals);\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n isintNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if ((this.charCode == 46 || this.charCode == 45 || this.charCode == 43) && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n limitTextOnKeyUpDown1(event: any) {\n let goalText = event.target.value;\n if (goalText.length > this.maxLimit) {\n this.varLongTermGoal = goalText.substring(0, this.maxLimit);\n } else {\n this.remLimit = this.maxLimit - goalText.length;\n }\n\n if (this.QuotationData.QuotationInfo.QuotationComments == \"\" || this.QuotationData.QuotationInfo.QuotationComments == undefined || this.QuotationData.QuotationInfo.QuotationComments == null) {\n this.IsQuotationDataValid = false;\n this.QuoteCommentsValidation = true;\n } else {\n this.QuoteCommentsValidation = false;\n }\n }\n allowDecimal(event: any) {\n\n // Allow decimal point and only two decimal places\n const regex = /^[0-9]+(\\.[0-9]{0,2})?$/;\n const inputChar = String.fromCharCode(event.charCode);\n if (!regex.test(event.target.value + inputChar)) {\n event.preventDefault();\n }\n if ((this.specialPkgDiscount > 100)) {\n //alert(\"Discount cannot be Greater than 100\");\n this.specialPkgDiscount = 0;\n return;\n }\n }\n\n \n GetVarientDropdowndataforModel(index) {\n \n let queryString = \"\";\n queryString = \"ProductModelId=\" + this.QuotationData.QuotationObj[index].ProductModel;\n // this.commonService.GetData(\"Enquiry\", \"GetQuotationVariantDropdownData\", queryString).subscribe((data: any) => {\n\n // this.variantDropdownData = data;\n // // this.productDrpdnDetails.Variant1 = this.variantDropdownData.Variant1;\n // this.QuotationData.QuotationObj[index].productmodeldata = undefined;\n // this.QuotationData.QuotationObj[index].selectedVariant1 = this.variantDropdownData.Variant1;\n\n // if (!this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1) {\n // this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2;\n // }\n // if (!this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2) {\n // this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3;\n // }\n // if (!this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3) {\n // this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4;\n\n // }\n \n // });\n\n let tracker = this.commonService.GetData(\"Enquiry\", \"GetQuotationVariantDropdownData\", queryString);\n\n tracker.subscribe((data: any) => {\n this.variantDropdownData = data;\n this.QuotationData.QuotationObj[index].productmodeldata = undefined;\n this.QuotationData.QuotationObj[index].selectedVariant1 = this.variantDropdownData.Variant1;\n\n if (!this.QuotationData.QuotationObj[index].IsLevel2DepOnLevel1) {\n this.QuotationData.QuotationObj[index].selectedVariant2 = this.variantDropdownData.Variant2;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel3DepOnLevel2) {\n this.QuotationData.QuotationObj[index].selectedVariant3 = this.variantDropdownData.Variant3;\n }\n if (!this.QuotationData.QuotationObj[index].IsLevel4DepOnLevel3) {\n this.QuotationData.QuotationObj[index].selectedVariant4 = this.variantDropdownData.Variant4;\n }\n this.updateLoaderEvent.emit(false);\n }, error => {\n this.updateLoaderEvent.emit(false);\n });\n\n return tracker;\n }\n\n var1UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => { \n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant1.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant1 == undefined || this.QuotationData.QuotationObj[index].Units_Variant1 == null) {\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant1 < 0) {\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant1 % 1 != 0) {\n alert('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n }\n \n this.IsQuotationDataValid = false;\n }else if(strunits.includes(\".\"))\n {\n alert('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant1 = 1;\n }\n \n this.IsQuotationDataValid = false; \n } \n \n else {\n \n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant1 % 100 != 0)) {\n alert('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var1_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n } else {\n var selectedVariant1 = this.QuotationData.QuotationObj[index].Variant1;\n var price: number = this.variantDropdownData.Variant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant1;\n this.QuotationData.QuotationObj[index].Variant1Price = price * units;\n //this.QuotationData.QuotationObj[index].Variant1Price = this.QuotationData.QuotationObj[index].selectedVariant1.filter(x => x.Id == selectedVariant1)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n \n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n \n }\n \n var2UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => { \n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant2.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant2 == undefined || this.QuotationData.QuotationObj[index].Units_Variant2 == null) {\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant2 < 0) {\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant2 % 1 != 0) {\n alert('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n }\n\n this.IsQuotationDataValid = false;\n }\n else if(strunits.includes(\".\"))\n {\n alert('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant2 = 1;\n }\n\n this.IsQuotationDataValid = false;\n }\n else {\n\n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant2 % 100 != 0)) {\n alert('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var2_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n } else {\n var selectedVariant2 = this.QuotationData.QuotationObj[index].Variant2;\n var price: number = this.variantDropdownData.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant2;\n this.QuotationData.QuotationObj[index].Variant2Price = price * units;\n // this.QuotationData.QuotationObj[index].Variant2Price = this.productDrpdnDetails.Variant2.filter(x => x.Id == selectedVariant2)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n\n var3UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => {\n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant3.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant3 == undefined || this.QuotationData.QuotationObj[index].Units_Variant3 == null) {\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant3 < 0) {\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant3 % 1 != 0) {\n alert('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n }\n\n this.IsQuotationDataValid = false;\n }\n else if(strunits.includes(\".\"))\n {\n alert('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant3 = 1;\n }\n\n this.IsQuotationDataValid = false;\n }\n else {\n\n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant3 % 100 != 0)) {\n alert('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var3_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n } else {\n var selectedVariant3 = this.QuotationData.QuotationObj[index].Variant3;\n var price: number = this.variantDropdownData.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant3;\n this.QuotationData.QuotationObj[index].Variant3Price = price * units;\n //this.QuotationData.QuotationObj[index].Variant3Price = this.productDrpdnDetails.Variant3.filter(x => x.Id == selectedVariant3)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n\n var4UnitsChange(index) {\n forkJoin([\n this.GetVarientDropdowndataforModel(index)\n ]).pipe(tap(res => {\n var seriesname = this.productDrpdnDetails.ProductSeries.filter(x => x.Id == this.QuotationData.QuotationObj[index].ProductSeries)[0]?.Name;\n let strunits = this.QuotationData.QuotationObj[index].Units_Variant4.toString();\n if (this.QuotationData.QuotationObj[index].Units_Variant4 == undefined || this.QuotationData.QuotationObj[index].Units_Variant4 == null) {\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant4 < 0) {\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else if (this.QuotationData.QuotationObj[index].Units_Variant4 % 1 != 0) {\n alert('Please enter only integer value');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n\n this.IsQuotationDataValid = false;\n }\n else if(strunits.includes(\".\"))\n {\n alert('Please enter valid units');\n if (seriesname == 'HG' || seriesname == 'HN') {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 100;\n }\n else {\n this.QuotationData.QuotationObj[index].Units_Variant4 = 1;\n }\n\n this.IsQuotationDataValid = false;\n }\n else {\n\n if ((seriesname == 'HG' || seriesname == 'HN') && (this.QuotationData.QuotationObj[index].Units_Variant4 % 100 != 0)) {\n alert('Please enter the units in multiple of 100.');\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = true;\n this.IsQuotationDataValid = false;\n } else {\n this.QuotationData.QuotationObj[index].var4_Unit_Validation = false;\n }\n }\n if (!(this.QuotationData.QuotationObj[index].productmodeldata == undefined || this.QuotationData.QuotationObj[index].productmodeldata == null)) {\n this.variantDropdownData = this.QuotationData.QuotationObj[index].productmodeldata;\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n } else {\n var selectedVariant4 = this.QuotationData.QuotationObj[index].Variant4;\n var price: number = this.variantDropdownData.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n var units: number = this.QuotationData.QuotationObj[index].Units_Variant4;\n this.QuotationData.QuotationObj[index].Variant4Price = price * units;\n // this.QuotationData.QuotationObj[index].Variant4Price = this.productDrpdnDetails.Variant4.filter(x => x.Id == selectedVariant4)[0]?.Price;\n }\n this.calculateTotalPricesForProduct(index, 1);\n })).subscribe(x=>{\n // this.updateLoaderEvent.emit(false);\n });\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n Price Configurator\n

    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    SeriesModelOptionsQtyTotal Amount (€)
    \n \n
    \n \n ProductSeries is required\n
    \n
    \n \n \n
    \n \n Product Model is required\n
    \n
    \n {{field.Variant1Label}}\n \n {{field.Variant2Label}}\n \n {{field.Variant3Label}}\n \n {{field.Variant4Label}}\n \n\n \n \n {{item.Name}}\n\n \n \n \n {{item.Name}}\n \n\n\n
    \n   {{o+1}}) {{j.Name}}(€ {{j.Price == undefined\n ? 0:\n j.Price |indianCurrency}})
    \n
    \n
    \n \n Options are required\n
    \n\n
    \n \n
    \n \n Quantity is not valid\n
    \n
    \n \n Quantity should be in between 0 to 1000\n
    \n
    \n {{field.TotalAmount == undefined ? 0: field.TotalAmount\n |indianCurrency}}\n \n \n
    \n
    \n \n \n
    \n \n {{field.Variant1Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {{field.Variant2Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {{field.Variant3Label}} is required\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {{field.Variant4Label}} is required\n
    \n
    \n \n \n
    \n
    € {{field.ProductModelPrice == undefined\n ? 0:\n field.ProductModelPrice |indianCurrency}}/-\n
    \n Price on Request\n \n
    \n
    \n € {{field.Variant1Price == undefined ? 0:\n field.Variant1Price |\n indianCurrency}}/-\n
    \n
    \n
    \n Price on Request\n \n
    \n
    \n € {{field.Variant2Price == undefined ? 0:\n field.Variant2Price |\n indianCurrency}}/-\n
    \n
    \n
    \n Price on Request\n \n
    \n
    \n € {{field.Variant3Price == undefined ? 0:\n field.Variant3Price |\n indianCurrency}}/-\n
    \n
    \n
    \n Price on Request\n \n
    \n
    \n € {{field.Variant4Price == undefined ? 0:\n field.Variant4Price |\n indianCurrency}}/-\n
    \n
    \n
    \n Price on\n Request\n
    \n \n\n
    \n
    \n
    \n € {{field.OptionsPrice == undefined ? 0:\n field.OptionsPrice |indianCurrency}}/-\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Product OptionsPrice (€)
    {{t1.Name}}\n \n \n
    \n \n Please enter valid price\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    Discount %
    Final Amount {{QuotationData.QuotationInfo.FinalAmount\n == undefined ? 0:\n QuotationData.QuotationInfo.FinalAmount |indianCurrency}}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { query } from '@angular/animations';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { exit } from 'process';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductMatrixModel } from 'src/app/Model/ProductMatrixModel';\nimport { ProductSeries } from 'src/app/Model/ProductModel';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-product-matrix',\n templateUrl: './product-matrix.component.html',\n styleUrls: ['./product-matrix.component.scss']\n})\nexport class ProductMatrixComponent implements OnInit {\n\n @Input()\n showLoader: boolean = false;\n ProductList: any = [];\n ProductModelList: any = [];\n ProductMatrix: ProductMatrixModel = new ProductMatrixModel();\n ProductSeriesId: number;\n ProductModelId: number;\n isEditable: boolean = true;\n ProductSeries: ProductSeries[] = [];\n SelectedtSeriesdata:any;\n VariantDrpdown: string = \"\";\n charCode: any;\n UserRole: any;\n isProductMatrixEditable: boolean = false;\n ShowGrid:boolean = false;\n AlldataValid:boolean = true;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n \n constructor(private toastr: ToastrService, private commonService: CommonService, private router: Router,\n public dialog: MatDialog,private route: ActivatedRoute,private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductMatrixEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.getAllProductSeries();\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n this.commonService.GetData(\"ProductSeries\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductSeries = data.filter(x=>x.SeriesName == 'TC' || x.SeriesName == 'TR');\n this.ProductSeries = this.ProductSeries.sort((a, b) => (a.SeriesName < b.SeriesName ? -1 : 1));\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n ProductSeriesChange(evt:any)\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n this.ShowGrid = false;\n this.commonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.SelectedtSeriesdata = data;\n this.GetProductModelById(this.ProductSeriesId);\n this.isEditable = true;\n this.ProductMatrix = new ProductMatrixModel();\n this.ProductModelId = undefined;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n \n this.ProductModelId = undefined;\n }\n\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.SelectedtSeriesdata.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.SelectedtSeriesdata.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.SelectedtSeriesdata.Id, this.SelectedtSeriesdata.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.SelectedtSeriesdata.Id, this.SelectedtSeriesdata.Label_Variant1, this.SelectedtSeriesdata.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.SelectedtSeriesdata.Id, this.SelectedtSeriesdata.Label_Variant2, this.SelectedtSeriesdata.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.SelectedtSeriesdata.Id, this.SelectedtSeriesdata.Label_Variant3, this.SelectedtSeriesdata.Label_Variant4]);\n }\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.commonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModelList = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getProductMatrix() {\n this.showLoader = true;\n let querystring = \"\";\n querystring = \"ProductModelId=\" + this.ProductModelId;\n this.commonService.GetData(\"ProductModel\", \"GetMatrix\", querystring).subscribe((data: any) => {\n this.ProductMatrix = data;\n this.ShowGrid = true;\n window.scroll({\n left: 0,\n behavior: 'smooth'\n });\n this.isEditable = true;\n this.showLoader = false;\n });\n }\n\n SpeedStepPriceValidation(i:number,j:number)\n {\n let strprice =this.ProductMatrix.stationlist[i].speedsteplist[j].price.toString();\n if(this.ProductMatrix.stationlist[i].speedsteplist[j].price % 1 != 0)\n {\n this.ProductMatrix.stationlist[i].speedsteplist[j].isSpeedstepValid = false;\n this.AlldataValid = false;\n }\n else if(strprice.includes(\".\")){\n this.ProductMatrix.stationlist[i].speedsteplist[j].isSpeedstepValid = false;\n this.AlldataValid = false;\n }\n else if(strprice == \"\")\n {\n this.ProductMatrix.stationlist[i].speedsteplist[j].price = 0;\n }\n else{\n this.ProductMatrix.stationlist[i].speedsteplist[j].isSpeedstepValid = true;\n this.AlldataValid = true;\n }\n }\n\n StationPriceValidation(i:number)\n {\n let strprice = this.ProductMatrix.stationlist[i].price.toString();\n if(this.ProductMatrix.stationlist[i].price % 1 != 0)\n {\n this.ProductMatrix.stationlist[i].isStationValid = false;\n this.AlldataValid = false;\n }\n else if(strprice.includes(\".\")){\n this.ProductMatrix.stationlist[i].isStationValid = false;\n this.AlldataValid = false;\n }\n else if(strprice == \"\")\n {\n this.ProductMatrix.stationlist[i].price = 0;\n }\n else{\n this.ProductMatrix.stationlist[i].isStationValid = true;\n this.AlldataValid = true;\n }\n }\n/*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n Cancel()\n {\n this.ProductMatrix = new ProductMatrixModel();\n this.ProductModelId = undefined;\n this.ProductSeriesId = undefined;\n this.ProductModelList = [];\n this.ShowGrid = false;\n }\n\n EditMatrix() {\n this.isEditable = false;\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n }\n\n SaveMatrix() {\n \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this product matrix?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n this.showLoader = true;\n if (dialogResult) {\n this.commonService.PostData(\"ProductModel\", \"SaveMatrix\", this.ProductMatrix, null).subscribe((data: any) => {\n \n if (data == 1) {\n this.toastr.success(\"Product matrix updated successfully!\");\n this.isEditable = true;\n \n this.showLoader = false;\n }\n else {\n this.toastr.error(\"Failed to update product matrix!\");\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error(\"Failed to update product matrix!\");\n this.showLoader = false;\n });\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n }\n else {\n this.showLoader = false;\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductMatrixEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n TC/TR Matrix\n

    \n
    \n
    \n \n\n
    \n
      \n
    • \n     \n     \n \n
    • \n
    \n
    \n
    \n \n \n \n \n \n \n
    \n \n Please select product series and product model!

    \n
    \n\n
    \n \n
    \n \n No records found!

    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Options, ProductModel } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-options',\n templateUrl: './add-options.component.html',\n styleUrls: ['./add-options.component.scss']\n})\nexport class AddOptionsComponent implements OnInit {\n Optionsobj: Options = new Options();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductModelarr: ProductModel[] = [];\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllProductSeries(this.route.snapshot.params[\"Seriesid\"]);\n this.GetProductModelById(this.route.snapshot.params[\"Seriesid\"]);\n }\n\n /*******************************************************************************\n * Get data for Product options\n * ******************************************************************************/\n getAllProductSeries(SeriesId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + SeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.Optionsobj.SeriesName = data.SeriesName;\n this.Optionsobj.ProductSeries = data.Id;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.CommonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModelarr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.Optionsobj.Price = 0;\n }\n }\n\n /*******************************************************************************\n * End get data for add product options\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this product option?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n this.CommonService.PostData('ProductOptions', 'Add', this.Optionsobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product option added successfully!');\n this.router.navigate(['/Options', this.Optionsobj.ProductSeries]);\n this.showLoader = false;\n\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product option already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to product option!');\n this.router.navigate(['/Options', this.Optionsobj.ProductSeries]);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add product option!');\n this.showLoader = false;\n this.router.navigate(['/Options', this.Optionsobj.ProductSeries]);\n });\n }\n });\n\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Product Options\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Options, ProductModel } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-options',\n templateUrl: './edit-view-options.component.html',\n styleUrls: ['./edit-view-options.component.scss']\n})\nexport class EditViewOptionsComponent implements OnInit {\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n Optionsobj: Options = new Options();\n charCode: any;\n ProductModelarr: ProductModel[] = [];\n UserRole: any;\n isProductOptionEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n @Input()\n showLoader: boolean = false;\n SelectedModel: any[] = [];\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductOptionEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.Optionsobj.Id = this.route.snapshot.params[\"id\"];\n this.getProductOptionsIdDetailsById(this.Optionsobj.Id);\n\n }\n /*******************************************************************************\n * Get data for add product model\n * ******************************************************************************/\n getProductOptionsIdDetailsById(ProductOptionsId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + ProductOptionsId;\n\n this.CommonService.GetData('ProductOptions', 'GetById', queryString).subscribe((data: any) => {\n this.Optionsobj = data;\n\n if (this.Optionsobj.ProductModelArr != null) {\n this.SelectedModel = this.Optionsobj.ProductModelArr.map(item => item.toString());\n }\n\n this.GetProductModelById(this.Optionsobj.ProductSeries);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n OnModelselected($event) {\n this.Optionsobj.ProductModelArr = [];\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.CommonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModelarr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End get data for add product model\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Option - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Product Option - ECOTECH\");\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.Optionsobj.Price = 0;\n }\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this product option?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n\n if (dialogResult) {\n this.showLoader = true;\n this.Optionsobj.ProductModelArr = [];\n for (var i = 0; i < this.SelectedModel.length; i++) {\n this.Optionsobj.ProductModelArr.push(this.SelectedModel[i]);\n }\n this.CommonService.PostData('ProductOptions', 'Update', this.Optionsobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product option updated successfully!');\n this.router.navigate(['/Options', this.Optionsobj.ProductSeries]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product option already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update product option!');\n this.router.navigate(['/Options', this.Optionsobj.ProductSeries]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update product model!');\n this.showLoader = false;\n this.router.navigate(['/Options', this.Optionsobj.ProductSeries]);\n });\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductOptionEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Product Options\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Options, ProductSeries } from 'src/app/Model/ProductModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-options-details',\n templateUrl: './options-details.component.html',\n styleUrls: ['./options-details.component.scss']\n})\nexport class OptionsDetailsComponent implements OnInit {\n displayedColumns: string[] = ['SeriesName', 'Option', 'ProductModelNameArr', 'Price', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n ProductSeriesId: number;\n UserRole: any;\n isProductOptionEditable: boolean = false;\n ProductSeriesobj: ProductSeries = new ProductSeries();\n VariantDrpdown: string = \"\";\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private router: Router, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductOptionEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.route.params.subscribe(params => {\n this.ProductSeriesId = params['Seriesid'];\n this.pageSize = 5;\n this.pageNumber = 1;\n this.pageIndex = this.pageNumber - 1;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.SearchText = \"\";\n this.VariantDrpdown = \"Options\";\n this.GetAllProductOptionsDetails();\n this.getAllProductSeries();\n });\n\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllProductOptionsDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllProductOptionsDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&ProductSeriesId=\" + this.ProductSeriesId;\n this.CommonService.GetData('ProductOptions', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n if (this.ColumnName == 'Price') {\n var IsPriceOnRequestList: Options[] = [];\n var IsNotPriceOnRequestList: Options[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else {\n this.dataSource = new MatTableDataSource(this.data);\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllProductOptionsDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllProductOptionsDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllProductOptionsDetails();\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.ProductSeriesobj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.ProductSeriesobj.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.ProductSeriesobj.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant1, this.ProductSeriesobj.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant2, this.ProductSeriesobj.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant3, this.ProductSeriesobj.Label_Variant4]);\n }\n }\n\n UpdateProductOptionsStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this product option?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductOptions', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product option deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this product option because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate product option!\");\n }\n this.GetAllProductOptionsDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate product option!\");\n this.GetAllProductOptionsDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductOptionsDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this product option?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductOptions', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product option activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate product option!\");\n }\n this.GetAllProductOptionsDetails();\n }, error => {\n this.toastr.error(\"Failed to activate product option!\");\n this.GetAllProductOptionsDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductOptionsDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductOptionEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Product Options Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ProductSeriesobj.SeriesName}}
    \n \n \n Product Model\n {{ProductSeriesobj.Label_Variant1}}\n \n {{ProductSeriesobj.Label_Variant2}}\n {{ProductSeriesobj.Label_Variant3}}\n {{ProductSeriesobj.Label_Variant4}}\n Product Options\n \n \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n\n
    Product Series {{row.SeriesName}} Product Model \n \n {{item}}{{i === row.ProductModelNameArr.length -1 ? '': ',' }}\n \n Product Options {{row.Option}} Price (€) {{row.IsPriceOnRequest ? 'Price\n on Request': row.Price |indianCurrency}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ProductFamily } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n\n@Component({\n selector: 'app-add-product-family',\n templateUrl: './add-product-family.component.html',\n styleUrls: ['./add-product-family.component.scss']\n})\nexport class AddProductFamilyComponent implements OnInit {\n ProductFamilyobj: ProductFamily = new ProductFamily();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductLine: any[] = [];\n constructor(private router: Router, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title, private route: ActivatedRoute,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllProductLine();\n }\n\n /*******************************************************************************\n * Get data for add product family\n * ******************************************************************************/\n getAllProductLine() {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductLine\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductLine = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for add product family\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this product family?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n this.CommonService.PostData('ProductFamily', 'Add', this.ProductFamilyobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product family added successfully!');\n this.router.navigate(['/ProductFamily']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product family already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add product family!');\n this.router.navigate(['/ProductFamily']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add product family!');\n this.showLoader = false;\n this.router.navigate(['/ProductFamily']);\n });\n }\n });\n\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Product Family\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ProductFamily } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-product-family',\n templateUrl: './edit-view-product-family.component.html',\n styleUrls: ['./edit-view-product-family.component.scss']\n})\nexport class EditViewProductFamilyComponent implements OnInit {\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n ProductFamilyobj: ProductFamily = new ProductFamily();\n charCode: any;\n ProductLine: any[] = [];\n UserRole: any;\n isProductFamilyEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n @Input()\n showLoader: boolean = false;\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n //this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductFamilyEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.ProductFamilyobj.Id = this.route.snapshot.params[\"id\"];\n this.getProductFamilyIdDetailsById(this.ProductFamilyobj.Id);\n this.getAllProductLine();\n }\n /*******************************************************************************\n * Get data for add product family\n * ******************************************************************************/\n getProductFamilyIdDetailsById(ProductFamilyId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + ProductFamilyId;\n\n this.CommonService.GetData('ProductFamily', 'GetById', queryString).subscribe((data: any) => {\n this.ProductFamilyobj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllProductLine() {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductLine\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductLine = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for add product family\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Family - ${appConfig.titleName}`);\n //this.titleService.setTitle(\"Edit Product Family - ECOTECH\");\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this product family?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n this.CommonService.PostData('ProductFamily', 'Update', this.ProductFamilyobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product family updated successfully!');\n this.router.navigate(['/ProductFamily']);\n this.showLoader = false;\n\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product family already exists!');\n this.showLoader = false;\n }\n\n else {\n this.toastr.error('Failed to update product family!');\n this.router.navigate(['/ProductFamily']);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update product family!');\n this.showLoader = false;\n this.router.navigate(['/ProductFamily']);\n });\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductFamilyEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Product Family\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductFamily } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-product-family-details',\n templateUrl: './product-family-details.component.html',\n styleUrls: ['./product-family-details.component.scss']\n})\nexport class ProductFamilyDetailsComponent implements OnInit {\n displayedColumns: string[] = ['ProductLineName', 'ProductFamilyName', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n UserRole: any;\n isProductFamilyEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title, private route: ActivatedRoute,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.GetAllProductFamilyDetails();\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductFamilyEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllProductFamilyDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllProductFamilyDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.CommonService.GetData('ProductFamily', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllProductFamilyDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllProductFamilyDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllProductFamilyDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n UpdateProductFamilyStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this product family?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductFamily', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product family deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this product family because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate product family!\");\n }\n this.GetAllProductFamilyDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate product family!\");\n this.GetAllProductFamilyDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductFamilyDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this product family?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductFamily', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product family activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate product family!\");\n }\n this.GetAllProductFamilyDetails();\n }, error => {\n this.toastr.error(\"Failed to activate product family!\");\n this.GetAllProductFamilyDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductFamilyDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductFamilyEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Product Family Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n\n
    Product Line {{row.ProductLineName}} Product Family {{row.ProductFamilyName}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ProductLine } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-product-line',\n templateUrl: './add-product-line.component.html',\n styleUrls: ['./add-product-line.component.scss']\n})\nexport class AddProductLineComponent implements OnInit {\n ProductLineobj: ProductLine = new ProductLine();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n constructor(private router: Router, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n }\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this product line?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n this.CommonService.PostData('ProductLine', 'Add', this.ProductLineobj, null).subscribe((data: any) => {\n let result = data;\n if (result.ResponseCode == 1) {\n this.toastr.success('Product line added successfully!');\n this.router.navigate(['/ProductLine']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product line already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add product line!');\n this.router.navigate(['/ProductLine']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add product line!');\n this.showLoader = false;\n this.router.navigate(['/ProductLine']);\n });\n }\n });\n\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Product Line\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ProductLine } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-product-line',\n templateUrl: './edit-view-product-line.component.html',\n styleUrls: ['./edit-view-product-line.component.scss']\n})\nexport class EditViewProductLineComponent implements OnInit {\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n ProductLineobj: ProductLine = new ProductLine();\n charCode: any;\n UserRole: any;\n isProductLineEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n @Input()\n showLoader: boolean = false;\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductLineEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.ProductLineobj.Id = this.route.snapshot.params[\"id\"];\n this.getProductLineIdDetailsById(this.ProductLineobj.Id);\n }\n\n getProductLineIdDetailsById(ProductLineId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + ProductLineId;\n\n this.CommonService.GetData('ProductLine', 'GetById', queryString).subscribe((data: any) => {\n this.ProductLineobj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Line - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Line - ECOTECH\");\n }\n\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this product line?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n this.CommonService.PostData('ProductLine', 'Update', this.ProductLineobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product line updated successfully!');\n this.router.navigate(['/ProductLine']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product line already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update product line!');\n this.router.navigate(['/ProductLine']);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update product line!');\n this.showLoader = false;\n this.router.navigate(['/ProductLine']);\n });\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductLineEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Product Line\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { UpdateStatus } from 'src/app/Model/CommonModel';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductLine } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-product-line-details',\n templateUrl: './product-line-details.component.html',\n styleUrls: ['./product-line-details.component.scss']\n})\nexport class ProductLineDetailsComponent implements OnInit {\n displayedColumns: string[] = ['Name', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n UserRole: any;\n isProductLineEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title, private route: ActivatedRoute,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductLineEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n\n this.GetAllProductLineDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllProductLineDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllProductLineDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.CommonService.GetData('ProductLine', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllProductLineDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllProductLineDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllProductLineDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n\n\n UpdateProductLineStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this product line?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductLine', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product line deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this product line because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate product line!\");\n }\n this.GetAllProductLineDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate product line!\");\n this.GetAllProductLineDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductLineDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this product line?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductLine', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product line activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate product line!\");\n }\n this.GetAllProductLineDetails();\n }, error => {\n this.toastr.error(\"Failed to activate product line!\");\n this.GetAllProductLineDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductLineDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductLineEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Product Line Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n\n\n
    Product Line {{row.Name}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ProductModel } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-product-model',\n templateUrl: './add-product-model.component.html',\n styleUrls: ['./add-product-model.component.scss']\n})\nexport class AddProductModelComponent implements OnInit {\n\n ProductModelobj: ProductModel = new ProductModel();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductSeries: any[] = [];\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllProductSeries();\n this.ProductModelobj.ProductSeries = this.route.snapshot.params[\"id\"];\n\n }\n\n /*******************************************************************************\n * Get data for add product model\n * ******************************************************************************/\n getAllProductSeries() {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductSeries\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductSeries = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for add product model\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this product model?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n this.CommonService.PostData('ProductModel', 'Add', this.ProductModelobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product model added successfully!');\n this.router.navigate(['/ProductModel', this.ProductModelobj.ProductSeries]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product model already exists!');\n this.showLoader = false;\n } \n else {\n this.toastr.error('Failed to add product model!');\n this.router.navigate(['/ProductModel', this.ProductModelobj.ProductSeries]);\n this.showLoader = false;\n }\n }, error => {\n this.toastr.error('Failed to add product model!');\n this.showLoader = false;\n this.router.navigate(['/ProductModel', this.ProductModelobj.ProductSeries]);\n });\n }\n });\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Product Model\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ProductModel } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-product-model',\n templateUrl: './edit-view-product-model.component.html',\n styleUrls: ['./edit-view-product-model.component.scss']\n})\nexport class EditViewProductModelComponent implements OnInit {\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n ProductModelobj: ProductModel = new ProductModel();\n charCode: any;\n ProductSeries: any[] = [];\n UserRole: any;\n isProductModelEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n @Input()\n showLoader: boolean = false;\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductModelEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.ProductModelobj.Id = this.route.snapshot.params[\"id\"];\n this.getProductModelIdDetailsById(this.ProductModelobj.Id);\n this.getAllProductSeries();\n }\n /*******************************************************************************\n * Get data for add product model\n * ******************************************************************************/\n getProductModelIdDetailsById(ProductModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + ProductModelId;\n\n this.CommonService.GetData('ProductModel', 'GetById', queryString).subscribe((data: any) => {\n this.ProductModelobj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductSeries\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductSeries = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for add product model\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Model - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Model - ECOTECH\");\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this product model?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n this.CommonService.PostData('ProductModel', 'Update', this.ProductModelobj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product model updated successfully!');\n this.router.navigate(['/ProductModel', this.ProductModelobj.ProductSeries]);\n this.showLoader = false;\n\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product model already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update product model!');\n this.router.navigate(['/ProductModel', this.ProductModelobj.ProductSeries]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update product model!');\n this.showLoader = false;\n this.router.navigate(['/ProductModel', this.ProductModelobj.ProductSeries]);\n });\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductModelEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Product Model\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductModel, ProductSeries } from 'src/app/Model/ProductModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-product-model-details',\n templateUrl: './product-model-details.component.html',\n styleUrls: ['./product-model-details.component.scss']\n})\nexport class ProductModelDetailsComponent implements OnInit {\n displayedColumns: string[] = ['SeriesName', 'ModelName','ArticleNumber', 'Price', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n ProductSeriesId: number;\n UserRole: any;\n isProductModelEditable: boolean = false;\n ProductSeriesobj: ProductSeries = new ProductSeries();\n VariantDrpdown: string = \"\";\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, \n private CommonService: CommonService, \n public dialog: MatDialog, \n private router: Router, \n private route: ActivatedRoute, \n private titleService: Title,\n private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n //this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess(); \n this.route.params.subscribe(params => {\n this.ProductSeriesId = params['id'];\n this.pageSize = 5;\n this.pageNumber = 1;\n this.pageIndex = this.pageNumber - 1;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.SearchText = \"\";\n this.VariantDrpdown = \"ProductModel\";\n this.GetAllProductModelDetails();\n this.getAllProductSeries();\n });\n\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllProductModelDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllProductModelDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&ProductSeriesId=\" + this.ProductSeriesId;\n this.CommonService.GetData('ProductModel', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data); \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllProductModelDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllProductModelDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllProductModelDetails();\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.ProductSeriesobj = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.ProductSeriesobj.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.ProductSeriesobj.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant1, this.ProductSeriesobj.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant2, this.ProductSeriesobj.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.ProductSeriesobj.Id, this.ProductSeriesobj.Label_Variant3, this.ProductSeriesobj.Label_Variant4]);\n }\n }\n\n UpdateProductModelStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this product model?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductModel', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product model deactivated successfully!\");\n }\n \n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this product model because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate product model!\");\n }\n this.GetAllProductModelDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate product model!\");\n this.GetAllProductModelDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductModelDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this product model?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductModel', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product model activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate product model!\");\n }\n this.GetAllProductModelDetails();\n }, error => {\n this.toastr.error(\"Failed to activate product model!\");\n this.GetAllProductModelDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductModelDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductModelEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Product Model Listing\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n Product Model\n {{ProductSeriesobj.Label_Variant1}}\n \n {{ProductSeriesobj.Label_Variant2}}\n {{ProductSeriesobj.Label_Variant3}}\n {{ProductSeriesobj.Label_Variant4}}\n Product Options\n \n \n
    \n\n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n \n\n \n \n\n
    Product Series {{row.SeriesName}} Product Model {{row.ModelName}} Price (€) \n {{row.Price |indianCurrency}}\n Article Number {{row.ArticleNumber}} Action \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ProductSeries } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-product-series',\n templateUrl: './add-product-series.component.html',\n styleUrls: ['./add-product-series.component.scss']\n})\nexport class AddProductSeriesComponent implements OnInit {\n ProductSeriesobj: ProductSeries = new ProductSeries();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductFamily: any[] = [];\n ProductLine: any[] = [];\n // allowedFileType: string[] = [\n // 'image/bmp',\n // 'image/jpeg',\n // 'image/png',\n // 'application/pdf',\n // 'text/plain',\n // 'text/csv',\n // 'application/xml',\n // 'text/xml',\n // 'application/vnd.ms-excel',\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n // 'application/msword',\n // 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n // 'application/zip',\n // 'application/x-zip-compressed',\n // ];\n allowedFileType: string[] = [ \n 'application/pdf' \n ];\n file: any;\n constructor(private router: Router, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private route: ActivatedRoute, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.getAllProductLine();\n }\n\n /*******************************************************************************\n * Get data for add product family\n * ******************************************************************************/\n getAllProductLine() {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductLine\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductLine = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n getAllProductFamily(ProductLine: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"ProductLine=\" + ProductLine;\n this.CommonService.GetData(\"ProductFamily\", \"GetbyProductLine\", queryString).subscribe((data: any) => {\n this.ProductFamily = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for add product family\n * ******************************************************************************/\n onProductLineSelect(e: any) {\n this.getAllProductFamily(e.target.value);\n }\n\n OnVariantChange() {\n if (this.ProductSeriesobj.Label_Variant1 == '' || this.ProductSeriesobj.Label_Variant2 == '') {\n this.ProductSeriesobj.IsLevel2DepOnLevel1 = false;\n }\n if (this.ProductSeriesobj.Label_Variant2 == '' || this.ProductSeriesobj.Label_Variant3 == '') {\n this.ProductSeriesobj.IsLevel3DepOnLevel2 = false;\n }\n if (this.ProductSeriesobj.Label_Variant3 == '' || this.ProductSeriesobj.Label_Variant4 == '') {\n this.ProductSeriesobj.IsLevel4DepOnLevel3 = false;\n }\n }\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this product series?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) { \n this.showLoader = true; \n const frmData = new FormData();\n let ProductSeriesDetails = JSON.stringify(this.ProductSeriesobj);\n frmData.append(\"ProductSeries\", ProductSeriesDetails);\n if (this.ProductSeriesobj.CatlogName != undefined) {\n frmData.append(\"CatalogFile\", this.file);\n }\n\n this.CommonService.PostData('ProductSeries', 'Add', frmData, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product series added successfully!');\n this.CommonService.RefreshHeaderFun();\n this.router.navigate(['/ProductSeries']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product series already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add product series!');\n this.router.navigate(['/ProductSeries']);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add product series!');\n this.showLoader = false;\n this.router.navigate(['/ProductSeries']);\n });\n }\n });\n\n }\n\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 20) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Please select valid file. Valid filetype is .pdf file\");\n }\n else\n {\n this.ProductSeriesobj.CatlogName = file.name;\n this.file=file; \n }\n \n }\n else{\n this.toastr.info(\"Please select file having size upto 20MB\");\n }\n }\n}","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add Product Series\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input } from '@angular/core';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ProductSeries } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-product-series',\n templateUrl: './edit-view-product-series.component.html',\n styleUrls: ['./edit-view-product-series.component.scss']\n})\nexport class EditViewProductSeriesComponent implements OnInit {\n AppGlobals = AppGlobals;\n catlogDownloadPath = this.AppGlobals.catlogDownloadPath;\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n ProductSeriesobj: ProductSeries = new ProductSeries();\n charCode: any;\n ProductFamily: any[] = [];\n ProductLine: any[] = [];\n UserRole: any;\n isProductSeriesEditable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n @Input()\n showLoader: boolean = false;\n file: any;\n allowedFileType: string[] = [ \n 'application/pdf' \n ];\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductSeriesEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.ProductSeriesobj.Id = this.route.snapshot.params[\"id\"];\n this.getProductSeriesIdDetailsById(this.ProductSeriesobj.Id);\n this.getAllProductLine();\n }\n /*******************************************************************************\n * Get data for add product series\n * ******************************************************************************/\n getProductSeriesIdDetailsById(ProductSeriesId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + ProductSeriesId;\n\n this.CommonService.GetData('ProductSeries', 'GetById', queryString).subscribe((data: any) => {\n this.ProductSeriesobj = data;\n console.log(data);\n \n this.getAllProductFamily(this.ProductSeriesobj.ProductLine);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllProductLine() {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductLine\", \"GetAll\", null).subscribe((data: any) => {\n this.ProductLine = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n getAllProductFamily(ProductLine: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"ProductLine=\" + ProductLine;\n this.CommonService.GetData(\"ProductFamily\", \"GetbyProductLine\", queryString).subscribe((data: any) => {\n this.ProductFamily = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for add product series\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Series - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Series - ECOTECH\");\n }\n\n onProductLineSelect(e: any) {\n this.ProductSeriesobj.ProductFamily = null;\n this.getAllProductFamily(e.target.value);\n }\n\n OnVariantChange() {\n if (this.ProductSeriesobj.Label_Variant1 == '' || this.ProductSeriesobj.Label_Variant2 == '') {\n this.ProductSeriesobj.IsLevel2DepOnLevel1 = false;\n }\n if (this.ProductSeriesobj.Label_Variant2 == '' || this.ProductSeriesobj.Label_Variant3 == '') {\n this.ProductSeriesobj.IsLevel3DepOnLevel2 = false;\n }\n if (this.ProductSeriesobj.Label_Variant3 == '' || this.ProductSeriesobj.Label_Variant4 == '') {\n this.ProductSeriesobj.IsLevel4DepOnLevel3 = false;\n }\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this product series?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n const frmData = new FormData();\n let ProductSeriesDetails = JSON.stringify(this.ProductSeriesobj);\n frmData.append(\"ProductSeries\", ProductSeriesDetails);\n if (this.ProductSeriesobj.CatlogName != undefined) {\n frmData.append(\"CatalogFile\", this.file);\n }\n\n this.CommonService.PostData('ProductSeries', 'Update', frmData, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('Product series updated successfully!');\n this.CommonService.RefreshHeaderFun();\n this.router.navigate(['/ProductSeries']);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Product series already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update product series!');\n this.router.navigate(['/ProductSeries']);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update product series!');\n this.showLoader = false;\n this.router.navigate(['/ProductSeries']);\n });\n }\n });\n }\n editFileDetails(event, index) {\n let file = event.target.files[0];\n let isValidFile = true;\n if (((file.size) / 1000000) <= 20) {\n isValidFile = this.allowedFileType.includes(file.type);\n if (!isValidFile) {\n this.toastr.warning(\"Please select valid file. Valid filetype is .pdf file\");\n }\n else\n {\n this.ProductSeriesobj.CatlogName = file.name;\n this.file=file; \n } \n }\n else{\n this.toastr.info(\"Please select file having size upto 20MB\");\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductSeriesEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} Product Series\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, Inject, AfterViewInit } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ConfirmDialogComponent, DialogData } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { ProductSeries } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { ProductImportExportModel } from 'src/app/Model/CustomerModel';\nimport * as Excel from 'exceljs/dist/exceljs'\nimport * as FileSaver from 'file-saver';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ProductSeriesUploadLogComponent } from './product-series-upload-log/product-series-upload-log.component';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n\n@Component({\n selector: 'app-product-series-details',\n templateUrl: './product-series-details.component.html',\n styleUrls: ['./product-series-details.component.scss']\n})\nexport class ProductSeriesDetailsComponent implements OnInit {\n displayedColumns: string[] = ['ProductLineName', 'ProductFamilyName', 'SeriesName', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n UserRole: any;\n isProductSeriesEditable: boolean = false;\n isProductPriceEditable: boolean = false;\n SeriesName: string[] = [];\n ShowHide: boolean = false;\n dataSourcePrice: [] = [];\n fileType: any[] = ['text/csv', 'application/xml', 'text/xml']\n ProductPricefileType: any[] = ['text/csv', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];\n ProductPrice1fileType: any[] = ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']\n myfile: string;\n Attachmentobj: ProductImportExportModel = new ProductImportExportModel();\n ProductPriceData: any[] = [];\n ProductPriceLogData: any[] = [];\n ProductPriceStation: any[] = [];\n ProductPriceSpeed: any[] = [];\n ProductPriceDP: any[] = [];\n ProductPriceMP: any[] = [];\n ProductOptionPrice: any[] = [];\n ProductModelPrice: any[] = [];\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n /*************************************************************************\n End here\n *************************************************************************/\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,\n private route: ActivatedRoute, private activeModal: NgbActiveModal,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductSeriesEditable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n // this.isProductPriceEditable = AppGlobals.ProductPriceEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.GetAllProductSeriesDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllProductSeriesDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllProductSeriesDetails() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n\n this.CommonService.GetData('ProductSeries', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.SeriesName = data.SeriesData;\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n\n // seriesData.forEach(el => {\n // this.SeriesName.push(el.SeriesName);\n // });\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllProductSeriesDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllProductSeriesDetails();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllProductSeriesDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n UpdateProductSeriesStatusById(Id: number, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this product series?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductSeries', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product series deactivated successfully!\");\n this.CommonService.RefreshHeaderFun();\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this product series because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate product series!\");\n }\n this.GetAllProductSeriesDetails();\n }, error => {\n this.toastr.error(\"Failed to deactivate product series!\");\n this.GetAllProductSeriesDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductSeriesDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this product series?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"id=\" + Id;\n\n this.CommonService.PostData('ProductSeries', 'UpdateStatus', null, queryString).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(\"Product series activated successfully!\");\n this.CommonService.RefreshHeaderFun();\n }\n else {\n this.toastr.info(\"Failed to activate product series!\");\n }\n this.GetAllProductSeriesDetails();\n }, error => {\n this.toastr.error(\"Failed to activate product series!\");\n this.GetAllProductSeriesDetails();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllProductSeriesDetails();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n /*****************************************\n * Immport and Export File\n ********************* */\n\n getfiledetails(e: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"500px\",\n data: {\n title: \"Are you sure\",\n message: \"You want to upload price list?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n if (e.target.files[0].name.length > 50) {\n e.target.value = null;\n this.toastr.warning(\"The file name with more than 50 characters are not allowed.\");\n }\n else {\n if (e.target.name == \"ProductPriceData\") {\n var KycResult;\n if (e.target.name == \"ProductPriceData\") {\n KycResult = this.CheckFileValidation(e.target.files[0], this.ProductPrice1fileType);\n }\n else {\n KycResult = this.CheckFileValidation(e.target.files[0], this.ProductPricefileType);\n }\n if (KycResult.isExtensionValid == true) {\n if (e.target.name == \"ProductPriceData\") {\n this.showLoader = true;\n this.myfile = e.target.files[0];\n const formData = new FormData();\n formData.append('file', this.myfile);\n\n this.CommonService.PostData('ProductModel', 'AddFromFile', formData, null).subscribe((response: any) => {\n if (response == \"Invalid file.\") {\n this.toastr.warning(\"Please select valid file.\");\n }\n else {\n this.ShowHide = true;\n this.dataSourcePrice = response;\n this.openDialog(this.dataSourcePrice);\n }\n this.showLoader = false;\n }, error => {\n //this.toastr.error('Failed to load data!');\n this.showLoader = false;\n });\n }\n }\n else {\n if (KycResult.isExtensionValid == false) {\n e.target.value = null;\n if (e.target.name == \"ProductPriceData\") {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .xlsx\");\n }\n else {\n this.toastr.warning(\"Please attach the file having extension :\\n\\n .xls, .xlsx\");\n }\n }\n }\n }\n }\n }\n })\n }\n CheckFileValidation(File: any, ValidFileType: any[]) {\n var Result = {\n isExtensionValid: false,\n };\n let FileType = File.type;\n for (var j = 0; j < ValidFileType.length; j++) {\n if (FileType.toLowerCase() == ValidFileType[j]) {\n Result.isExtensionValid = true;\n break;\n }\n }\n return Result;\n }\n\n openDialog(PriceData) {\n // Opening the dialog component\n const dialogWithForm = this.dialog.open(ProductSeriesUploadLogComponent, {\n data: PriceData\n });\n }\n ExportData(seriesId: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"500px\",\n data: {\n title: \"Are you sure\",\n message: \"You want to download the price list?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"seriesId=\" + seriesId;\n this.CommonService.GetData(\"ProductModel\", \"Export\", queryString).subscribe((data: any) => {\n this.ProductPriceData = data;\n if (this.ProductPriceData != undefined) {\n this.exportAsXLSX(this.ProductPriceData, data.SelectedSeriesName);\n }\n else {\n this.toastr.error(\"Failed to load data!\");\n }\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n this.showLoader = false;\n }\n });\n }\n public exportAsXLSX(arrayofdata, filename: string): void {\n this.exportAsExcelFile(arrayofdata, filename);\n }\n exportAsExcelFile(json: any, excelFileName: string): void {\n\n let workbook = new Excel.Workbook();\n\n // Product Price Model\n this.ProductModelPrice = json.ProductPriceModel;\n if (this.ProductModelPrice != null) {\n let header = ['Product Series Name', 'Product Model Name', 'Product Model Price'];\n workbook = this.getworkSheet(this.ProductModelPrice, workbook, 'Product Model', header);\n }\n\n // Product Price station List\n this.ProductPriceStation = json.ProductPriceStation;\n if (this.ProductPriceStation != null) {\n let header = ['Product Series Name', 'Product Model Name', json.LableHeader['Label1'], json.LableHeader['Label1'] + \" Price\",'Price On Request'];\n workbook = this.getworkSheet(this.ProductPriceStation, workbook, header[2], header);\n }\n\n //Product Price Speed List\n if(excelFileName==\"POM\"||excelFileName==\"HP\"||excelFileName==\"EF2\"){\n this.ProductPriceSpeed = json.ProductPriceSpeedPOM;\n if (this.ProductPriceSpeed != null) {\n let Speedheader = ['Product Series Name', 'Product Model Name', json.LableHeader['Label2'],json.LableHeader['Label2'] + \" Price\",'Price On Request'];\n workbook = this.getworkSheet(this.ProductPriceSpeed, workbook, Speedheader[2], Speedheader);\n }\n }else{\n this.ProductPriceSpeed = json.ProductPriceSpeed;\n if (this.ProductPriceSpeed != null) {\n let Speedheader = ['Product Series Name', 'Product Model Name',json.LableHeader['Label1'], json.LableHeader['Label2'], json.LableHeader['Label2'] + \" Price\",'Price On Request'];\n workbook = this.getworkSheet(this.ProductPriceSpeed, workbook, Speedheader[3], Speedheader);\n }\n }\n\n //Product Price DP List \n this.ProductPriceDP = json.ProductPriceDP;\n if (json.ProductPriceDP != null) {\n let DPheader = ['Product Series Name', 'Product Model Name', json.LableHeader['Label3'], json.LableHeader['Label3'] + \" Price\",'Price On Request'];\n workbook = this.getworkSheet(this.ProductPriceDP, workbook, DPheader[2], DPheader);\n }7\n //Product Price MP List \n this.ProductPriceMP = json.ProductPriceMP;\n if (this.ProductPriceMP != null) {\n let MPheader = ['Product Series Name', 'Product Model Name', json.LableHeader['Label4'], json.LableHeader['Label4'] + \" Price\",'Price On Request'];\n workbook = this.getworkSheet(this.ProductPriceMP, workbook, MPheader[2], MPheader);\n }\n\n //Product Option Price List\n this.ProductOptionPrice = json.ProductOptionPrice;\n if (this.ProductOptionPrice != null) {\n let Optionheader = ['Product Series Name','Product Option','Product Model Name', 'Product Option Price','Price On Request'];\n workbook = this.getworkSheet(this.ProductOptionPrice, workbook, 'Product Option', Optionheader);\n }\n\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n this.saveAsExcelFile(data, excelFileName);\n });\n }\n public saveAsExcelFile(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(data, fileName);\n }\n\n getworkSheet(sheetdata: any, workbook: any, worksheetName: string, headers: any[]) {\n let worksheet = workbook.addWorksheet(worksheetName.replace('/','_'));\n let headerRow = worksheet.addRow(headers);\n\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: '74B4FE' },\n bgColor: { argb: 'FF0000FF' }\n };\n cell.font = {\n name: 'Arial',\n family: 2,\n bold: true,\n size: 10,\n };\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n\n for (let key of Object.keys(sheetdata)) {\n let tmparray = [];\n let tmpobj = sheetdata[key];\n\n for (let key of Object.keys(tmpobj)) {\n let tmpobj1 = tmpobj[key];\n tmparray.push(tmpobj1)\n }\n worksheet.addRow(tmparray);\n worksheet.re\n }\n return workbook;\n }\n\n /********************************\n * Download List History\n ***********************************/\n DownloadListHistory()\n {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"500px\",\n data: {\n title: \"Are you sure\",\n message: \"You want to download price list history?\"\n }\n });\n dialogRef.afterClosed().subscribe(dialogResult => {\n if (dialogResult) {\n this.showLoader = true;\n this.CommonService.GetData(\"ProductModel\", \"DownloadListHistory\", null).subscribe((data: any) => {\n this.ProductPriceLogData = data;\n if (this.ProductPriceLogData != undefined) {\n this.exportAsXLSXLog(this.ProductPriceLogData,\"Log File\");\n }\n else {\n this.toastr.error(\"Failed to load data!\");\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n });\n this.showLoader = false;\n }\n })\n }\n public exportAsXLSXLog(arrayofdata, filename: string): void {\n this.exportAsExcelFileLog(arrayofdata, filename);\n }\n exportAsExcelFileLog(json: any, excelFileName: string): void {\n\n let workbook = new Excel.Workbook();\n\n // Product Price Model\n if (json.ProductModelLog != null) {\n let header = ['Series Name', 'Model Name','Model Old Price', 'Model New Price','Date'];\n workbook = this.getworkSheetLog(json.ProductModelLog, workbook, 'Product Model', header);\n }\n\n // Product Price station List\n if (json.ProductPriceVariant1Log != null) {\n let header = ['Series Name', 'Model Name','Variant1','Model Old Price','Model New Price','Date'];\n workbook = this.getworkSheetLog(json.ProductPriceVariant1Log, workbook, 'Variant1', header);\n }\n\n //Product Price Speed List\n if (json.ProductPriceVariant2Log != null) {\n let header = ['Series Name', 'Model Name','Variant2','Model Old Price','Model New Price','Date'];\n workbook = this.getworkSheetLog(json.ProductPriceVariant2Log, workbook, 'Variant2', header);\n }\n\n //Product Price DP List \n if (json.ProductPriceVariant3Log != null) {\n let header = ['Series Name', 'Model Name','Variant3','Model Old Price', 'Model New Price','Date'];\n workbook = this.getworkSheetLog(json.ProductPriceVariant3Log, workbook, 'Variant3', header);\n }\n //Product Price MP List \n if (json.ProductPriceVariant4Log != null) {\n let header = ['Series Name', 'Model Name','Variant4','Model Old Price', 'Model New Price','Date'];\n workbook = this.getworkSheetLog(json.ProductPriceVariant4Log, workbook, 'Variant4', header);\n }\n\n //Product Option Price List\n if (json.ProductOptionLog != null) {\n let header = ['Series Name','Product Option','Option Old Price', 'Option New Price','Date'];\n workbook = this.getworkSheetLog(json.ProductOptionLog, workbook, 'Product Option', header);\n }\n\n workbook.xlsx.writeBuffer().then((data) => {\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n this.saveAsExcelFileLog(data, excelFileName);\n });\n }\n public saveAsExcelFileLog(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(data, fileName);\n }\n\n getworkSheetLog(sheetdata: any, workbook: any, worksheetName: string, headers: any[]) {\n let worksheet = workbook.addWorksheet(worksheetName.replace('/','_'));\n let headerRow = worksheet.addRow(headers);\n\n headerRow.eachCell((cell, number) => {\n cell.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb: '74B4FE' },\n bgColor: { argb: 'FF0000FF' }\n };\n cell.font = {\n name: 'Arial',\n family: 2,\n bold: true,\n size: 10,\n };\n cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }\n })\n\n for (let key of Object.keys(sheetdata)) {\n let tmparray = [];\n let tmpobj = sheetdata[key];\n\n for (let key of Object.keys(tmpobj)) {\n let tmpobj1 = tmpobj[key];\n tmparray.push(tmpobj1)\n }\n worksheet.addRow(tmparray);\n worksheet.re\n }\n return workbook;\n }\n closePopup() {\n this.activeModal.close('Close Click');\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductSeriesEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n this.isProductPriceEditable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='IsProductPriceEditableAccess')[0]?.IsVisible;\n });\n \n }\n}\n\n\n\n\n\n\n\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Product Series Listing\n

    \n
    \n
    \n
    \n
      \n
    • \n \n
    • \n
    • \n \n Price List Download\n \n \n {{sr.SeriesName}}\n \n \n \n
    • \n
    • \n \n\n \n
    • \n
    • \n Add Product Series\n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Search\n \n \n
    \n
    \n\n
    \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n
    Product Line {{row.ProductLineName}} Product Family {{row.ProductFamilyName}} Product Series {{row.SeriesName}} Action \n \n \n     \n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport {MatDialog, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\n@Component({\n selector: 'app-product-series-upload-log',\n templateUrl: './product-series-upload-log.component.html',\n styleUrls: ['./product-series-upload-log.component.scss']\n})\nexport class ProductSeriesUploadLogComponent implements OnInit {\n\n dataSourcePrice: any;\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: {dataSourcePrice: any}) { }\n\n ngOnInit(): void {\n this.dataSourcePrice = this.data;\n }\n \n onOkClick(): void {\n this.dialogRef.close();\n }\n}\n","\n
    \n \n
    \n
    \n
    \n
    \n
    \n

    \n Price List Upload Log...\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Row NoSeries NameModel NameDescriptionStatus
    {{a.RowNo}}{{a.SeriesName}}{{a.ModelName}}{{a.Description}}\n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ProductSeries, Station, VariantLevel1 } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-variant-level1',\n templateUrl: './add-variant-level1.component.html',\n styleUrls: ['./add-variant-level1.component.scss']\n})\nexport class AddVariantLevel1Component implements OnInit {\n VariantLevel1obj: VariantLevel1 = new VariantLevel1();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductSeries: ProductSeries = new ProductSeries();\n ProductModel: any[] = [];\n StationList: any[] = [];\n OrignalStationList: any[] = [];\n SearchText:string = \"\";\n\n SeriesName: string = '';\n ProductSeriesVariantLabel: string = '';\n Variant1ProductSeries: string;\n \n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.VariantLevel1obj.ProductSeries = this.route.snapshot.params[\"id\"];\n this.getAllProductSeries();\n this.GetProductModelById(this.VariantLevel1obj.ProductSeries);\n\n }\n\n /*******************************************************************************\n * Get data for Variant Level 1\n * ******************************************************************************/\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel1obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.VariantLevel1obj.SeriesName = data.SeriesName;\n this.VariantLevel1obj.ProductSeries = data.Id;\n this.ProductSeriesVariantLabel = data.Label_Variant1;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.CommonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetStation(Model: any) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + Model;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetAllStation\", queryString).subscribe((data: any) => {\n this.StationList = data;\n this.OrignalStationList = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n /*******************************************************************************\n * End get data for add product family\n * ******************************************************************************/\n\n onModelSelected(event: any) {\n if (this.VariantLevel1obj.SeriesName == 'TC' || this.VariantLevel1obj.SeriesName == 'TR') {\n this.VariantLevel1obj.Level1arr = [];\n this.StationList = [];\n this.GetStation(event.target.value);\n }\n\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel1obj.Price = 0;\n }\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n // OnStationSearch(event:any)\n // {\n // this.StationList = [];\n // if(event != \"\" && event != null && event != undefined)\n // {\n // /// this.StationList = this.OrignalStationList.filter(element =>element.Level1 == event)\n // this.OrignalStationList.forEach(element => {\n // if((element.Level1+'').indexOf(event) > -1)\n // {\n // this.StationList.push(element)\n // }\n \n // });\n // }\n // else{\n // this.StationList = this.OrignalStationList;\n // }\n // console.log(this.StationList);\n // }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this \" + this.ProductSeriesVariantLabel + \" ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n for (var i = 0; i < this.VariantLevel1obj.Level1arr.length; i++) {\n var obj = { Id: null, Level1: this.VariantLevel1obj.Level1arr[i] }\n this.VariantLevel1obj.Level1.push(obj);\n }\n\n this.CommonService.PostData('ProductVariantLevel1', 'Add', this.VariantLevel1obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariantLabel + ' added successfully!');\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.ProductSeriesVariantLabel + ' already exists!');\n this.VariantLevel1obj.Level1 = [];\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to ' + this.ProductSeriesVariantLabel + '!');\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add ' + this.ProductSeriesVariantLabel + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n });\n }\n });\n\n }\n\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add {{ProductSeriesVariantLabel}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Level1Model, Station, VariantLevel1 } from 'src/app/Model/ProductModel';\nimport { MatSelectChange } from '@angular/material/select';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-variant-level1',\n templateUrl: './edit-view-variant-level1.component.html',\n styleUrls: ['./edit-view-variant-level1.component.scss']\n})\nexport class EditViewVariantLevel1Component implements OnInit {\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n VariantLevel1obj: VariantLevel1 = new VariantLevel1();\n charCode: any;\n ProductFamily: any[] = [];\n @Input()\n showLoader: boolean = false;\n ProductSeries: any[] = [];\n ProductModel: any[] = [];\n StationList: Level1Model[] = [];\n SelectedStation: any[] = [];\n ProductSeriesVariantLabel: string = '';\n queryString: string = \"\";\n UserRole: any;\n isProductVariant1Editable: boolean = false;\n\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n @Output() selectionChange: EventEmitter\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductVariant1Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.ProductSeriesVariantLabel = this.route.snapshot.params[\"label\"];\n if (this.route.snapshot.params[\"id\"] == undefined) {\n this.queryString = \"ProductModel=\" + this.route.snapshot.params[\"ProductModel\"];\n this.queryString += \"&Price=\" + this.route.snapshot.params[\"Price\"];\n this.queryString += \"&Status=\" + this.route.snapshot.params[\"Status\"];\n this.queryString += \"&IsPriceOnRequest=\" + this.route.snapshot.params[\"IsPriceOnRequest\"];\n this.getVariantLevel1IdDetailsById('GetbyProductModelAndPrice', this.queryString);\n }\n else {\n this.queryString = \"Id=\" + this.route.snapshot.params[\"id\"];\n this.getVariantLevel1IdDetailsById('GetById', this.queryString);\n }\n\n }\n /*******************************************************************************\n * Get data for add variant level-1\n * ******************************************************************************/\n getVariantLevel1IdDetailsById(ActionName: string, queryString: string) {\n this.showLoader = true;\n\n this.CommonService.GetData('ProductVariantLevel1', ActionName, queryString).subscribe((data: any) => {\n this.VariantLevel1obj = data;\n if (this.VariantLevel1obj.SeriesName == 'TC' || this.VariantLevel1obj.SeriesName == 'TR') {\n this.StationList = this.VariantLevel1obj.Level1;\n this.SelectedStation = this.VariantLevel1obj.Level1.map(item => item.Level1.toString()); //Level1\n this.GetStation(this.VariantLevel1obj.ProductModel);\n\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n\n GetStation(Model: any) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + Model;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetAllStation\", queryString).subscribe((data: any) => {\n this.StationList = this.VariantLevel1obj.Level1.concat(data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End get data for add variant level-1\n * ******************************************************************************/\n\n OnStationselected(event: any) {\n this.VariantLevel1obj.Level1 = [];\n }\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Variant Level 1 - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Variant Level 1 - ECOTECH\");\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel1obj.Price = 0;\n }\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n DeleteStation() {\n this.VariantLevel1obj.Level1 = [];\n for (var i = 0; i < this.SelectedStation.length; i++) {\n let obj = this.StationList.find(x => x.Level1 == this.SelectedStation[i]);\n this.VariantLevel1obj.Level1.push(obj);\n }\n this.VariantLevel1obj.Level1 = this.VariantLevel1obj.Level1.filter(x => x.Id != null);\n if (this.VariantLevel1obj.Level1.length == 0) {\n this.toastr.warning(\"This \" + this.ProductSeriesVariantLabel + \" does not exist for \" + this.VariantLevel1obj.ModelName + \" product model\")\n this.VariantLevel1obj.Level1 = [];\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this \" + this.ProductSeriesVariantLabel + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel1', 'DeleteStation', this.VariantLevel1obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariantLabel + ' deleted successfully!');\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(\"Failed to delete this \" + this.ProductSeriesVariantLabel + \" because it has some dependency!\");\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to delete ' + this.ProductSeriesVariantLabel + '!');\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to delete ' + this.ProductSeriesVariantLabel + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n });\n }\n else {\n this.VariantLevel1obj.Level1 = [];\n }\n });\n }\n }\n\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this \" + this.ProductSeriesVariantLabel + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n for (var i = 0; i < this.SelectedStation.length; i++) {\n let obj = this.StationList.find(x => x.Level1 == this.SelectedStation[i]);\n this.VariantLevel1obj.Level1.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel1', 'Update', this.VariantLevel1obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariantLabel + ' updated successfully!');\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.ProductSeriesVariantLabel + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update ' + this.ProductSeriesVariantLabel + '!');\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update ' + this.ProductSeriesVariantLabel + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel1', this.VariantLevel1obj.ProductSeries, this.ProductSeriesVariantLabel]);\n });\n }\n });\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant1Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} {{ProductSeriesVariantLabel}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Level1Model, ProductSeries, VariantLevel1 } from 'src/app/Model/ProductModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-variant-level1-details',\n templateUrl: './variant-level1-details.component.html',\n styleUrls: ['./variant-level1-details.component.scss']\n})\nexport class VariantLevel1DetailsComponent implements OnInit {\n displayedColumns: string[] = ['SeriesName', 'ModelName', 'otherType', 'Level1', 'Price', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n ProductSeriesId: number;\n SeriesName: string = \"\";\n UserRole: any;\n isProductVariant1Editable: boolean = false;\n ProductSeriesArr: ProductSeries = new ProductSeries();\n VariantDrpdown: string = \"\";\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n @ViewChild('paginator') paginator: MatPaginator;\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n /*************************************************************************\n End here\n *************************************************************************/\n\n ProductSeriesVariantLabel: string = '';\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private router: Router, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductVariant1Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.route.params.subscribe(params => {\n\n this.ProductSeriesVariantLabel = params['Label'];\n this.ProductSeriesId = params['id'];\n this.pageSize = 5;\n this.pageNumber = 1;\n this.pageIndex = this.pageNumber - 1;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.SearchText = \"\";\n this.VariantDrpdown = \"Variant1\";\n this.GetAllVariantLevel1Details();\n this.getAllProductSeries();\n });\n\n\n }\n\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllVariantLevel1Details() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllVariantLevel1Details() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&ProductSeriesId=\" + this.ProductSeriesId; //Seires Id\n\n this.CommonService.GetData('ProductVariantLevel1', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n if (this.ColumnName == 'Price') {\n var IsPriceOnRequestList: VariantLevel1[] = [];\n var IsNotPriceOnRequestList: VariantLevel1[] = [];\n IsPriceOnRequestList = this.data?.filter(x => x.IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data?.filter(x => x.IsPriceOnRequest != true)\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else {\n this.dataSource = new MatTableDataSource(this.data);\n }\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.ProductSeriesArr = data;\n this.SeriesName = data.SeriesName;\n this.ProductSeriesVariantLabel = data.Label_Variant1;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllVariantLevel1Details();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllVariantLevel1Details();\n }\n\n\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllVariantLevel1Details();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1, this.ProductSeriesArr.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant2, this.ProductSeriesArr.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant3, this.ProductSeriesArr.Label_Variant4]);\n }\n }\n \n\n UpdateVariantLevel1StatusById(Level1Data: VariantLevel1, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this \" + this.ProductSeriesVariantLabel + ' ?',\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n this.CommonService.PostData('ProductVariantLevel1', 'UpdateStatus', Level1Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariantLabel + \" deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this \" + this.ProductSeriesVariantLabel + \" because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate \" + this.ProductSeriesVariantLabel + \"!\");\n }\n this.GetAllVariantLevel1Details();\n }, error => {\n this.toastr.error(\"Failed to deactivate \" + this.ProductSeriesVariantLabel + \"!\");\n this.GetAllVariantLevel1Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel1Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this \" + this.ProductSeriesVariantLabel + \"?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel1', 'UpdateStatus', Level1Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariantLabel + \" activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate \" + this.ProductSeriesVariantLabel + \"!\");\n }\n this.GetAllVariantLevel1Details();\n }, error => {\n this.toastr.error(\"Failed to activate \" + this.ProductSeriesVariantLabel + \"!\");\n this.GetAllVariantLevel1Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel1Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant1Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n\n}\n\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{ProductSeriesVariantLabel}} Listing\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ProductSeriesArr.SeriesName}}
    \n \n \n Product Model\n {{ProductSeriesArr.Label_Variant1}}\n \n {{ProductSeriesArr.Label_Variant2}}\n {{ProductSeriesArr.Label_Variant3}}\n {{ProductSeriesArr.Label_Variant4}}\n Product Options\n \n \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n\n\n
    Product Series {{row.SeriesName}} Product Model {{row.ModelName}} \n {{ProductSeriesVariantLabel}} \n \n {{item.Level1}}{{i === row.Level1.length -1 ? '': ',' }}\n \n {{ProductSeriesVariantLabel}} \n {{row.otherType}} Price (€) {{row.IsPriceOnRequest ? 'Price\n on Request' :row.Price | indianCurrency}} Action \n \n \n \n \n \n     \n\n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Level1Model, ProductSeries, Station, VariantLevel2 } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-variant-level2',\n templateUrl: './add-variant-level2.component.html',\n styleUrls: ['./add-variant-level2.component.scss']\n})\nexport class AddVariantLevel2Component implements OnInit {\n ProductSeriesVariant2Label: string = '';\n VariantLevel2obj: VariantLevel2 = new VariantLevel2();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductSeries: ProductSeries = new ProductSeries();\n ProductModel: any[] = [];\n //To Stored Api data of VariantLevel1 and VariantLevel2 \n Level1arr: Level1Model[] = [];\n Level2arr: Level1Model[] = [];\n SpeedStepName: string = \"\";\n @ViewChild('closebutton') closebutton;\n\n //To bind current VariantLevel2 data\n Level2Currdata: any[] = [];\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title, private activeModal: NgbActiveModal,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.VariantLevel2obj.ProductSeries = this.route.snapshot.params[\"Seriesid\"];\n this.getAllProductSeries();\n this.GetProductModelById(this.VariantLevel2obj.ProductSeries);\n }\n\n /*******************************************************************************\n * Get data for Variant Level 1\n * ******************************************************************************/\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel2obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.VariantLevel2obj.SeriesName = data.SeriesName;\n this.VariantLevel2obj.ProductSeries = data.Id;\n this.VariantLevel2obj.IsLevel2DepOnLevel1 = data.IsLevel2DepOnLevel1;\n this.VariantLevel2obj.Label_Variant1 = data.Label_Variant1;\n this.VariantLevel2obj.Label_Variant2 = data.Label_Variant2;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.CommonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetAllSpeedStep(StationId, ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n queryString += \"&StationId=\" + StationId;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetAllSpeedStep\", queryString).subscribe((data: any) => {\n this.Level2arr = data;\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n GetVariant1ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetVariant1ByModelId\", queryString).subscribe((data: any) => {\n this.Level1arr = data;\n if (this.VariantLevel2obj.SeriesName == 'TC' || this.VariantLevel2obj.SeriesName == 'TR') {\n this.Level1arr = this.Level1arr.sort((a, b) => parseInt(a.Level1) - parseInt(b.Level1));\n }\n else {\n this.Level1arr = this.Level1arr.sort((a, b) => a.Level1.localeCompare(b.Level1));\n }\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End get data for Variant Level 1\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n\n OpenPopupAddSpeedStep() {\n this.SpeedStepName = \"\";\n\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onModelSelected(event: any) {\n this.VariantLevel2obj.Level1Id = null;\n this.Level1arr = [];\n this.Level2Currdata = [];\n this.Level2arr = [];\n this.GetVariant1ByModelId(event.target.value);\n }\n\n OnStationselected(event: any) {\n if (this.VariantLevel2obj.SeriesName == 'TC' || this.VariantLevel2obj.SeriesName == 'TR') {\n this.Level2Currdata = [];\n this.Level2arr = [];\n this.GetAllSpeedStep(event.target.value, this.VariantLevel2obj.ProductModel);\n }\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel2obj.Level2Price = 0;\n }\n }\n\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this \" + this.VariantLevel2obj.Label_Variant2 + \" ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n for (var i = 0; i < this.Level2Currdata.length; i++) {\n var obj = { Id: null, Level1: this.Level2Currdata[i] }\n this.VariantLevel2obj.Level2.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel2', 'Add', this.VariantLevel2obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel2obj.Label_Variant2 + ' added successfully!');\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.VariantLevel2obj.Label_Variant2 + ' already exists!');\n this.VariantLevel2obj.Level2 = [];\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to ' + this.VariantLevel2obj.Label_Variant2 + '!');\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add ' + this.VariantLevel2obj.Label_Variant2 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n });\n }\n });\n\n }\n \n AddSpeedStep(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this SpeedStep ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SpeedStepName=\" + this.SpeedStepName;\n this.CommonService.PostData('ProductVariantLevel2', 'AddSpeedStep', null, queryString).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('SpeedStep added successfully!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel2obj.ProductModel != null && this.VariantLevel2obj.ProductModel != undefined\n && this.VariantLevel2obj.ProductModel != 0) &&\n (this.VariantLevel2obj.Level1Id != null && this.VariantLevel2obj.Level1Id != undefined && this.VariantLevel2obj.Level1Id != 0)) {\n\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('SpeedStep already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add SpeedStep!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel2obj.ProductModel != null && this.VariantLevel2obj.ProductModel != undefined\n && this.VariantLevel2obj.ProductModel != 0) &&\n (this.VariantLevel2obj.Level1Id != null && this.VariantLevel2obj.Level1Id != undefined && this.VariantLevel2obj.Level1Id != 0)) {\n\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add SpeedStep!');\n this.closebutton.nativeElement.click();\n this.showLoader = false;\n if ((this.VariantLevel2obj.ProductModel != null && this.VariantLevel2obj.ProductModel != undefined\n && this.VariantLevel2obj.ProductModel != 0) &&\n (this.VariantLevel2obj.Level1Id != null && this.VariantLevel2obj.Level1Id != undefined && this.VariantLevel2obj.Level1Id != 0)) {\n\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n });\n }\n });\n\n\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add {{VariantLevel2obj.Label_Variant2}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Add SpeedStep
    \n \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n\n
    \n \n
    \n \n\n
    \n
    \n SpeedStep is required
    \n
    \n Please enter alphanumeric values ​​only
    \n
    \n SpeedStep must not exceed 4 characters\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    ","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Level1Model, ProductSeries, VariantLevel2 } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n@Component({\n selector: 'app-edit-view-variant-level2',\n templateUrl: './edit-view-variant-level2.component.html',\n styleUrls: ['./edit-view-variant-level2.component.scss']\n})\nexport class EditViewVariantLevel2Component implements OnInit {\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n VariantLevel2obj: VariantLevel2 = new VariantLevel2();\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n charCode: any;\n @Input()\n showLoader: boolean = false;\n queryString: string = \"\";\n //To bind current VariantLevel2 data\n Level2Currdata: any[] = [];\n\n ProductSeries: ProductSeries = new ProductSeries();\n Level1arr: Level1Model[] = [];\n Level2arr: Level1Model[] = [];\n UserRole: any;\n isProductVariant2Editable: boolean = false;\n SpeedStepName: string = \"\";\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n\n @ViewChild('closebutton') closebutton;\n \n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductVariant2Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n if (this.route.snapshot.params[\"Id\"] == undefined) {\n this.queryString = \"Level1=\" + this.route.snapshot.params[\"Level\"];\n this.queryString += \"&ProductModel=\" + this.route.snapshot.params[\"Model\"];\n this.queryString += \"&Price=\" + this.route.snapshot.params[\"Price\"];\n this.queryString += \"&Status=\" + this.route.snapshot.params[\"Status\"];\n this.queryString += \"&IsPriceOnRequest=\" + this.route.snapshot.params[\"IsPriceOnRequest\"];\n this.getVariantLevel2IdDetailsById('GetbyProductModelAndPrice', this.queryString);\n }\n else {\n this.queryString = \"Id=\" + this.route.snapshot.params[\"Id\"];\n this.getVariantLevel2IdDetailsById('GetById', this.queryString);\n }\n\n }\n\n /*******************************************************************************\n * Get data for add variant level-1\n * ******************************************************************************/\n getVariantLevel2IdDetailsById(ActionName: string, queryString: string) {\n this.showLoader = true;\n\n this.CommonService.GetData('ProductVariantLevel2', ActionName, queryString).subscribe((data: any) => {\n this.VariantLevel2obj = data;\n this.getAllProductSeries();\n this.GetVariant1ByModelId(this.VariantLevel2obj.ProductModel);\n if (this.VariantLevel2obj.SeriesName == 'TC' || this.VariantLevel2obj.SeriesName == 'TR') {\n this.Level2arr = this.VariantLevel2obj.Level2;\n this.Level2Currdata = this.VariantLevel2obj.Level2.map(item => item.Level1.toString());\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel2obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.VariantLevel2obj.SeriesName = data.SeriesName;\n this.VariantLevel2obj.ProductSeries = data.Id;\n this.VariantLevel2obj.IsLevel2DepOnLevel1 = data.IsLevel2DepOnLevel1;\n this.VariantLevel2obj.Label_Variant1 = data.Label_Variant1;\n this.VariantLevel2obj.Label_Variant2 = data.Label_Variant2;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetVariant1ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetVariant1ByModelId\", queryString).subscribe((data: any) => {\n this.Level1arr = data;\n if (this.VariantLevel2obj.SeriesName == 'TC' || this.VariantLevel2obj.SeriesName == 'TR') {\n this.Level1arr = this.Level1arr.sort((a, b) => parseInt(a.Level1) - parseInt(b.Level1));\n }\n else {\n this.Level1arr = this.Level1arr.sort((a, b) => a.Level1.localeCompare(b.Level1));\n }\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetAllSpeedStep(StationId, ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n queryString += \"&StationId=\" + StationId;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetAllSpeedStep\", queryString).subscribe((data: any) => {\n this.Level2arr = this.VariantLevel2obj.Level2.concat(data);\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n\n /*******************************************************************************\n * End get data for add variant level-1\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Variant Level 2 - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Variant Level 2 - ECOTECH\");\n }\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel2obj.Level2Price = 0;\n }\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n OpenPopupAddSpeedStep() {\n this.SpeedStepName = \"\";\n\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n DeleteStation() {\n this.VariantLevel2obj.Level2 = [];\n for (var i = 0; i < this.Level2Currdata.length; i++) {\n var obj = this.Level2arr.find(x => x.Level1 == this.Level2Currdata[i])\n this.VariantLevel2obj.Level2.push(obj);\n }\n this.VariantLevel2obj.Level2 = this.VariantLevel2obj.Level2.filter(x => x.Id != null);\n if (this.VariantLevel2obj.Level2.length == 0) {\n this.toastr.warning(\"This \" + this.VariantLevel2obj.Label_Variant2 + \" does not exist for \" + this.VariantLevel2obj.ModelName + \" product model\")\n this.VariantLevel2obj.Level2 = [];\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this \" + this.VariantLevel2obj.Label_Variant2 + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel2', 'DeleteSpeedStep', this.VariantLevel2obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel2obj.Label_Variant2 + ' deleted successfully!');\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(\"Failed to delete this \" + this.VariantLevel2obj.Label_Variant2 + \" because it has some dependency!\");\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to delete ' + this.VariantLevel2obj.Label_Variant2 + '!');\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to delete ' + this.VariantLevel2obj.Label_Variant2 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n });\n }\n else {\n this.VariantLevel2obj.Level2 = [];\n }\n });\n }\n }\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this \" + this.VariantLevel2obj.Label_Variant2 + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n if (this.VariantLevel2obj.SeriesName == 'TC' || this.VariantLevel2obj.SeriesName == 'TR') {\n this.VariantLevel2obj.Level2 = [];\n }\n for (var i = 0; i < this.Level2Currdata.length; i++) {\n var obj = this.Level2arr.find(x => x.Level1 == this.Level2Currdata[i])\n this.VariantLevel2obj.Level2.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel2', 'Update', this.VariantLevel2obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel2obj.Label_Variant2 + ' updated successfully!');\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.VariantLevel2obj.Label_Variant2 + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update ' + this.VariantLevel2obj.Label_Variant2 + '!');\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update ' + this.VariantLevel2obj.Label_Variant2 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel2', this.VariantLevel2obj.ProductSeries, this.VariantLevel2obj.Label_Variant1, this.VariantLevel2obj.Label_Variant2]);\n });\n }\n });\n }\n\n AddSpeedStep(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this SpeedStep ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"SpeedStepName=\" + this.SpeedStepName;\n this.CommonService.PostData('ProductVariantLevel2', 'AddSpeedStep', null, queryString).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('SpeedStep added successfully!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel2obj.ProductModel != null && this.VariantLevel2obj.ProductModel != undefined\n && this.VariantLevel2obj.ProductModel != 0) &&\n (this.VariantLevel2obj.Level1Id != null && this.VariantLevel2obj.Level1Id != undefined && this.VariantLevel2obj.Level1Id != 0)) {\n\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('SpeedStep already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add SpeedStep!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel2obj.ProductModel != null && this.VariantLevel2obj.ProductModel != undefined\n && this.VariantLevel2obj.ProductModel != 0) &&\n (this.VariantLevel2obj.Level1Id != null && this.VariantLevel2obj.Level1Id != undefined && this.VariantLevel2obj.Level1Id != 0)) {\n\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add SpeedStep!');\n this.closebutton.nativeElement.click();\n this.showLoader = false;\n if ((this.VariantLevel2obj.ProductModel != null && this.VariantLevel2obj.ProductModel != undefined\n && this.VariantLevel2obj.ProductModel != 0) &&\n (this.VariantLevel2obj.Level1Id != null && this.VariantLevel2obj.Level1Id != undefined && this.VariantLevel2obj.Level1Id != 0)) {\n\n this.GetAllSpeedStep(this.VariantLevel2obj.Level1Id, this.VariantLevel2obj.ProductModel);\n }\n });\n }\n });\n\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant2Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} {{VariantLevel2obj.Label_Variant2}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Add SpeedStep
    \n \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n \n
    \n\n
    \n \n
    \n \n \n
    \n
    \n SpeedStep is required
    \n
    \n Please enter alphanumeric values ​​only
    \n
    \n SpeedStep must not exceed 4 characters\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    ","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Level1Model, ProductSeries, VariantLevel2 } from 'src/app/Model/ProductModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-variant-level2-details',\n templateUrl: './variant-level2-details.component.html',\n styleUrls: ['./variant-level2-details.component.scss']\n})\nexport class VariantLevel2DetailsComponent implements OnInit {\n displayedColumns: string[] = ['SeriesName', 'ModelName', 'Level1', 'Level1Price', 'otherType', 'Level2', 'Level2Price', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n SeriesName: string = \"\";\n UserRole: any;\n isProductVariant2Editable: boolean = false;\n isVariant2DependsOnVariant1: boolean = false;\n ProductSeriesArr: ProductSeries = new ProductSeries();\n VariantDrpdown: string = \"\";\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n ProductSeriesVariant1Label: string = '';\n ProductSeriesVariant2Label: string = '';\n ProductSeriesId: number;\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private router: Router, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductVariant2Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.route.params.subscribe(params => {\n this.ProductSeriesVariant1Label = params['Variant1'];\n this.ProductSeriesVariant2Label = params['Variant2'];\n this.ProductSeriesId = params['Seriesid'];\n this.pageSize = 5;\n this.pageNumber = 1;\n this.pageIndex = this.pageNumber - 1;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.SearchText = \"\";\n this.VariantDrpdown = \"Variant2\";\n this.GetAllVariantLevel2Details();\n this.getAllProductSeries();\n });\n\n\n }\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllVariantLevel2Details() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllVariantLevel2Details() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&ProductSeriesId=\" + this.ProductSeriesId; //Seires Id\n\n this.CommonService.GetData('ProductVariantLevel2', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n if (this.ColumnName == 'Level1Price') {\n var IsPriceOnRequestList: VariantLevel2[] = [];\n var IsNotPriceOnRequestList: VariantLevel2[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.Level1IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.Level1IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else if (this.ColumnName == 'Level2Price') {\n var IsPriceOnRequestList: VariantLevel2[] = [];\n var IsNotPriceOnRequestList: VariantLevel2[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else {\n this.dataSource = new MatTableDataSource(this.data);\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.ProductSeriesArr = data;\n this.SeriesName = data.SeriesName;\n this.isVariant2DependsOnVariant1 = data.IsLevel2DepOnLevel1;\n this.ProductSeriesVariant1Label = data.Label_Variant1;\n this.ProductSeriesVariant2Label = data.Label_Variant2;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllVariantLevel2Details();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllVariantLevel2Details();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllVariantLevel2Details();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1, this.ProductSeriesArr.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant2, this.ProductSeriesArr.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant3, this.ProductSeriesArr.Label_Variant4]);\n }\n }\n\n\n UpdateVariantLevel2StatusById(Level1Data: VariantLevel2, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this \" + this.ProductSeriesVariant2Label + ' ?',\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n this.CommonService.PostData('ProductVariantLevel2', 'UpdateStatus', Level1Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariant2Label + \" deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this \" + this.ProductSeriesVariant2Label + \" because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate \" + this.ProductSeriesVariant2Label + \"!\");\n }\n this.GetAllVariantLevel2Details();\n }, error => {\n this.toastr.error(\"Failed to deactivate \" + this.ProductSeriesVariant2Label + \"!\");\n this.GetAllVariantLevel2Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel2Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this \" + this.ProductSeriesVariant2Label + \"?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel2', 'UpdateStatus', Level1Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariant2Label + \" activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate \" + this.ProductSeriesVariant2Label + \"!\");\n }\n this.GetAllVariantLevel2Details();\n }, error => {\n this.toastr.error(\"Failed to activate \" + this.ProductSeriesVariant2Label + \"!\");\n this.GetAllVariantLevel2Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel2Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant2Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n\n}\n\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{ProductSeriesVariant2Label}} Listing\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ProductSeriesArr.SeriesName}}
    \n \n \n Product Model\n {{ProductSeriesArr.Label_Variant1}}\n \n {{ProductSeriesArr.Label_Variant2}}\n {{ProductSeriesArr.Label_Variant3}}\n {{ProductSeriesArr.Label_Variant4}}\n Product Options\n \n \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n\n\n
    Product Series {{row.SeriesName}} Product Model {{row.ModelName}} \n {{ProductSeriesVariant1Label}} {{row.Level1}} \n {{ProductSeriesVariant1Label + \" - Price\"}} (€){{row.Level1IsPriceOnRequest ? 'Price on Request':\n row.Level1Price | indianCurrency}}\n {{ProductSeriesVariant2Label}}\n \n {{item.Level1}}{{i === row.Level2.length -1? '': ',' }}\n \n {{ProductSeriesVariant2Label}} \n {{row.otherType}}\n {{ProductSeriesVariant2Label + \" - Price\"}} (€) {{row.IsPriceOnRequest ? 'Price\n on Request': row.Level2Price |indianCurrency}} Action \n \n \n \n \n \n     \n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Level1Model, ProductSeries, Station, VariantLevel3 } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-variant-level3',\n templateUrl: './add-variant-level3.component.html',\n styleUrls: ['./add-variant-level3.component.scss']\n})\nexport class AddVariantLevel3Component implements OnInit {\n ProductSeriesVariant2Label: string = '';\n VariantLevel3obj: VariantLevel3 = new VariantLevel3();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductSeries: ProductSeries = new ProductSeries();\n ProductModel: any[] = [];\n //To Stored Api data of VariantLevel1 and VariantLevel2 \n Level2arr: Level1Model[] = [];\n Level3arr: Level1Model[] = []; // only for TC and TR\n Variant1Arr: any[] = [];\n\n //To bind current VariantLevel3 data\n Level3Currdata: any[] = [];\n PositionName: string=\"\";\n @ViewChild('closebutton') closebutton;\n \n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.VariantLevel3obj.ProductSeries = this.route.snapshot.params[\"Seriesid\"];\n this.getAllProductSeries();\n this.GetProductModelById(this.VariantLevel3obj.ProductSeries);\n }\n\n /*******************************************************************************\n * Get data for Variant Level 3\n * ******************************************************************************/\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel3obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.VariantLevel3obj.SeriesName = data.SeriesName;\n this.VariantLevel3obj.ProductSeries = data.Id;\n this.VariantLevel3obj.IsLevel3DepOnLevel2 = data.IsLevel3DepOnLevel2;\n this.VariantLevel3obj.IsLevel2DepOnLevel1 = data.IsLevel2DepOnLevel1;\n this.VariantLevel3obj.Label_Variant1 = data.Label_Variant1;\n this.VariantLevel3obj.Label_Variant2 = data.Label_Variant2;\n this.VariantLevel3obj.Label_Variant3 = data.Label_Variant3;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.CommonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetAllPosition(ModelId: number)//For TC and TC\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel3\", \"GetAllPosition\", queryString).subscribe((data: any) => {\n this.Level3arr = data;\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n GetVariant2ByModelId(ModelId: number)// other than TC and TR\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByModelId\", queryString).subscribe((data: any) => {\n this.Level2arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetVariant1ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetVariant1ByModelId\", queryString).subscribe((data: any) => {\n this.Variant1Arr = data;\n \n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n GetVariant2ByVariant1Id(Variant1: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Variant1=\" + Variant1;\n queryString += \"&ProductSeriesId=\" + this.VariantLevel3obj.ProductSeries;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByVariant1Id\", queryString).subscribe((data: any) => {\n this.Level2arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n /*******************************************************************************\n * End get data for Variant Level 3\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onModelSelected(event: any) {\n if (this.VariantLevel3obj.SeriesName == 'TC' || this.VariantLevel3obj.SeriesName == 'TR') {\n this.Level3Currdata = [];\n this.Level3arr = [];\n this.GetAllPosition(event.target.value);\n }\n else {\n this.VariantLevel3obj.Level2Id = null;\n this.VariantLevel3obj.Level1Id = null;\n this.Level2arr = [];\n if(this.VariantLevel3obj.IsLevel2DepOnLevel1 && this.VariantLevel3obj.IsLevel3DepOnLevel2)\n {\n this.GetVariant1ByModelId(event.target.value)\n }\n else if(this.VariantLevel3obj.IsLevel2DepOnLevel1 && !this.VariantLevel3obj.IsLevel3DepOnLevel2)\n {\n this.GetVariant1ByModelId(event.target.value)\n \n }\n else if(this.VariantLevel3obj.IsLevel3DepOnLevel2 && !this.VariantLevel3obj.IsLevel2DepOnLevel1){\n this.GetVariant2ByModelId(event.target.value);\n }\n \n \n }\n\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel3obj.Level3Price = 0;\n }\n }\n\n onVariant1Selected(event: any)\n {\n this.VariantLevel3obj.Level2Id = null;\n this.GetVariant2ByVariant1Id(event.target.value);\n }\n\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this \" + this.VariantLevel3obj.Label_Variant3 + \" ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n for (var i = 0; i < this.Level3Currdata.length; i++) {\n var obj = { Id: null, Level1: this.Level3Currdata[i] }\n this.VariantLevel3obj.Level3.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel3', 'Add', this.VariantLevel3obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel3obj.Label_Variant3 + ' added successfully!');\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.VariantLevel3obj.Label_Variant3 + ' already exists!');\n this.VariantLevel3obj.Level3 = [];\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to ' + this.VariantLevel3obj.Label_Variant3 + '!');\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add ' + this.VariantLevel3obj.Label_Variant3 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n });\n }\n });\n\n }\n\n OpenPopupAddPosition()\n {\n this.PositionName = \"\";\n }\n\n AddPosition(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this Position ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"PositionName=\" + this.PositionName;\n this.CommonService.PostData('ProductVariantLevel3', 'AddPosition', null, queryString).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('SpeedStep added successfully!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel3obj.ProductModel != null && this.VariantLevel3obj.ProductModel != undefined\n && this.VariantLevel3obj.ProductModel != 0)) {\n\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Position already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add Position!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel3obj.ProductModel != null && this.VariantLevel3obj.ProductModel != undefined\n && this.VariantLevel3obj.ProductModel != 0)) {\n\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add Position!');\n this.closebutton.nativeElement.click();\n this.showLoader = false;\n if ((this.VariantLevel3obj.ProductModel != null && this.VariantLevel3obj.ProductModel != undefined\n && this.VariantLevel3obj.ProductModel != 0)) {\n\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n });\n }\n });\n\n\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add {{VariantLevel3obj.Label_Variant3}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Add Position
    \n \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n\n
    \n \n
    \n \n\n
    \n
    \n Position is required
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    ","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Level1Model, ProductSeries, VariantLevel3 } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-variant-level3',\n templateUrl: './edit-view-variant-level3.component.html',\n styleUrls: ['./edit-view-variant-level3.component.scss']\n})\nexport class EditViewVariantLevel3Component implements OnInit {\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n\n VariantLevel3obj: VariantLevel3 = new VariantLevel3();\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n charCode: any;\n @Input()\n showLoader: boolean = false;\n queryString: string = \"\";\n //To bind current VariantLevel3 data\n Level3Currdata: any[] = [];\n Variant1Arr: any[] = [];\n ProductSeries: ProductSeries = new ProductSeries();\n Level3arr: Level1Model[] = [];\n Level2arr: Level1Model[] = [];\n UserRole: any;\n isProductVariant3Editable: boolean = false;\n PositionName: string=\"\";\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n @ViewChild('closebutton') closebutton;\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n // this.isProductVariant3Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n if (this.route.snapshot.params[\"id\"] == undefined) {\n this.queryString = \"ProductModel=\" + this.route.snapshot.params[\"Model\"];\n this.queryString += \"&Price=\" + this.route.snapshot.params[\"Price\"];\n this.queryString += \"&Status=\" + this.route.snapshot.params[\"Status\"];\n this.queryString += \"&IsPriceOnRequest=\" + this.route.snapshot.params[\"IsPriceOnRequest\"];\n this.getVariantLevel3IdDetailsById('GetbyProductModelAndPrice', this.queryString);\n }\n else {\n this.queryString = \"Id=\" + this.route.snapshot.params[\"id\"];\n this.getVariantLevel3IdDetailsById('GetById', this.queryString);\n }\n \n }\n\n /*******************************************************************************\n * Get data for add variant level-1\n * ******************************************************************************/\n getVariantLevel3IdDetailsById(ActionName: string, queryString: string) {\n this.showLoader = true;\n\n this.CommonService.GetData('ProductVariantLevel3', ActionName, queryString).subscribe((data: any) => {\n this.VariantLevel3obj = data;\n this.getAllProductSeries();\n \n\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel3obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n \n this.VariantLevel3obj.IsLevel3DepOnLevel2 = data.IsLevel3DepOnLevel2; \n this.VariantLevel3obj.IsLevel2DepOnLevel1 = data.IsLevel2DepOnLevel1;\n this.VariantLevel3obj.SeriesName = data.SeriesName;\n this.VariantLevel3obj.ProductSeries = data.Id;\n this.VariantLevel3obj.Label_Variant1 = data.Label_Variant1;\n this.VariantLevel3obj.Label_Variant2 = data.Label_Variant2;\n this.VariantLevel3obj.Label_Variant3 = data.Label_Variant3;\n\n\n if (this.VariantLevel3obj.SeriesName == 'TC' || this.VariantLevel3obj.SeriesName == 'TR') {\n this.Level3arr = this.VariantLevel3obj.Level3;\n this.Level3Currdata = this.VariantLevel3obj.Level3.map(item => item.Level1.toString());\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n else {\n if(this.VariantLevel3obj.IsLevel2DepOnLevel1 && this.VariantLevel3obj.IsLevel3DepOnLevel2)\n {\n this.GetVariant1ByModelId(this.VariantLevel3obj.ProductModel);\n if(this.VariantLevel3obj.Level1Id!=null)\n {\n this.GetVariant2ByVariant1Id(this.VariantLevel3obj.Level1Id);\n }\n \n }\n else if(this.VariantLevel3obj.IsLevel2DepOnLevel1 && !this.VariantLevel3obj.IsLevel3DepOnLevel2)\n {\n this.GetVariant1ByModelId(this.VariantLevel3obj.ProductModel);\n \n }\n else if(this.VariantLevel3obj.IsLevel3DepOnLevel2 && !this.VariantLevel3obj.IsLevel2DepOnLevel1){\n this.GetVariant2ByModelId(this.VariantLevel3obj.ProductModel);\n }\n\n\n\n // if( this.VariantLevel3obj.IsLevel3DepOnLevel2)\n // {\n // this.GetVariant1ByModelId(this.VariantLevel3obj.ProductModel);\n // this.GetVariant2ByVariant1Id(this.VariantLevel3obj.Level1Id);\n // }\n // else{\n // this.GetVariant2ByModelId(this.VariantLevel3obj.ProductModel);\n // }\n \n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetVariant2ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByModelId\", queryString).subscribe((data: any) => {\n this.Level2arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetAllPosition(ModelId: number)//For TC and TC\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel3\", \"GetAllPosition\", queryString).subscribe((data: any) => {\n this.Level3arr = this.VariantLevel3obj.Level3.concat(data);\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n\n GetVariant1ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetVariant1ByModelId\", queryString).subscribe((data: any) => {\n this.Variant1Arr = data;\n \n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n GetVariant2ByVariant1Id(Variant1: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Variant1=\" + Variant1;\n queryString += \"&ProductSeriesId=\" + this.VariantLevel3obj.ProductSeries;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByVariant1Id\", queryString).subscribe((data: any) => {\n this.Level2arr = data;\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n\n /*******************************************************************************\n * End get data for add variant level-1\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Variant Level 3 - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Variant Level 3 - ECOTECH\");\n }\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel3obj.Level3Price = 0;\n }\n }\n\n onVariant1Selected(event: any)\n {\n this.VariantLevel3obj.Level2Id = null;\n this.GetVariant2ByVariant1Id(event.target.value);\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n DeleteDP() {\n this.VariantLevel3obj.Level3 = [];\n for (var i = 0; i < this.Level3Currdata.length; i++) {\n var obj = this.Level3arr.find(x => x.Level1 == this.Level3Currdata[i])\n this.VariantLevel3obj.Level3.push(obj);\n }\n this.VariantLevel3obj.Level3 = this.VariantLevel3obj.Level3.filter(x => x.Id != null);\n if (this.VariantLevel3obj.Level3.length == 0) {\n this.toastr.warning(\"This \" + this.VariantLevel3obj.Label_Variant3 + \" does not exist for \" + this.VariantLevel3obj.ModelName + \" product model\")\n this.VariantLevel3obj.Level3 = [];\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this \" + this.VariantLevel3obj.Label_Variant3 + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel3', 'DeletePosition', this.VariantLevel3obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel3obj.Label_Variant3 + ' deleted successfully!');\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(\"Failed to delete this \" + this.VariantLevel3obj.Label_Variant3 + \" because it has some dependency!\");\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to delete ' + this.VariantLevel3obj.Label_Variant3 + '!');\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to delete ' + this.VariantLevel3obj.Label_Variant3 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n });\n }\n else {\n this.VariantLevel3obj.Level3 = [];\n }\n });\n }\n }\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this \" + this.VariantLevel3obj.Label_Variant3 + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n if (this.VariantLevel3obj.SeriesName == 'TC' || this.VariantLevel3obj.SeriesName == 'TR') {\n this.VariantLevel3obj.Level3 = [];\n }\n\n for (var i = 0; i < this.Level3Currdata.length; i++) {\n var obj = this.Level3arr.find(x => x.Level1 == this.Level3Currdata[i]);\n this.VariantLevel3obj.Level3.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel3', 'Update', this.VariantLevel3obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel3obj.Label_Variant3 + ' updated successfully!');\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.VariantLevel3obj.Label_Variant3 + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update ' + this.VariantLevel3obj.Label_Variant3 + '!');\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update ' + this.VariantLevel3obj.Label_Variant3 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel3', this.VariantLevel3obj.ProductSeries, this.VariantLevel3obj.Label_Variant2, this.VariantLevel3obj.Label_Variant3]);\n });\n }\n });\n }\n OpenPopupAddPosition()\n {\n this.PositionName = \"\";\n }\n AddPosition(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this Position ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"PositionName=\" + this.PositionName;\n this.CommonService.PostData('ProductVariantLevel3', 'AddPosition', null, queryString).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('SpeedStep added successfully!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel3obj.ProductModel != null && this.VariantLevel3obj.ProductModel != undefined\n && this.VariantLevel3obj.ProductModel != 0)) {\n\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('Position already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add Position!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel3obj.ProductModel != null && this.VariantLevel3obj.ProductModel != undefined\n && this.VariantLevel3obj.ProductModel != 0)) {\n\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add Position!');\n this.closebutton.nativeElement.click();\n this.showLoader = false;\n if ((this.VariantLevel3obj.ProductModel != null && this.VariantLevel3obj.ProductModel != undefined\n && this.VariantLevel3obj.ProductModel != 0)) {\n\n this.GetAllPosition(this.VariantLevel3obj.ProductModel);\n }\n });\n }\n });\n\n\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant3Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} {{VariantLevel3obj.Label_Variant3}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Add Position
    \n \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n\n
    \n \n
    \n \n\n
    \n
    \n Position is required
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    ","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Level1Model, ProductSeries, VariantLevel3 } from 'src/app/Model/ProductModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-variant-level3-details',\n templateUrl: './variant-level3-details.component.html',\n styleUrls: ['./variant-level3-details.component.scss']\n})\nexport class VariantLevel3DetailsComponent implements OnInit {\n displayedColumns: string[] = ['SeriesName', 'ModelName','Level1Name', 'Level2', 'Level2Price', 'otherType', 'Level3', 'Level3Price', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n SeriesName: string = \"\";\n isVariant3DependsOnVariant2: boolean = false;\n isVariant2DependsOnVariant1: boolean = false;\n UserRole: any;\n isProductVariant3Editable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n ProductSeriesVariant1Label: string = '';\n ProductSeriesVariant2Label: string = '';\n ProductSeriesVariant3Label: string = '';\n ProductSeriesId: number;\n showLoader: boolean;\n data: any[] = [];\n ProductSeriesArr: ProductSeries = new ProductSeries();\n VariantDrpdown: string = \"\";\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private router: Router, private route: ActivatedRoute, private titleService: Title,\n private accessservice: AccessPermissionService, private appConfigService : AppConfigService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductVariant3Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.route.params.subscribe(params => {\n this.ProductSeriesVariant2Label = params['Variant2'];\n this.ProductSeriesVariant3Label = params['Variant3'];\n this.ProductSeriesId = params['Seriesid'];\n this.pageSize = 5;\n this.pageNumber = 1;\n this.pageIndex = this.pageNumber - 1;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.SearchText = \"\";\n this.VariantDrpdown = \"Variant3\";\n this.GetAllVariantLevel3Details();\n this.getAllProductSeries();\n });\n\n\n }\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllVariantLevel3Details() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllVariantLevel3Details() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&ProductSeriesId=\" + this.ProductSeriesId; //Seires Id\n\n this.CommonService.GetData('ProductVariantLevel3', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n if (this.ColumnName == 'Level2Price') {\n var IsPriceOnRequestList: VariantLevel3[] = [];\n var IsNotPriceOnRequestList: VariantLevel3[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.Level2IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.Level2IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else if (this.ColumnName == 'Level3Price') {\n var IsPriceOnRequestList: VariantLevel3[] = [];\n var IsNotPriceOnRequestList: VariantLevel3[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else {\n this.dataSource = new MatTableDataSource(this.data);\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.ProductSeriesArr = data;\n this.SeriesName = data.SeriesName;\n this.isVariant3DependsOnVariant2 = data.IsLevel3DepOnLevel2;\n this.isVariant2DependsOnVariant1 = data.IsLevel2DepOnLevel1;\n this.ProductSeriesVariant2Label = data.Label_Variant2;\n this.ProductSeriesVariant3Label = data.Label_Variant3;\n this.ProductSeriesVariant1Label = data.Label_Variant1;\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllVariantLevel3Details();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllVariantLevel3Details();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllVariantLevel3Details();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1, this.ProductSeriesArr.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant2, this.ProductSeriesArr.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant3, this.ProductSeriesArr.Label_Variant4]);\n }\n }\n\n UpdateVariantLevel3StatusById(Level3Data: VariantLevel3, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this \" + this.ProductSeriesVariant3Label + ' ?',\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n this.CommonService.PostData('ProductVariantLevel3', 'UpdateStatus', Level3Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariant3Label + \" deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this \" + this.ProductSeriesVariant3Label + \" because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate \" + this.ProductSeriesVariant3Label + \"!\");\n }\n this.GetAllVariantLevel3Details();\n }, error => {\n this.toastr.error(\"Failed to deactivate \" + this.ProductSeriesVariant3Label + \"!\");\n this.GetAllVariantLevel3Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel3Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this \" + this.ProductSeriesVariant3Label + \"?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel3', 'UpdateStatus', Level3Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariant3Label + \" activated successfully!\");\n }\n else {\n this.toastr.info(\"Failed to activate \" + this.ProductSeriesVariant3Label + \"!\");\n }\n this.GetAllVariantLevel3Details();\n }, error => {\n this.toastr.error(\"Failed to activate \" + this.ProductSeriesVariant3Label + \"!\");\n this.GetAllVariantLevel3Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel3Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant3Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{ProductSeriesVariant3Label}} Listing\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ProductSeriesArr.SeriesName}}
    \n \n \n Product Model\n {{ProductSeriesArr.Label_Variant1}}\n \n {{ProductSeriesArr.Label_Variant2}}\n {{ProductSeriesArr.Label_Variant3}}\n {{ProductSeriesArr.Label_Variant4}}\n Product Options\n \n \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n\n\n \n \n\n\n
    Product Series {{row.SeriesName}} Product Model {{row.ModelName}} {{ProductSeriesVariant1Label}} \n {{row.Level1Name}} {{ProductSeriesVariant2Label}} \n {{row.Level2}} {{ProductSeriesVariant2Label + \" - Price\"}}\n (€) \n {{row.Level2IsPriceOnRequest ? 'Price on Request': row.Level2Price |indianCurrency}}\n {{ProductSeriesVariant3Label}}\n \n {{item.Level1}}{{i === row.Level3.length -1 ? '': ',' }}\n \n {{ProductSeriesVariant3Label}} \n {{row.otherType}}\n {{ProductSeriesVariant3Label + \" - Price\"}} (€) {{row.IsPriceOnRequest ? 'Price\n on Request' : row.Level3Price |indianCurrency}} Action \n \n \n \n \n \n     \n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Level1Model, ProductSeries, Station, VariantLevel4 } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-add-variant-level4',\n templateUrl: './add-variant-level4.component.html',\n styleUrls: ['./add-variant-level4.component.scss']\n})\nexport class AddVariantLevel4Component implements OnInit {\n VariantLevel4obj: VariantLevel4 = new VariantLevel4();\n charCode: any;\n @Input()\n showLoader: boolean = false;\n ProductSeries: ProductSeries = new ProductSeries();\n ProductModel: any[] = [];\n //To Stored Api data of VariantLevel1 and VariantLevel2 \n Level3arr: Level1Model[] = [];\n Level4arr: Level1Model[] = []; // only for TC and TR\n Variant1arr: any[] = [];\n Variant2arr: any[] = [];\n //To bind current VariantLevel4 data\n Level4Currdata: any[] = [];\n MountingPositionName: string=\"\";\n @ViewChild('closebutton') closebutton;\n\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,\n private appConfigService : AppConfigService) { }\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.VariantLevel4obj.ProductSeries = this.route.snapshot.params[\"Seriesid\"];\n this.getAllProductSeries();\n this.GetProductModelById(this.VariantLevel4obj.ProductSeries);\n }\n\n /*******************************************************************************\n * Get data for Variant Level 3\n * ******************************************************************************/\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel4obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.VariantLevel4obj.SeriesName = data?.SeriesName;\n this.VariantLevel4obj.ProductSeries = data?.Id;\n this.VariantLevel4obj.IsLevel2DepOnLevel1 = data.IsLevel2DepOnLevel1;\n this.VariantLevel4obj.IsLevel3DepOnLevel2 = data.IsLevel3DepOnLevel2;\n this.VariantLevel4obj.IsLevel4DepOnLevel3 = data.IsLevel4DepOnLevel3;\n this.VariantLevel4obj.Label_Variant1 =data.Label_Variant1;\n this.VariantLevel4obj.Label_Variant2 =data.Label_Variant2;\n this.VariantLevel4obj.Label_Variant3 = data.Label_Variant3;\n this.VariantLevel4obj.Label_Variant4 = data.Label_Variant4;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetProductModelById(SeriesId: number) {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"SeriesId=\" + SeriesId;\n this.CommonService.GetData(\"ProductModel\", \"GetProductModelById\", queryString).subscribe((data: any) => {\n this.ProductModel = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetAllMountingPosition(ModelId: number)//For TC and TC\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel4\", \"GetAllMountingPosition\", queryString).subscribe((data: any) => {\n this.Level4arr = data;\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n GetVariant3ByModelId(ModelId: number)// other than TC and TR\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel3\", \"GetVariant3ByModelId\", queryString).subscribe((data: any) => {\n this.Level3arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetVariant1ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetVariant1ByModelId\", queryString).subscribe((data: any) => {\n this.Variant1arr = data;\n this.Variant1arr = this.Variant1arr.sort((a, b) => a.Level1.localeCompare(b.Level1));\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n \n GetVariant2ByVariant1Id(Variant1: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Variant1=\" + Variant1;\n queryString += \"&ProductSeriesId=\" + this.VariantLevel4obj.ProductSeries;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByVariant1Id\", queryString).subscribe((data: any) => {\n this.Variant2arr = data;\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n GetVariant3ByVariant2Id(Variant2: number)\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Variant2=\" + Variant2;\n queryString += \"&ProductSeriesId=\" + this.VariantLevel4obj.ProductSeries;\n this.CommonService.GetData(\"ProductVariantLevel3\", \"GetVariant3ByVariant2Id\", queryString).subscribe((data: any) => {\n this.Level3arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n GetVariant2ByModelId(ModelId: number)// other than TC and TR\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByModelId\", queryString).subscribe((data: any) => {\n this.Variant2arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n /*******************************************************************************\n * End get data for Variant Level 3\n * ******************************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n onModelSelected(event: any) {\n if (this.VariantLevel4obj.SeriesName == 'TC' || this.VariantLevel4obj.SeriesName == 'TR') {\n this.Level4Currdata = [];\n this.Level4arr = [];\n this.GetAllMountingPosition(event.target.value);\n }\n else {\n this.VariantLevel4obj.Level3Id = null;\n this.Level3arr = [];\n if(this.VariantLevel4obj.IsLevel4DepOnLevel3 && this.VariantLevel4obj.IsLevel3DepOnLevel2 && this.VariantLevel4obj.IsLevel2DepOnLevel1)\n {\n this.VariantLevel4obj.Level1Id = null;\n this.VariantLevel4obj.Level2Id = null;\n this.GetVariant1ByModelId(event.target.value);\n }\n else if(this.VariantLevel4obj.IsLevel4DepOnLevel3 && this.VariantLevel4obj.IsLevel3DepOnLevel2 && !this.VariantLevel4obj.IsLevel2DepOnLevel1)\n {\n this.GetVariant2ByModelId(event.target.value);\n }\n else{\n this.GetVariant3ByModelId(event.target.value);\n }\n \n }\n\n }\n\n onVariant1Selected(event: any)\n {\n this.VariantLevel4obj.Level2Id = null;\n this.VariantLevel4obj.Level3Id = null;\n this.GetVariant2ByVariant1Id(event.target.value);\n }\n\n onVariant2Selected(event: any)\n {\n this.VariantLevel4obj.Level3Id = null;\n this.GetVariant3ByVariant2Id(event.target.value);\n }\n\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel4obj.Level4Price = 0;\n }\n }\n\n onSubmit(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this \" + this.VariantLevel4obj.Label_Variant4 + \" ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n for (var i = 0; i < this.Level4Currdata.length; i++) {\n var obj = { Id: null, Level1: this.Level4Currdata[i] }\n this.VariantLevel4obj.Level4.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel4', 'Add', this.VariantLevel4obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel4obj.Label_Variant4 + ' added successfully!');\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.VariantLevel4obj.Label_Variant4 + ' already exists!');\n this.VariantLevel4obj.Level4 = [];\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to ' + this.VariantLevel4obj.Label_Variant4 + '!');\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add ' + this.VariantLevel4obj.Label_Variant4 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n });\n }\n });\n\n }\n OpenPopupAddMountingPosition()\n {\n this.MountingPositionName=\"\";\n }\n\n AddMountingPosition(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this Mounting Position ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"MountingPositionName=\" + this.MountingPositionName;\n this.CommonService.PostData('ProductVariantLevel4', 'AddMountingPosition', null, queryString).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('MountingPosition added successfully!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel4obj.ProductModel != null && this.VariantLevel4obj.ProductModel != undefined\n && this.VariantLevel4obj.ProductModel != 0)) {\n\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel );\n }\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('MountingPosition already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add MountingPosition!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel4obj.ProductModel != null && this.VariantLevel4obj.ProductModel != undefined\n && this.VariantLevel4obj.ProductModel != 0) ) {\n\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel );\n }\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add MountingPosition!');\n this.closebutton.nativeElement.click();\n this.showLoader = false;\n if ((this.VariantLevel4obj.ProductModel != null && this.VariantLevel4obj.ProductModel != undefined\n && this.VariantLevel4obj.ProductModel != 0)) {\n\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel );\n }\n });\n }\n });\n\n\n }\n\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Add {{VariantLevel4obj.Label_Variant4}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Add MountingPosition
    \n \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n\n
    \n \n
    \n \n\n
    \n
    \n MountingPosition is required
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    ","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Level1Model, ProductSeries, VariantLevel4 } from 'src/app/Model/ProductModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-edit-view-variant-level4',\n templateUrl: './edit-view-variant-level4.component.html',\n styleUrls: ['./edit-view-variant-level4.component.scss']\n})\nexport class EditViewVariantLevel4Component implements OnInit {\n constructor(private router: Router, private route: ActivatedRoute, private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) { }\n \n VariantLevel4obj: VariantLevel4 = new VariantLevel4();\n isEditable: boolean = true;\n FormStatus: string = \"View\";\n charCode: any;\n @Input()\n showLoader: boolean = false;\n queryString: string = \"\";\n //To bind current VariantLevel4 data\n Level4Currdata: any[] = [];\n Variant1arr: any[] = [];\n Variant2arr: any[] = [];\n\n ProductSeries: ProductSeries = new ProductSeries();\n Level3arr: Level1Model[] = [];\n Level4arr: Level1Model[] = [];\n UserRole: any;\n isProductVariant4Editable: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n MountingPositionName:string=\"\";\n @ViewChild (\"closebutton\") closebutton;\n\n ngOnInit(): void {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductVariant4Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n if (this.route.snapshot.params[\"id\"] == undefined) {\n this.queryString = \"ProductModel=\" + this.route.snapshot.params[\"Model\"];\n this.queryString += \"&Price=\" + this.route.snapshot.params[\"Price\"];\n this.queryString += \"&Status=\" + this.route.snapshot.params[\"Status\"];\n this.queryString += \"&IsPriceOnRequest=\" + this.route.snapshot.params[\"IsPriceOnRequest\"];\n this.getVariantLevel4IdDetailsById('GetbyProductModelAndPrice', this.queryString);\n }\n else {\n this.queryString = \"Id=\" + this.route.snapshot.params[\"id\"];\n this.getVariantLevel4IdDetailsById('GetById', this.queryString);\n }\n }\n\n /*******************************************************************************\n * Get data for add variant level-1\n * ******************************************************************************/\n getVariantLevel4IdDetailsById(ActionName: string, queryString: string) {\n this.showLoader = true;\n\n this.CommonService.GetData('ProductVariantLevel4', ActionName, queryString).subscribe((data: any) => {\n this.VariantLevel4obj = data;\n this.getAllProductSeries();\n \n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.VariantLevel4obj.ProductSeries;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.VariantLevel4obj.SeriesName = data.SeriesName;\n this.VariantLevel4obj.ProductSeries = data.Id;\n this.VariantLevel4obj.IsLevel2DepOnLevel1 = data.IsLevel2DepOnLevel1;\n this.VariantLevel4obj.IsLevel3DepOnLevel2 = data.IsLevel3DepOnLevel2;\n this.VariantLevel4obj.IsLevel4DepOnLevel3 = data.IsLevel4DepOnLevel3;\n this.VariantLevel4obj.Label_Variant1 =data.Label_Variant1;\n this.VariantLevel4obj.Label_Variant2 =data.Label_Variant2;\n this.VariantLevel4obj.Label_Variant3 = data.Label_Variant3;\n this.VariantLevel4obj.Label_Variant4 = data.Label_Variant4;\n if (this.VariantLevel4obj.SeriesName == 'TC' || this.VariantLevel4obj.SeriesName == 'TR') {\n this.Level4arr = this.VariantLevel4obj.Level4;\n this.Level4Currdata = this.VariantLevel4obj.Level4.map(item => item.Level1.toString());\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel);\n }\n else {\n if(this.VariantLevel4obj.IsLevel4DepOnLevel3 && this.VariantLevel4obj.IsLevel3DepOnLevel2 && this.VariantLevel4obj.IsLevel2DepOnLevel1)\n {\n this.GetVariant1ByModelId(this.VariantLevel4obj.ProductModel);\n if(this.VariantLevel4obj.Level1Id != null)\n {\n this.GetVariant2ByVariant1Id(this.VariantLevel4obj.Level1Id);\n }\n if(this.VariantLevel4obj.Level2Id != null)\n {\n this.GetVariant3ByVariant2Id(this.VariantLevel4obj.Level2Id);\n }\n \n }\n else if(this.VariantLevel4obj.IsLevel4DepOnLevel3 && this.VariantLevel4obj.IsLevel3DepOnLevel2 && !this.VariantLevel4obj.IsLevel2DepOnLevel1)\n {\n this.GetVariant2ByModelId(this.VariantLevel4obj.ProductModel);\n if(this.VariantLevel4obj.Level2Id!=null)\n {\n this.GetVariant3ByVariant2Id(this.VariantLevel4obj.Level2Id);\n }\n \n }\n else{\n this.GetVariant3ByModelId(this.VariantLevel4obj.ProductModel);\n }\n // if(this.VariantLevel4obj.IsLevel4DepOnLevel3)\n // {\n // this.GetVariant1ByModelId(this.VariantLevel4obj.ProductModel);\n // this.GetVariant2ByVariant1Id(this.VariantLevel4obj.Level1Id);\n // this.GetVariant3ByVariant2Id(this.VariantLevel4obj.Level2Id);\n // }\n // else{\n // this.GetVariant3ByModelId(this.VariantLevel4obj.ProductModel);\n // }\n \n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetVariant3ByModelId(ModelId: number)// other than TC and TR\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel3\", \"GetVariant3ByModelId\", queryString).subscribe((data: any) => {\n this.Level3arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n GetAllMountingPosition(ModelId: number)//For TC and TC\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel4\", \"GetAllMountingPosition\", queryString).subscribe((data: any) => {\n this.Level4arr = this.VariantLevel4obj.Level4.concat(data);\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n\n GetVariant1ByModelId(ModelId: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel1\", \"GetVariant1ByModelId\", queryString).subscribe((data: any) => {\n this.Variant1arr = data;\n this.Variant1arr = this.Variant1arr.sort((a, b) => a.Level1.localeCompare(b.Level1));\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n \n GetVariant2ByVariant1Id(Variant1: number) {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Variant1=\" + Variant1;\n queryString += \"&ProductSeriesId=\" + this.VariantLevel4obj.ProductSeries;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByVariant1Id\", queryString).subscribe((data: any) => {\n this.Variant2arr = data;\n\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n GetVariant3ByVariant2Id(Variant2: number)\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Variant2=\" + Variant2;\n queryString += \"&ProductSeriesId=\" + this.VariantLevel4obj.ProductSeries;\n this.CommonService.GetData(\"ProductVariantLevel3\", \"GetVariant3ByVariant2Id\", queryString).subscribe((data: any) => {\n this.Level3arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n GetVariant2ByModelId(ModelId: number)// other than TC and TR\n {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"ProductModel=\" + ModelId;\n this.CommonService.GetData(\"ProductVariantLevel2\", \"GetVariant2ByModelId\", queryString).subscribe((data: any) => {\n this.Variant2arr = data;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n /*******************************************************************************\n * End get data for add variant level-1\n * ******************************************************************************/\n\n EditDetails() {\n this.isEditable = false;\n this.FormStatus = \"Edit\";\n const appConfig = this.appConfigService.getConfig();\n this.titleService.setTitle(`Edit Product Variant Level 4 - ${appConfig.titleName}`);\n // this.titleService.setTitle(\"Edit Product Variant Level 4 - ECOTECH\");\n }\n onIsPriceOnRequest(event: any) {\n if (event.checked) {\n this.VariantLevel4obj.Level4Price = 0;\n }\n }\n\n onVariant1Selected(event: any)\n {\n this.VariantLevel4obj.Level2Id = null;\n this.VariantLevel4obj.Level3Id = null;\n this.GetVariant2ByVariant1Id(event.target.value);\n }\n\n onVariant2Selected(event: any)\n {\n this.VariantLevel4obj.Level3Id = null;\n this.GetVariant3ByVariant2Id(event.target.value);\n }\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n isNumberKey(evt: any) {\n this.charCode = (evt.which) ? evt.which : evt.keyCode;\n if (this.charCode != 46 && this.charCode > 31\n && (this.charCode < 48 || this.charCode > 57)) {\n return false;\n }\n else {\n return true;\n }\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n DeleteMP() {\n this.VariantLevel4obj.Level4 = [];\n for (var i = 0; i < this.Level4Currdata.length; i++) {\n var obj = this.Level4arr.find(x => x.Level1 == this.Level4Currdata[i])\n this.VariantLevel4obj.Level4.push(obj);\n }\n this.VariantLevel4obj.Level4 = this.VariantLevel4obj.Level4.filter(x => x.Id != null);\n if (this.VariantLevel4obj.Level4.length == 0) {\n this.toastr.warning(\"This \" + this.VariantLevel4obj.Label_Variant4 + \" does not exist for \" + this.VariantLevel4obj.ModelName + \" product model\")\n this.VariantLevel4obj.Level4 = [];\n }\n else {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to delete this \" + this.VariantLevel4obj.Label_Variant4 + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel4', 'DeleteMountingPosition', this.VariantLevel4obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel4obj.Label_Variant4 + ' deleted successfully!');\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(\"Failed to delete this \" + this.VariantLevel4obj.Label_Variant4 + \" because it has some dependency!\");\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to delete ' + this.VariantLevel4obj.Label_Variant4 + '!');\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to delete ' + this.VariantLevel4obj.Label_Variant4 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n });\n }\n else {\n this.VariantLevel4obj.Level4 = [];\n }\n });\n }\n }\n\n onSubmit(myform: any) {\n\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to update this \" + this.VariantLevel4obj.Label_Variant4 + \"?\"\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n this.showLoader = true;\n if (this.VariantLevel4obj.SeriesName == 'TC' || this.VariantLevel4obj.SeriesName == 'TR') {\n this.VariantLevel4obj.Level4 = [];\n }\n\n for (var i = 0; i < this.Level4Currdata.length; i++) {\n var obj = this.Level4arr.find(x => x.Level1 == this.Level4Currdata[i]);\n this.VariantLevel4obj.Level4.push(obj);\n }\n this.CommonService.PostData('ProductVariantLevel4', 'Update', this.VariantLevel4obj, null).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success(this.VariantLevel4obj.Label_Variant4 + ' updated successfully!');\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning(this.VariantLevel4obj.Label_Variant4 + ' already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to update ' + this.VariantLevel4obj.Label_Variant4 + '!');\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n this.showLoader = false;\n }\n\n\n }, error => {\n this.toastr.error('Failed to update ' + this.VariantLevel4obj.Label_Variant4 + '!');\n this.showLoader = false;\n this.router.navigate(['/VariantLevel4', this.VariantLevel4obj.ProductSeries, this.VariantLevel4obj.Label_Variant3, this.VariantLevel4obj.Label_Variant4]);\n });\n }\n });\n }\n OpenPopupAddMountingPosition()\n {\n this.MountingPositionName=\"\";\n }\n AddMountingPosition(myform: any) {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to add this Mounting Position ?\",\n }\n });\n\n dialogRef.afterClosed().subscribe(dialogResult => {\n\n if (dialogResult) {\n\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"MountingPositionName=\" + this.MountingPositionName;\n this.CommonService.PostData('ProductVariantLevel4', 'AddMountingPosition', null, queryString).subscribe((data: any) => {\n let result = data;\n\n if (result.ResponseCode == 1) {\n this.toastr.success('MountingPosition added successfully!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel4obj.ProductModel != null && this.VariantLevel4obj.ProductModel != undefined\n && this.VariantLevel4obj.ProductModel != 0)) {\n\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel );\n }\n this.showLoader = false;\n }\n else if (result.ResponseCode == 0) {\n this.toastr.warning('MountingPosition already exists!');\n this.showLoader = false;\n }\n else {\n this.toastr.error('Failed to add MountingPosition!');\n this.closebutton.nativeElement.click();\n if ((this.VariantLevel4obj.ProductModel != null && this.VariantLevel4obj.ProductModel != undefined\n && this.VariantLevel4obj.ProductModel != 0) ) {\n\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel );\n }\n this.showLoader = false;\n }\n\n }, error => {\n this.toastr.error('Failed to add MountingPosition!');\n this.closebutton.nativeElement.click();\n this.showLoader = false;\n if ((this.VariantLevel4obj.ProductModel != null && this.VariantLevel4obj.ProductModel != undefined\n && this.VariantLevel4obj.ProductModel != 0)) {\n\n this.GetAllMountingPosition(this.VariantLevel4obj.ProductModel );\n }\n });\n }\n });\n\n\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant4Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{FormStatus}} {{VariantLevel4obj.Label_Variant4}}\n

    \n
    \n
    \n\n
    \n
    \n * Marked fields are\n mandatory\n
    \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    Add MountingPosition
    \n \n
    \n
    \n * Marked fields are\n mandatory\n
    \n
    \n\n
    \n\n
    \n \n
    \n \n\n
    \n \n MountingPosition is required
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n   \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmDialogComponent } from 'src/app/confirm-dialog/confirm-dialog.component';\nimport { Level1Model, ProductSeries, VariantLevel4 } from 'src/app/Model/ProductModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { Title } from '@angular/platform-browser';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { AccessPermissionModel } from 'src/app/Model/WorkFlowScreenAccessModel';\nimport { AccessPermissionService } from 'src/app/Service/access-permission.service';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-variant-level4-details',\n templateUrl: './variant-level4-details.component.html',\n styleUrls: ['./variant-level4-details.component.scss']\n})\nexport class VariantLevel4DetailsComponent implements OnInit {\n displayedColumns: string[] = ['SeriesName', 'ModelName', 'Level1Name', 'Level2Name', 'Level3', 'Level3Price', 'otherType', 'Level4', 'Level4Price', 'Action'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n SeriesName: string = \"\";\n isVariant2DependsOnVariant1: boolean = false;\n isVariant3DependsOnVariant2: boolean = false;\n isVariant4DependsOnVariant3: boolean = false;\n accesspermissionobj:AccessPermissionModel[]=Array();\n AccesspermissionForRole:any[]=[];\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'ModifiedOn';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n ProductSeriesVariant4Label: string = '';\n ProductSeriesVariant3Label: string = '';\n ProductSeriesVariant1Label: string = '';\n ProductSeriesVariant2Label: string = '';\n ProductSeriesId: number;\n showLoader: boolean;\n data: any[] = [];\n ProductSeriesArr: ProductSeries = new ProductSeries();\n VariantDrpdown: string = \"\";\n UserRole: any;\n isProductVariant4Editable: boolean = false;\n constructor(private toastr: ToastrService, private CommonService: CommonService, public dialog: MatDialog, private router: Router, private route: ActivatedRoute, private titleService: Title,private accessservice: AccessPermissionService,\n private appConfigService : AppConfigService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n }\n\n ngOnInit() {\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.UserRole = localStorage.getItem(\"UserRole\");\n this.getAccess();\n //this.isProductVariant4Editable = AppGlobals.ProductMastersEditableAccessArray.filter(x => x.role == this.UserRole)[0]?.isEditable;\n this.route.params.subscribe(params => {\n this.ProductSeriesVariant3Label = params['Variant3'];\n this.ProductSeriesVariant4Label = params['Variant4'];\n this.ProductSeriesId = params['Seriesid'];\n this.pageSize = 5;\n this.pageNumber = 1;\n this.pageIndex = this.pageNumber - 1;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.SearchText = \"\";\n this.VariantDrpdown = \"Variant4\";\n this.GetAllVariantLevel4Details();\n this.getAllProductSeries();\n });\n\n\n }\n\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllVariantLevel4Details() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllVariantLevel4Details() {\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&ProductSeriesId=\" + this.ProductSeriesId; //Seires Id\n\n this.CommonService.GetData('ProductVariantLevel4', 'GetAllPagination', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n if (this.ColumnName == 'Level3Price') {\n var IsPriceOnRequestList: VariantLevel4[] = [];\n var IsNotPriceOnRequestList: VariantLevel4[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.Level3IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.Level3IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else if (this.ColumnName == 'Level4Price') {\n var IsPriceOnRequestList: VariantLevel4[] = [];\n var IsNotPriceOnRequestList: VariantLevel4[] = [];\n\n IsPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest == true);\n IsNotPriceOnRequestList = this.data.filter(x => x.IsPriceOnRequest != true);\n IsPriceOnRequestList = IsPriceOnRequestList.concat(IsNotPriceOnRequestList);\n this.dataSource = new MatTableDataSource(IsPriceOnRequestList);\n }\n else {\n this.dataSource = new MatTableDataSource(this.data);\n }\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n getAllProductSeries() {\n this.showLoader = true;\n\n let queryString = \"\";\n queryString = \"Id=\" + this.ProductSeriesId;\n\n this.CommonService.GetData(\"ProductSeries\", \"GetById\", queryString).subscribe((data: any) => {\n this.ProductSeriesArr = data;\n this.SeriesName = data.SeriesName;\n this.isVariant2DependsOnVariant1 = data.IsLevel2DepOnLevel1;\n this.isVariant3DependsOnVariant2 = data.IsLevel3DepOnLevel2;\n this.isVariant4DependsOnVariant3 = data.IsLevel4DepOnLevel3;\n this.ProductSeriesVariant1Label = data.Label_Variant1;\n this.ProductSeriesVariant2Label = data.Label_Variant2;\n this.ProductSeriesVariant3Label = data.Label_Variant3;\n this.ProductSeriesVariant4Label = data.Label_Variant4;\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllVariantLevel4Details();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllVariantLevel4Details();\n }\n }\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllVariantLevel4Details();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n\n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n\n RedirectToVariant(event: any) {\n if (this.VariantDrpdown == 'ProductModel') {\n this.router.navigate(['/ProductModel', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Options') {\n this.router.navigate(['/Options', this.ProductSeriesArr.Id]);\n }\n else if (this.VariantDrpdown == 'Variant1') {\n this.router.navigate(['/VariantLevel1', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1]);\n }\n else if (this.VariantDrpdown == 'Variant2') {\n this.router.navigate(['/VariantLevel2', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant1, this.ProductSeriesArr.Label_Variant2]);\n }\n else if (this.VariantDrpdown == 'Variant3') {\n this.router.navigate(['/VariantLevel3', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant2, this.ProductSeriesArr.Label_Variant3]);\n }\n else if (this.VariantDrpdown == 'Variant4') {\n this.router.navigate(['/VariantLevel4', this.ProductSeriesArr.Id, this.ProductSeriesArr.Label_Variant3, this.ProductSeriesArr.Label_Variant4]);\n }\n }\n \n UpdateVariantLevel4StatusById(Level4Data: VariantLevel4, CurrentStatus: boolean) {\n\n if (CurrentStatus == true) {\n //Create ConfirmDialogRef \n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to deactivate this \" + this.ProductSeriesVariant4Label + ' ?',\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n this.CommonService.PostData('ProductVariantLevel4', 'UpdateStatus', Level4Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariant4Label + \" deactivated successfully!\");\n }\n else if (data.ResponseCode == 0) {\n this.toastr.warning(\"Failed to deactivate this \" + this.ProductSeriesVariant4Label + \" because it has some dependency!\");\n }\n else {\n this.toastr.info(\"Failed to deactivate \" + this.ProductSeriesVariant4Label + \"!\");\n }\n this.GetAllVariantLevel4Details();\n }, error => {\n this.toastr.error(\"Failed to deactivate \" + this.ProductSeriesVariant4Label + \"!\");\n this.GetAllVariantLevel4Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel4Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n\n }\n });\n\n }\n else {\n //Create ConfirmDialogRef\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n maxWidth: \"400px\",\n data: {\n title: \"Are you sure?\",\n message: \"Do you want to activate this \" + this.ProductSeriesVariant4Label + \"?\"\n }\n });\n // listen to response from ConfirmDialogRef\n dialogRef.afterClosed().subscribe(dialogResult => {\n // if user pressed yes dialogResult will be true, \n // if he pressed no - it will be false\n if (dialogResult) {\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.length = 0;\n this.direction = 'desc';\n this.ColumnName = 'ModifiedOn';\n this.showLoader = true;\n\n this.CommonService.PostData('ProductVariantLevel4', 'UpdateStatus', Level4Data, null).subscribe((data: any) => {\n this.showLoader = false;\n if (data.ResponseCode == 1) {\n this.toastr.success(this.ProductSeriesVariant4Label + \" activated successfully!\");\n }\n\n else {\n this.toastr.info(\"Failed to activate \" + this.ProductSeriesVariant4Label + \"!\");\n }\n this.GetAllVariantLevel4Details();\n }, error => {\n this.toastr.error(\"Failed to activate \" + this.ProductSeriesVariant4Label + \"!\");\n this.GetAllVariantLevel4Details();\n this.showLoader = false;\n });\n\n }\n else {\n this.GetAllVariantLevel4Details();\n this.showLoader = false;\n let element: HTMLElement = document.getElementsByClassName('slideToogle')[0] as HTMLElement;\n element.click();\n }\n });\n }\n }\n\n getAccess()\n {\n this.accessservice.GetAll().subscribe((data:any)=> {\n this.accesspermissionobj=data;\n this.isProductVariant4Editable=this.accesspermissionobj.filter(x => x.Fk_RoleId == this.UserRole && x.ElementKey=='isProductLine')[0]?.IsEditable;\n \n });\n \n }\n}\n\n\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {{ProductSeriesVariant4Label}} Listing\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n {{ProductSeriesArr.SeriesName}}
    \n \n \n Product Model\n {{ProductSeriesArr.Label_Variant1}}\n \n {{ProductSeriesArr.Label_Variant2}}\n {{ProductSeriesArr.Label_Variant3}}\n {{ProductSeriesArr.Label_Variant4}}\n Product Options\n \n \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n\n\n \n \n\n\n
    Product Series {{row.SeriesName}} Product Model {{row.ModelName}} {{ProductSeriesVariant1Label}} \n {{row.Level1Name}} {{ProductSeriesVariant2Label}} \n {{row.Level2Name}} {{ProductSeriesVariant3Label}} \n {{row.Level3}} {{ProductSeriesVariant3Label + \" - Price\"}}\n (€) \n {{row.Level3IsPriceOnRequest ? 'Price on Request': row.Level3Price |indianCurrency}} \n {{ProductSeriesVariant4Label}}\n \n {{item.Level1}}{{i === row.Level4.length -1 ? '': ',' }}\n \n {{ProductSeriesVariant4Label}} \n {{row.otherType}}\n {{ProductSeriesVariant4Label + \" - Price\"}} (€) {{row.IsPriceOnRequest ? 'Price\n on Request' : row.Level4Price |indianCurrency}} Action \n \n \n \n \n \n     \n \n   {{row.Status==true ? 'Active': 'Inactive'}}\n
    \n No records found
    \n\n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n","import { Component, OnInit, Input, ɵbypassSanitizationTrustResourceUrl, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { ReportFilterViewModel } from 'src/app/Model/ReportFilterModel';\nimport { AppGlobals } from 'src/app/app.global';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EnquiryGridReportComponent } from '../enquiry-grid-report/enquiry-grid-report.component';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-customerwise-report',\n templateUrl: './customerwise-report.component.html',\n styleUrls: ['./customerwise-report.component.scss']\n})\nexport class CustomerwiseReportComponent implements OnInit {\n @Input()\n showLoader: boolean = false;\n regionList: any[] = [];\n SelectedRegion: any = undefined;\n CustomerGridData: any[] = [];\n\n reportFilterObj: ReportFilterViewModel = new ReportFilterViewModel();\n\n isProductLineSelected: boolean = false;\n isProductSeriesSelected: boolean = false;\n isProductModelSelected: boolean = false;\n isRegionSelected: boolean = false;\n selectedRegion: any;\n chartData: { category: string; value: number; }[];\n selectedProductLine: any;\n selectedProductSeries: any;\n productlineData: any;\n regionData: any;\n customerclassdata: any;\n customertypedata: any;\n segmentData: any;\n YearList: any[] = [];\n currYear: number = new Date().getFullYear();\n @ViewChild('fiterElement') fiterElement: ElementRef;\n\n isAllCustomerClasses: boolean = true;\n isAllCustomerTypes: boolean = true;\n productseriesData: { category: string; value: number; }[];\n producModeleData: { category: string; value: number; }[];\n selectedCClass: any;\n isCustomerClassSelected: boolean;\n selectedCType: any;\n CurrencyList: any;\n selectedSegment: any;\n isSegmentSelected: boolean;\n CurrencyLabel: string = \"\";\n CustCurrencyLabel: string = \"\";\n VariantLabel: string = \"\";\n // Callfrom: string = \"FromReport\";\n closeResult: string;\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'CustomerId';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n displayedColumns: string[] = ['CustomerName', 'CustomerCode', 'EnquiryCount', 'OrderIntakeAmount', 'QuotationAmount'];\n dataSourceCustomer: MatTableDataSource;\n /*************************************************************************\n End here\n *************************************************************************/\n\n constructor(private toastr: ToastrService, private commonService: CommonService,\n private titleService: Title, private route: ActivatedRoute, private modalService: NgbModal, private appConfigService : AppConfigService) { }\n\n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.showLoader = true;\n this.reportFilterObj = new ReportFilterViewModel();\n this.reportFilterObj.EnqType = \"quotation\";\n this.reportFilterObj.ReportValueType = \"amount\";\n this.reportFilterObj.CustomerClass = \"0\";\n this.reportFilterObj.CustomerType = \"0\";\n this.reportFilterObj.reporttype = \"Customer\";\n this.reportFilterObj.Year = new Date().getFullYear();\n // this.YearList = AppGlobals.YearsConstant;\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch = i;\n this.YearList.push(batch);\n k++;\n }\n this.getCurrencyList();\n }\n onYearChange() {\n this.CustomerClassWisePieChart();\n }\n\n // getYearList() {\n // this.commonService.GetData(\"Dashboard\", \"GetYearList\", null).subscribe((data: any) => {\n // this.YearList = data;\n // var check = this.YearList.filter(x=>x==new Date().getFullYear())[0];\n // if (check.length==0) this.YearList.push(new Date().getFullYear());\n // },\n // error => {\n // this.toastr.error(\"Failed to load year list!\");\n // this.showLoader = false;\n // });\n // }\n getCurrencyList() {\n this.commonService.GetData(\"Currency\", \"GetAll\", null).subscribe((data: any) => {\n this.CurrencyList = data;\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Name == 'Euro (€)')[0]?.CurrencyCode;\n this.reportFilterObj.curency = this.CurrencyList.filter(x => x.CurrencyCode == this.reportFilterObj.currencycode)[0]?.Id;\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.CustomerClassWisePieChart();\n setTimeout(() => {\n this.fiterElement.nativeElement.focus();\n }, 0);\n },\n error => {\n this.toastr.error(\"Failed to load currency list!\");\n this.showLoader = false;\n });\n }\n RegionWisePieChart() {\n let chart = am4core.create(\"RegionWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Region\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let legendContainer = am4core.create(\"regionlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = 300;\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"regionlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.regionData;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"RegionReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n\n });\n // //*************************************************************************** */\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n // \n }\n\n onCustomerClassSliceClick(sliceObj) {\n const that = this;\n this.showLoader = true;\n this.reportFilterObj.CustomerClass = sliceObj.Id;\n this.selectedCClass = sliceObj;\n this.isCustomerClassSelected = true;\n this.isAllCustomerClasses = false;\n this.isProductSeriesSelected = false;\n this.isSegmentSelected = false;\n this.callCustomerChart(true);\n }\n onCustomerTypeSliceClick(sliceObj) {\n const that = this;\n this.showLoader = true;\n this.reportFilterObj.CustomerType = sliceObj.Id;\n this.selectedCType = sliceObj;\n this.isCustomerClassSelected = true;\n this.isAllCustomerTypes = false;\n this.isProductSeriesSelected = false;\n this.isSegmentSelected = false;\n this.callCustomerChart(false);\n }\n\n CustomerTypeWisePieChart() {\n const that = this;\n let chart = am4core.create(\"CustomerTypeWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Type\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n // chart.responsive.enabled = true;\n chart.legend = new am4charts.Legend();\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n //chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.customertypedata;\n // //*************************************************************************** */\n\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerTypeReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n\n });\n // //*************************************************************************** */\n let legendContainer = am4core.create(\"ctlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"ctlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.legend.labels.template.maxWidth = 200;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n //chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n \n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onCustomerTypeSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n }\n callCustomerChart(isFromCustomerClass:boolean) {\n this.showLoader = true;\n this.isSegmentSelected = false;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n setTimeout(() => {\n this.RegionWisePieChart();\n this.ProductWisePieChart();\n //this.CustomerClassWisePieChart();\n // this.GetAllCustomerDetails();\n if(isFromCustomerClass)\n {\n this.CustomerTypeWisePieChart();\n } \n this.SegmentWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n }, error => {\n this.showLoader = false;\n });\n\n }\n CustomerClassWisePieChart() {\n const that = this;\n this.showLoader = true;\n this.isProductLineSelected = false;\n this.isProductSeriesSelected = false;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n this.CustomerGridData = data.CustomerGridData;\n let chart = am4core.create(\"CustomerClassWisePieChart\", am4charts.PieChart);\n // this.GetAllCustomerDetails();\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let title = chart.titles.create();\n title.text = \"Customer Classification\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n let legendContainer = am4core.create(\"cclegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"cclegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.hiddenState.properties.opacity = 0;\n setTimeout(() => {\n this.RegionWisePieChart();\n this.ProductWisePieChart();\n //this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.SegmentWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n chart.data = this.customerclassdata;\n // //*************************************************************************** */\n\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerClassificationReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\";\n chart.legend.valueLabels.template.textAlign = \"start\"\n // chart.responsive.useDefault = false;\n\n // chart.responsive.rules.push({\n // relevant: function(target) {\n // if (target.pixelWidth <= 400) {\n // return true;\n // } \n // return false;\n // },\n // state: function(target, stateId) { \n // if (target instanceof am4charts.Chart) {\n // var state = target.states.create(stateId);\n // state.properties.paddingTop = 0;\n // state.properties.paddingRight = 25;\n // state.properties.paddingBottom = 0;\n // state.properties.paddingLeft = 25;\n // return state;\n // } else if (target instanceof am4charts.AxisLabelCircular ||\n // target instanceof am4charts.PieTick) {\n // var state1 = target.states.create(stateId);\n // state1.properties.disabled = true;\n // return state1;\n // }\n // return null;\n // }\n // });\n \n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onCustomerClassSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n }, error => {\n this.showLoader = false;\n });\n }\n ProductWisePieChart() {\n const that = this;\n let chart = am4core.create(\"ProductWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n let title = chart.titles.create();\n title.text = \"Product Line wise\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.legend = new am4charts.Legend();\n\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.productlineData;\n // //*************************************************************************** */\n\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductLineReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n let legendContainer = am4core.create(\"pllegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"pllegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onProductSliceClick(ev.target.dataItem.dataContext);\n });\n\n }\n onProductSliceClick(sliceObj) {\n this.isProductLineSelected = true;\n this.isProductSeriesSelected = false;\n this.selectedProductLine = sliceObj;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.ProductLine = sliceObj.Id;\n this.ProductSeriesWisePieChart();\n }\n ProductSeriesWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSeriesReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductSeriesBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.hiddenState.properties.opacity = 0;\n this.chartData = this.productseriesData;\n chart.data = data.ProductSeries;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductSeriesReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n //categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n var item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = false;\n this.selectedProductSeries = item;\n this.reportFilterObj.ProductSeries = item.Id;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.ProductLine = 0;\n this.ProductModelWisePieChart();\n },\n );\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n ProductModelWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductModelReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductModelBarChart\", am4charts.XYChart);\n\n \n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductSeries.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n\n chart.hiddenState.properties.opacity = 0;\n this.chartData = this.producModeleData;\n chart.data = data.ProductModel;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductModelReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n \n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n var item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = true;\n this.selectedProductLine = item;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.Productmodal = item.Id;\n this.ProductStationWisePieChart();\n });\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n ProductStationWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductStationReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductStationBarChart\", am4charts.XYChart);\n this.VariantLabel = data.ProductModelStation_label;\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n\n chart.hiddenState.properties.opacity = 0;\n chart.data = data.ProductModelStation;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n //chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = that.VariantLabel + \"Report\"\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n SegmentWisePieChart() {\n const that = this;\n let chart = am4core.create(\"SegmentWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.hiddenState.properties.opacity = 0;\n // chart.data = this.segmentData;\n chart.data = this.segmentData;\n // //*************************************************************************** */\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SegmentReport\"\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"segmentlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"segmentlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\";\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onSegmentSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n this.showLoader = false;\n }\n onSegmentSliceClick(sliceObj) {\n this.showLoader = true;\n this.reportFilterObj.Segment = sliceObj.Id;\n this.selectedSegment = sliceObj;\n this.isSegmentSelected = true;\n this.SubSegmentWisePieChart();\n }\n SubSegmentWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSubSegmentReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"SubSegmentWiseBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedSegment.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.data = data.SubSegment;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n //chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SubSegmentReport\"\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n //categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n //categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n onEnqTypeChange() {\n this.CustomerClassWisePieChart();\n }\n onReportValueTypeChange() {\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Id == this.reportFilterObj.curency)[0]?.CurrencyCode;\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.CustomerClassWisePieChart();\n }\n AllCustomerClassChange(event: any) {\n if (event.checked) {\n this.reportFilterObj.CustomerClass = 0;\n this.selectedCClass = undefined;\n this.CustomerClassWisePieChart();\n }\n \n }\n AllCustomerTypeChange(event: any) {\n if (event.checked) {\n this.reportFilterObj.CustomerType = 0;\n this.selectedCType = undefined;\n this.CustomerClassWisePieChart();\n }\n }\n showIndicator(chart, indicator) {\n if (indicator) {\n indicator.show();\n }\n else {\n indicator = chart.tooltipContainer.createChild(am4core.Container);\n indicator.background.fill = am4core.color(\"#fff\");\n indicator.background.fillOpacity = 0.8;\n indicator.width = am4core.percent(100);\n indicator.height = am4core.percent(100);\n\n var indicatorLabel = indicator.createChild(am4core.Label);\n indicatorLabel.text = \"No data available for the selection...\";\n indicatorLabel.align = \"center\";\n indicatorLabel.valign = \"middle\";\n indicatorLabel.fontSize = 20;\n }\n }\n\n hideIndicator(indicator) {\n indicator.hide();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllCustomerDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllCustomerDetails() {\n if(this.CurrencyLabel==\"No's\")\n {\n this.reportFilterObj.curency = 3\n }\n \n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n\n this.commonService.GetData('Report', 'GetAllCustomerDetails', queryString).subscribe((data: any) => {\n \n this.CustomerGridData = data.Data;\n this.length = data.Total;\n this.dataSourceCustomer = new MatTableDataSource(this.CustomerGridData);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n\n }\n\n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllCustomerDetails();\n }\n\n sortData(event: any) {\n if (this.dataSourceCustomer.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllCustomerDetails();\n }\n }\n\n pageEvent(event: any) {\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllCustomerDetails();\n }\n\n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n\n openEnquiryPopup(CustomerObj) {\n this.reportFilterObj.currencyLable = this.CurrencyLabel;\n const modalRef = this.modalService.open(EnquiryGridReportComponent, {\n windowClass: 'ModelClass'\n });\n modalRef.componentInstance.CustomerDetails = CustomerObj;\n modalRef.componentInstance.reportFilterObj = this.reportFilterObj;\n modalRef.result.then((result) => {\n this.closeResult = `Closed with:${result}`;\n if (this.closeResult !== 'Closed with:Close click') {\n \n }\n });\n }\n\n}\n","\n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Data\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n \n All Customer Classification\n \n
    \n \n
    \n
    \n
    \n \n * Click on slice to see data Customer Classification wise.\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n All Customer Types\n \n
    \n
    \n
    \n \n
    \n \n * Click on slice to see data Customer Type wise.\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n\n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n

    \n Region Data\n (Customer Classification:\n {{selectedCClass == undefined ? 'All': selectedCClass.category}} & Customer\n Type: {{selectedCType == undefined ? 'All': selectedCType.category}} )\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Line Data\n (Customer Classification:\n {{selectedCClass == undefined ? 'All': selectedCClass.category}} & Customer\n Type: {{selectedCType == undefined ? 'All': selectedCType.category}} )\n

    \n
    \n
    \n
    \n\n
    \n
    \n \n * Click on slice to see data in details.\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Series Data\n (Customer Classification:\n {{selectedCClass == undefined ? 'All': selectedCClass.category}} & Customer\n Type: {{selectedCType == undefined ? 'All': selectedCType.category}} )\n

    \n
    \n
    \n
    \n\n
    \n
    \n \n * Click on bar to see data in details.\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n \n
    \n
    \n
    \n
    \n

    \n Segment (Customer Classification:\n {{selectedCClass == undefined ? 'All': selectedCClass.category}} & Customer\n Type: {{selectedCType == undefined ? 'All': selectedCType.category}} )\n

    \n
    \n
    \n
    \n
    \n
    \n \n * Click on slice to see segment data in details.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Sub Segment (Customer Classification:\n {{selectedCClass == undefined ? 'All': selectedCClass.category}} & Customer\n Type: {{selectedCType == undefined ? 'All': selectedCType.category}} )\n

    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n\n \n
    \n
    \n
    \n\n\n
    \n \n\n\n\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ProductLine } from 'src/app/Model/ProductModel';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { ReportFilterViewModel } from 'src/app/Model/ReportFilterModel';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AppGlobals } from 'src/app/app.global';\n\n\n@Component({\n selector: 'app-enquiry-grid-report',\n templateUrl: './enquiry-grid-report.component.html',\n styleUrls: ['./enquiry-grid-report.component.scss']\n})\nexport class EnquiryGridReportComponent implements OnInit {\n displayedColumns: string[] = ['EnquiryAutoIncrId', 'EnquiryDate','QuotationNumber','QuotationAmount','POValue'\n,'OrderWonDate','EnquiryStatus','OrderStatus'];\n dataSource: MatTableDataSource;\n disabled: boolean = false;\n UserRole: any;\n @Input() CustomerDetails;\n @Input() reportFilterObj: ReportFilterViewModel = new ReportFilterViewModel();\n AppGlobals = AppGlobals;\n QuotationDownloadPath = this.AppGlobals.QuotationFileDownloadUrl;\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'asc';\n ColumnName: string = 'EnquiryAutoIncrId';\n SearchText: string = \"\";\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n /*************************************************************************\n End here\n *************************************************************************/\n\n showLoader: boolean;\n data: any[] = [];\n constructor(private toastr: ToastrService, private CommonService: CommonService, \n public dialog: MatDialog, private titleService: Title, private route: ActivatedRoute\n ,private activeModal: NgbActiveModal) {\n }\n\n\n ngOnInit(): void {\n this.GetAllEnquiryDetails();\n }\n\n /*************************************************************************\n * Below function used for Server side Pagination,Sorting and Searching\n * (1)GetAllEnquiryDetails() - To get data for grid\n * (2)SearchParam() - searching\n * (3)sortData() - Sorting\n * (4)pageEvent() - Pagination\n * \n * ***********************************************************************/\n\n GetAllEnquiryDetails() {\n if(this.reportFilterObj.currencyLable==\"No's\")\n {\n this.reportFilterObj.curency = 3\n }\n this.showLoader = true;\n let queryString = \"\";\n queryString = \"pageNumber=\" + this.pageNumber;\n queryString += \"&pageSize=\" + this.pageSize;\n queryString += \"&searchText=\" + this.SearchText;\n queryString += \"&direction=\" + this.direction;\n queryString += \"&columnName=\" + this.ColumnName;\n queryString += \"&EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n queryString += \"&CustomerId=\"+this.CustomerDetails.CustomerId;\n \n this.CommonService.GetData('Report', 'GetAllEnquiryDetails', queryString).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n this.showLoader = false;\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n \n }\n \n SearchParam(event: any) {\n this.SearchText = event.target.value;\n this.pageNumber = 1;\n this.paginator.pageIndex = 0;\n this.GetAllEnquiryDetails();\n }\n \n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllEnquiryDetails();\n }\n }\n \n pageEvent(event: any) {\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllEnquiryDetails();\n }\n /************************************************************************\n * Grid Code End \n * **********************************************************************/\n \n /*******************************************************************************\n * Form validation method\n * ******************************************************************************/\n \n AvoidSpace(event: any) {\n if (event.which === 32 && !event.target.value.length) {\n event.preventDefault();\n }\n }\n \n /*******************************************************************************\n * End Form validation method \n * ******************************************************************************/\n closePopup() {\n this.activeModal.close('Close Click');\n }\n}\n","\n\n
    \n
    \n
    Enquiry Listing ({{CustomerDetails.CustomerName}})
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n Search\n \n \n\n
    \n\n
    \n\n
    \n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n
    Enquiry Number {{row.EnquiryNumber}} Enquiry Date/Time {{row.EnquiryDate | date: \"dd-MMM-yyyy\"}}
    {{ row.EnquiryDate |date :\"h:mm a\"}}
    Quotation Number \n {{row.QuotationNumber}}\n Quotation Amount ({{reportFilterObj.currencyLable==\"No's\"?\"INR\":reportFilterObj.currencyLable}}) {{row.QuotationAmount}} PO Value ({{reportFilterObj.currencyLable==\"No's\"?\"INR\":reportFilterObj.currencyLable}}) {{row.POValue}} Order Date/Time {{row.OrderWonDate| date: \"dd-MMM-yyyy\"}}
    {{ row.OrderWonDate |date :\"h:mm a\"}}
    Enquiry Status {{row.EnquiryStatus}} Order Status {{row.OrderStatus}}
    \n No records found
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-power-bireports',\n templateUrl: './power-bireports.component.html',\n styleUrls: ['./power-bireports.component.scss']\n})\nexport class PowerBIReportsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n\n
    \n\n
    \n \n
    \n
    \n
    \n
    \n

    \n PowerBI Reports\n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n\n\n
    \n
    \n\n\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-productmodel-columnchart',\n templateUrl: './productmodel-columnchart.component.html',\n styleUrls: ['./productmodel-columnchart.component.scss']\n})\nexport class ProductmodelColumnchartComponent implements OnInit {\n showLoader: boolean;\n chart1Data: { category: string; value: number; }[];\n\n constructor(private commonService:CommonService) { }\n\n ngOnInit(): void {\n this.commonService.RefreshHeaderFun();\n this.ProductModelWisePieChart();\n }\n ProductModelWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=Units\";\n queryString += \"&Year=2020\";\n\n let chart1 = am4core.create(\"ProductModelBarChart\", am4charts.XYChart);\n chart1.exporting.menu = new am4core.ExportMenu();\n\n let title = chart1.titles.create();\n title.text = \"Product Model wise\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart1.legend = new am4charts.Legend();\n chart1.legend.labels.template.text = \"{category}: {value.value}\";\n chart1.hiddenState.properties.opacity = 0;\n this.chart1Data = [{\n \"category\": \"North\",\n \"value\": 21\n }, {\n \"category\": \"West\",\n \"value\": 14\n }, {\n \"category\": \"South East\",\n \"value\": 19\n }, {\n \"category\": \"South\",\n \"value\": 11\n }];\n chart1.data = this.chart1Data;\n\n\n\n var categoryAxis = chart1.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n\n var valueAxis = chart1.yAxes.push(new am4charts.ValueAxis());\n\n // Create series\n var columnSeries = chart1.series.push(new am4charts.ColumnSeries());\n columnSeries.dataFields.valueY = \"value\";\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.name = \"Enquiry\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n\n columnSeries.columns.template.events.on(\"hit\", function(ev) {\n }, this);\n\n }\n\n}\n","
    \n
    \n\n
    \n
    \n
    \n

    \n Product Model\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    ","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-productseries-columnchart',\n templateUrl: './productseries-columnchart.component.html',\n styleUrls: ['./productseries-columnchart.component.scss']\n})\nexport class ProductseriesColumnchartComponent implements OnInit {\n showLoader: boolean;\n chart1Data: { category: string; value: number; }[];\n\n constructor(private commonService:CommonService) { }\n\n ngOnInit(): void {\n this.commonService.RefreshHeaderFun();\n this.ProductSeriesWisePieChart();\n }\n ProductSeriesWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"drpdnOption=Units\";\n queryString += \"&Year=2020\";\n\n let chart1 = am4core.create(\"ProductSeriesBarChart\", am4charts.XYChart);\n chart1.exporting.menu = new am4core.ExportMenu();\n\n let title = chart1.titles.create();\n title.text = \"Product Series wise\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart1.legend = new am4charts.Legend();\n chart1.legend.labels.template.text = \"{category}: {value.value}\";\n chart1.hiddenState.properties.opacity = 0;\n this.chart1Data = [{\n \"category\": \"North\",\n \"value\": 21\n }, {\n \"category\": \"West\",\n \"value\": 14\n }, {\n \"category\": \"South East\",\n \"value\": 19\n }, {\n \"category\": \"South\",\n \"value\": 11\n }];\n chart1.data = this.chart1Data;\n\n\n\n var categoryAxis = chart1.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n\n var valueAxis = chart1.yAxes.push(new am4charts.ValueAxis());\n\n // Create series\n var columnSeries = chart1.series.push(new am4charts.ColumnSeries());\n columnSeries.dataFields.valueY = \"value\";\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.name = \"Enquiry\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n\n }\n\n}\n","
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    \n Product Series\n

    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-productvariant-columnchart',\n templateUrl: './productvariant-columnchart.component.html',\n styleUrls: ['./productvariant-columnchart.component.scss']\n})\nexport class ProductvariantColumnchartComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

    productvariant-columnchart works!

    \n","import { Component, OnInit, Input, AfterViewInit, ElementRef, ViewChild } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ReportFilterViewModel } from 'src/app/Model/ReportFilterModel';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { AppGlobals } from 'src/app/app.global';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-productwise-report',\n templateUrl: './productwise-report.component.html',\n styleUrls: ['./productwise-report.component.scss']\n})\nexport class ProductwiseReportComponent implements OnInit, AfterViewInit {\n @Input()\n showLoader: boolean = false;\n reportFilterObj: ReportFilterViewModel = new ReportFilterViewModel();\n @ViewChild('fiterElement') fiterElement: ElementRef;\n\n isProductLineSelected: boolean = false;\n isProductSeriesSelected: boolean = false;\n isProductModelSelected: boolean = false;\n isRegionSelected: boolean = false;\n selectedRegion: any;\n chartData: { category: string; value: number; }[];\n selectedProductLine: any;\n selectedProductSeries: any;\n productlineData: any;\n regionData: any;\n customerclassdata: any;\n customertypedata: any;\n segmentData: any;\n YearList: any[]=[];\n currYear: number = new Date().getFullYear();\n productseriesData: { category: string; value: number; }[];\n isAllRegions: boolean = true;\n CurrencyList: any;\n selectedSegment: any;\n isSegmentSelected: boolean = false;\n selectedProductType: string = \"Product Line\";\n CurrencyLabel: string = \"\";\n VariantLabel: string = \"\";\n constructor(private toastr: ToastrService, private commonService: CommonService\n , private titleService: Title, private route: ActivatedRoute, private appConfigService : AppConfigService) { }\n\n ngAfterViewInit(): void {\n\n }\n\n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.showLoader = true;\n this.reportFilterObj = new ReportFilterViewModel();\n this.reportFilterObj.EnqType = \"quotation\";\n this.reportFilterObj.ReportValueType = \"amount\";\n this.reportFilterObj.ProductLine = \"0\";\n this.reportFilterObj.reporttype = \"productline\";\n this.reportFilterObj.Year = new Date().getFullYear();\n if (!(this.reportFilterObj.ProductSeries == undefined || this.reportFilterObj.ProductSeries == null || this.reportFilterObj.ProductSeries == 0)) {\n this.isProductSeriesSelected = true;\n }\n if (!(this.reportFilterObj.ProductSeries == undefined || this.reportFilterObj.ProductSeries == null || this.reportFilterObj.ProductSeries == 0)\n &&\n !(this.reportFilterObj.Productmodal == undefined || this.reportFilterObj.Productmodal == null || this.reportFilterObj.Productmodal == 0)) {\n this.isProductModelSelected = true;\n }\n // this.YearList = AppGlobals.YearsConstant;\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch =i;\n this.YearList.push(batch);\n k++;\n }\n this.getCurrencyList();\n }\n // getYearList() {\n // this.commonService.GetData(\"Dashboard\", \"GetYearList\", null).subscribe((data: any) => {\n // this.YearList = data;\n // var check = this.YearList.filter(x=>x==new Date().getFullYear())[0];\n // if (check.length==0) this.YearList.push(new Date().getFullYear());\n // },\n // error => {\n // this.toastr.error(\"Failed to load year list!\");\n // this.showLoader = false;\n // });\n // }\n getCurrencyList() {\n this.commonService.GetData(\"Currency\", \"GetAll\", null).subscribe((data: any) => {\n this.CurrencyList = data;\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Name == 'Euro (€)')[0]?.CurrencyCode;\n this.reportFilterObj.curency = this.CurrencyList.filter(x => x.CurrencyCode == this.reportFilterObj.currencycode)[0]?.Id;\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.ProductWisePieChart();\n setTimeout(() => {\n this.fiterElement.nativeElement.focus();\n }, 0);\n },\n error => {\n this.toastr.error(\"Failed to load currency list!\");\n this.showLoader = false;\n });\n }\n ProductWisePieChart() {\n const that = this;\n this.showLoader = true;\n let queryString = \"\";\n this.isProductLineSelected = false;\n this.isProductSeriesSelected = false;\n this.isProductModelSelected = false;\n this.isSegmentSelected = false;\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n\n chart.hiddenState.properties.opacity = 0;\n\n setTimeout(() => {\n this.RegionWisePieChart();\n this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.SegmentWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n chart.data = this.productlineData;\n // //*************************************************************************** */\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductLineReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"pllegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"pllegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.radius = am4core.percent(10);\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n let item: any = ev.target.dataItem.dataContext;\n that.onProductSliceClick(ev.target.dataItem.dataContext);\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n });\n }, error => {\n this.showLoader = false;\n });\n }\n\n CustomerClassWisePieChart() {\n let chart = am4core.create(\"CustomerClassWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Classification\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n let legendContainer = am4core.create(\"cclegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"cclegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.customerclassdata;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerClassificationReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.radius = am4core.percent(10);\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n }\n CustomerTypeWisePieChart() {\n let chart = am4core.create(\"CustomerTypeWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Type\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.customertypedata;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerTypeReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"ctlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"ctlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.radius = am4core.percent(10);\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n }\n RegionWisePieChart() {\n const that = this;\n let chart = am4core.create(\"RegionWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n let title = chart.titles.create();\n title.text = \"Region wise\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.legend = new am4charts.Legend();\n let legendContainer = am4core.create(\"regionlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = 300;\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"regionlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.regionData;\n // //*************************************************************************** */\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"RegionReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.radius = am4core.percent(10);\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n\n }\n onProductSliceClick(sliceObj) {\n this.isProductLineSelected = true;\n this.isProductSeriesSelected = false;\n this.isSegmentSelected = false;\n this.selectedProductLine = sliceObj;\n this.selectedProductType = \"Product Line\";\n this.reportFilterObj.ProductLine = sliceObj.Id;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.Productmodal = 0;\n this.isAllRegions = false;\n this.reportFilterObj.reporttype = 'productline';\n this.callProductChart();\n this.ProductSeriesWisePieChart();\n }\n ProductSeriesWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSeriesReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductSeriesBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.hiddenState.properties.opacity = 0;\n chart.data = data.ProductSeries;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductSeriesReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n // chart.responsive.enabled = true;\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n var item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = false;\n this.isSegmentSelected = false;\n this.selectedProductLine = item;\n this.selectedProductType = \"Product Series\";\n this.reportFilterObj.ProductSeries = item.Id;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.reporttype = 'productseries';\n this.callProductChart();\n this.ProductModelWisePieChart();\n },\n );\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n ProductModelWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductModelReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductModelBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n chart.hiddenState.properties.opacity = 0;\n chart.data = data.ProductModel;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n //chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductModelReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n //categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n //categoryAxis.renderer.labels.template.truncate = true;\n\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n var item: any = ev.target.dataItem.dataContext;\n this.isProductModelSelected = true;\n this.isSegmentSelected = false;\n this.selectedProductLine = item;\n this.selectedProductType = \"Product Model\";\n this.reportFilterObj.Productmodal = item.Id;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.reporttype = 'productmodel';\n this.callProductChart();\n this.ProductStationWisePieChart();\n },\n );\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n ProductStationWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductStationReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductStationBarChart\", am4charts.XYChart);\n this.VariantLabel = data.ProductModelStation_label;\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n\n chart.hiddenState.properties.opacity = 0;\n chart.data = data.ProductModelStation;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = that.VariantLabel + \"Report\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.wrap = true;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n SegmentWisePieChart() {\n const that = this;\n let chart = am4core.create(\"SegmentWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.hiddenState.properties.opacity = 0;\n // chart.data = this.segmentData;\n chart.data = this.segmentData;\n // //*************************************************************************** */\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SegmentReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"segmentlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"segmentlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.radius = am4core.percent(10);\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onSegmentSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n this.showLoader = false;\n }\n onSegmentSliceClick(sliceObj) {\n this.showLoader = true;\n this.reportFilterObj.Segment = sliceObj.Id;\n this.selectedSegment = sliceObj;\n this.isSegmentSelected = true;\n this.SubSegmentWisePieChart();\n }\n SubSegmentWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSubSegmentReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"SubSegmentWiseBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedSegment.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n\n chart.data = data.SubSegment;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n //chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SubSegmentReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start = 0;\n categoryAxis.end = 0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n callProductChart() {\n this.showLoader = true;\n this.isSegmentSelected = false;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n setTimeout(() => {\n this.RegionWisePieChart();\n this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.SegmentWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n }, error => {\n this.showLoader = false;\n });\n\n }\n onYearChange() {\n this.ProductWisePieChart();\n }\n onEnqTypeChange() {\n this.ProductWisePieChart();\n }\n onReportValueTypeChange() {\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Id == this.reportFilterObj.curency)[0]?.CurrencyCode;\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.ProductWisePieChart();\n }\n AllRegionChange(event: any) {\n if (event.checked) {\n this.reportFilterObj.ProductLine = 0;\n this.selectedProductLine = undefined;\n this.ProductWisePieChart();\n }\n }\n showIndicator(chart, indicator) {\n if (indicator) {\n indicator.show();\n }\n else {\n indicator = chart.tooltipContainer.createChild(am4core.Container);\n indicator.background.fill = am4core.color(\"#fff\");\n indicator.background.fillOpacity = 0.8;\n indicator.width = am4core.percent(100);\n indicator.height = am4core.percent(100);\n\n var indicatorLabel = indicator.createChild(am4core.Label);\n indicatorLabel.text = \"No data available for the selection...\";\n indicatorLabel.align = \"center\";\n indicatorLabel.valign = \"middle\";\n indicatorLabel.fontSize = 20;\n }\n }\n\n hideIndicator(indicator) {\n indicator.hide();\n }\n\n}\n","\n\n
    \n\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Line Data \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n \n All Products\n \n
    \n \n * Click on slice to see data in details.\n\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Series Data ({{selectedProductType}}:\n {{selectedProductLine == undefined ? 'All': selectedProductLine.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n \n * Click on bar to see data in details.\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Region Data ({{selectedProductType}}:\n {{selectedProductLine == undefined ? 'All': selectedProductLine.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Classification Data ({{selectedProductType}}:\n {{selectedProductLine == undefined ? 'All': selectedProductLine.category}})\n

    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Type Data ({{selectedProductType}}:\n {{selectedProductLine == undefined ? 'All': selectedProductLine.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n

    \n Segment ({{selectedProductType}}:\n {{selectedProductLine == undefined ? 'All': selectedProductLine.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n \n * Click on slice to see segment data in details.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Sub Segment ({{selectedProductType}}:\n {{selectedProductLine == undefined ? 'All': selectedProductLine.category}})\n

    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n\n \n\n\n","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { ReportFilterViewModel } from 'src/app/Model/ReportFilterModel';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { AppGlobals } from 'src/app/app.global';\nimport { UserRoles } from 'src/app/UserRoles';\nimport { any } from '@amcharts/amcharts4/.internal/core/utils/Array';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-regionwise-report',\n templateUrl: './regionwise-report.component.html',\n styleUrls: ['./regionwise-report.component.scss']\n})\nexport class RegionwiseReportComponent implements OnInit {\n @Input()\n showLoader: boolean = false;\n regionList: any[] = [];\n SelectedRegion: any = undefined;\n\n reportFilterObj: ReportFilterViewModel = new ReportFilterViewModel();\n\n isProductLineSelected: boolean = false;\n isProductSeriesSelected: boolean = false;\n isProductModelSelected: boolean = false;\n isRegionSelected: boolean = false;\n selectedRegion: any;\n chartData: { category: string; value: number; }[];\n selectedProductLine: any;\n selectedProductSeries: any;\n productlineData: any;\n regionData: any;\n customerclassdata: any;\n customertypedata: any;\n segmentData: any;\n YearList: any[]=[];\n currYear: number = new Date().getFullYear();\n isAllRegions: boolean = true;\n productseriesData: { category: string; value: number; }[];\n producModeleData: { category: string; value: number; }[];\n CurrencyList: any;\n selectedSegment: any;\n isSegmentSelected: boolean = false;\n role: string;\n regionLocked: boolean;\n CurrencyLabel: string = \"\";\n VariantLabel: string = \"\";\n @ViewChild('fiterElement') fiterElement: ElementRef;\n IsRegionDataEmpty: any;\n QuotationPdfGenerationHostPath:any;\n\n constructor(private toastr: ToastrService, private commonService: CommonService,\n private titleService: Title, private route: ActivatedRoute, private appConfigService : AppConfigService) { }\n \n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n this.QuotationPdfGenerationHostPath=appConfig.QuotationPdfGenerationHostPath;\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.showLoader = true;\n this.reportFilterObj = new ReportFilterViewModel();\n this.reportFilterObj.EnqType = \"quotation\";\n this.reportFilterObj.ReportValueType = \"amount\";\n this.reportFilterObj.Region = \"0\";\n this.reportFilterObj.reporttype = \"Region\";\n this.reportFilterObj.Year = new Date().getFullYear();\n //this.YearList = AppGlobals.YearsConstant;\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch =i;\n this.YearList.push(batch);\n k++;\n }\n\n //LOCK THE REGION DROPDOWN FOR SALES ENGINEER\n this.role = localStorage.getItem(\"UserRole\");\n if (this.role == UserRoles.SalesEngineer || this.role == UserRoles.RegionalSalesManager || this.role == UserRoles.AreaSalesManager\n || this.role == UserRoles.Distributor || this.role == UserRoles.ChannelPartner || this.role == UserRoles.Agent) {\n this.regionLocked = true;\n this.reportFilterObj.Region = parseInt(localStorage.getItem(\"RegionID\"));\n this.commonService.GetUserProfileData('Account', 'GetUserProfileInfo').subscribe((data: any) => {\n this.selectedRegion = any;\n this.selectedRegion.category = data.RegionName;\n setTimeout(() => {\n this.fiterElement.nativeElement.focus();\n }, 0);\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n\n });\n }\n else {\n this.regionLocked = false;\n }\n\n this.getCurrencyList();\n\n }\n onYearChange() {\n this.RegionWisePieChart();\n }\n // getYearList() {\n // this.commonService.GetData(\"Dashboard\", \"GetYearList\", null).subscribe((data: any) => {\n // this.YearList = data;\n // let check = this.YearList.filter(x=>x==new Date().getFullYear())[0];\n // if (check.length==0) this.YearList.push(new Date().getFullYear());\n // },\n // error => {\n // this.toastr.error(\"Failed to load year list!\");\n // this.showLoader = false;\n // });\n // }\n\n getCurrencyList() {\n this.commonService.GetData(\"Currency\", \"GetAll\", null).subscribe((data: any) => {\n this.CurrencyList = data;\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Name == 'Euro (€)')[0]?.CurrencyCode;\n this.reportFilterObj.curency = this.CurrencyList.filter(x => x.CurrencyCode == this.reportFilterObj.currencycode)[0]?.Id;\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.RegionWisePieChart();\n setTimeout(() => {\n this.fiterElement.nativeElement.focus();\n }, 0);\n },\n error => {\n this.toastr.error(\"Failed to load currency list!\");\n this.showLoader = false;\n });\n }\n RegionWisePieChart() {\n const that = this;\n this.showLoader = true;\n this.isSegmentSelected = false;\n this.isProductLineSelected = false;\n this.isProductSeriesSelected = false;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"RegionWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.hiddenState.properties.opacity = 0;\n\n setTimeout(() => {\n this.ProductWisePieChart();\n this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.SegmentWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n \n\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n chart.data = this.regionData;\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"regionlegenddiv\", am4core.Container);\n chart.responsive.enabled = true;\n legendContainer.width = am4core.percent(100);\n legendContainer.height =300\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n function resizeLegend(ev) {\n document.getElementById(\"regionlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n\n \n\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsRegionDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsRegionDataEmpty = true;\n }\n var indicator;\n if (IsRegionDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"RegionReport\";\n\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n\n //INSIDE LABELS\n // series.ticks.template.disabled = true;\n // series.alignLabels = false;\n // //series.labels.template.text = \"{value.percent.formatNumber('#.0')}%\";\n // series.labels.template.radius = am4core.percent(-20);\n // series.labels.template.fill = am4core.color(\"white\");\n\n //\n\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onRegionSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n }, error => {\n this.showLoader = false;\n });\n }\n\n showIndicator(chart, indicator) {\n if (indicator) {\n indicator.show();\n }\n else {\n indicator = chart.tooltipContainer.createChild(am4core.Container);\n indicator.background.fill = am4core.color(\"#fff\");\n indicator.background.fillOpacity = 0.8;\n indicator.width = am4core.percent(100);\n indicator.height = am4core.percent(100);\n\n var indicatorLabel = indicator.createChild(am4core.Label);\n indicatorLabel.text = \"No data available for the selection...\";\n indicatorLabel.align = \"center\";\n indicatorLabel.valign = \"middle\";\n indicatorLabel.fontSize = 20;\n }\n }\n\n hideIndicator(indicator) {\n indicator.hide();\n }\n\n onRegionSliceClick(sliceObj) {\n const that = this;\n this.showLoader = true;\n this.reportFilterObj.Region = sliceObj.Id;\n this.selectedRegion = sliceObj;\n this.isRegionSelected = true;\n this.isAllRegions = false;\n this.isSegmentSelected = false;\n this.isProductSeriesSelected = false;\n this.isProductLineSelected = false;\n this.isProductModelSelected = false;\n this.callRegionChart();\n }\n callRegionChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n setTimeout(() => {\n this.ProductWisePieChart();\n this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.SegmentWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n }, error => {\n this.showLoader = false;\n });\n\n }\n CustomerClassWisePieChart() {\n let chart = am4core.create(\"CustomerClassWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Classification\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n chart.hiddenState.properties.opacity = 0;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n let legendContainer = am4core.create(\"cclegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n\n function resizeLegend(ev) {\n document.getElementById(\"cclegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.data = this.customerclassdata;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerClassificationReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n\n let series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n // chart.legend.valueLabels.template.align = \"left\"\n // chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n chart.legend.valueLabels.template.wrap = true;\n\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n }\n CustomerTypeWisePieChart() {\n let chart = am4core.create(\"CustomerTypeWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Type\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n let legendContainer = am4core.create(\"ctlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n\n function resizeLegend(ev) {\n document.getElementById(\"ctlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n // chart.hiddenState.properties.opacity = 0;\n\n let series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n\n chart.data = this.customertypedata;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerTypeReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n }\n\n ProductWisePieChart() {\n const that = this;\n let chart = am4core.create(\"ProductWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n let title = chart.titles.create();\n title.text = \"Product Line wise\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.legend = new am4charts.Legend();\n let legendContainer = am4core.create(\"pllegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n\n function resizeLegend(ev) {\n document.getElementById(\"pllegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.productlineData;\n // //*************************************************************************** */\n //const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductLineReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onProductSliceClick(ev.target.dataItem.dataContext);\n });\n\n }\n\n\n onProductSliceClick(sliceObj) {\n this.isProductLineSelected = true;\n this.isProductSeriesSelected = false;\n this.selectedProductLine = sliceObj;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.ProductLine = sliceObj.Id;\n this.ProductSeriesWisePieChart();\n }\n ProductSeriesWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSeriesReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductSeriesBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n\n chart.hiddenState.properties.opacity = 0;\n this.chartData = this.productseriesData;\n chart.data = data.ProductSeries;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n //chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductSeriesReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n // Create series\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n let item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = false;\n this.selectedProductSeries = item;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.ProductSeries = item.Id;\n this.ProductModelWisePieChart();\n },\n );\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n ProductModelWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductModelReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductModelBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductSeries.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n\n\n chart.hiddenState.properties.opacity = 0;\n this.chartData = this.producModeleData;\n chart.data = data.ProductModel;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductModelReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n // colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n let item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = true;\n this.selectedProductLine = item;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.Productmodal = item.Id;\n this.ProductStationWisePieChart();\n });\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n ProductStationWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductStationReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductStationBarChart\", am4charts.XYChart);\n this.VariantLabel = data.ProductModelStation_label;\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n\n chart.hiddenState.properties.opacity = 0;\n chart.data = data.ProductModelStation;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = that.VariantLabel + \"Report\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n // Create series\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n SegmentWisePieChart() {\n const that = this;\n let chart = am4core.create(\"SegmentWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.hiddenState.properties.opacity = 0;\n // chart.data = this.segmentData;\n chart.data = this.segmentData;\n // //*************************************************************************** */\n //const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SegmentReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"segmentlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n\n function resizeLegend(ev) {\n document.getElementById(\"segmentlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\";\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n\n let series = chart.series.push(new am4charts.PieSeries());\n\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == 'units') {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onSegmentSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n this.showLoader = false;\n }\n onSegmentSliceClick(sliceObj) {\n this.showLoader = true;\n this.reportFilterObj.Segment = sliceObj.Id;\n this.selectedSegment = sliceObj;\n this.isSegmentSelected = true;\n this.SubSegmentWisePieChart();\n }\n SubSegmentWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSubSegmentReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"SubSegmentWiseBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedSegment.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.data = data.SubSegment;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SubSegmentReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n\n });\n // //*************************************************************************** */\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.wrap = true;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n valueAxis.min = 0;\n valueAxis.extraMax = 0.5;\n\n if (this.reportFilterObj.ReportValueType == 'units') {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n let val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n\n // Create series\n let columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == 'units') {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n columnSeries.columns.template.interactionsEnabled = true;\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n onEnqTypeChange() {\n this.RegionWisePieChart();\n }\n onReportValueTypeChange() {\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Id == this.reportFilterObj.curency)[0]?.CurrencyCode;\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.RegionWisePieChart();\n }\n onCurrencyChange() {\n this.RegionWisePieChart();\n }\n AllRegionChange(event: any) {\n if (event.checked) {\n this.reportFilterObj.Region = 0;\n this.selectedRegion = undefined;\n this.RegionWisePieChart();\n }\n }\n generatePDF() {\n this.showLoader = true;\n let finaldata = document.getElementById('ExportQuotation').innerHTML;\n let finalheaderdata = document.getElementById('ExportQuotationHeader').innerHTML;\n\n const oobj = {\n \"Htmlcontent\": finaldata + '',\n \"HeaderHTML\": finalheaderdata + '',\n \"enquiryid\": 87,\n \"fileName\": 'DemoPDF_' + 87,\n }\n this.commonService.getpdf('Enquiry', 'getPDF', oobj).subscribe(result => {\n const url = this.QuotationPdfGenerationHostPath+ 'uploads/pdf/' + result;\n this.toastr.success('Data Exported Successfuly!');\n\n this.showLoader = false;\n\n })\n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Region Data\n

    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n
    \n\n
    \n \n All Regions\n \n
    \n \n * Click on slice to see data Region wise.\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Product Line Data (Region:\n {{selectedRegion == undefined ? 'All': selectedRegion.category}})\n

    \n
    \n
    \n
    \n\n
    \n
    \n \n * Click on slice to see data in details.\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Series Data (Region:\n {{selectedRegion == undefined ? 'All': selectedRegion.category}})\n

    \n
    \n
    \n
    \n\n
    \n
    \n \n * Click on bar to see data in details.\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Classification Data (Region:\n {{selectedRegion == undefined ? 'All': selectedRegion.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Type Data (Region:\n {{selectedRegion == undefined ? 'All': selectedRegion.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Segment (Region:\n {{selectedRegion == undefined ? 'All': selectedRegion.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n \n * Click on slice to see segment data in details.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Sub Segment (Region:\n {{selectedRegion == undefined ? 'All': selectedRegion.category}})\n

    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n\n\n\n","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from 'src/app/Service/common.service';\nimport { SlowBuffer } from 'buffer';\nimport { ReportFilterViewModel } from 'src/app/Model/ReportFilterModel';\nimport { ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { AppGlobals } from 'src/app/app.global';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\n\n@Component({\n selector: 'app-segmentwise-report',\n templateUrl: './segmentwise-report.component.html',\n styleUrls: ['./segmentwise-report.component.scss']\n})\nexport class SegmentwiseReportComponent implements OnInit {\n @Input()\n showLoader: boolean = false;\n regionList: any[] = [];\n SelectedRegion: any = undefined;\n\n reportFilterObj: ReportFilterViewModel = new ReportFilterViewModel();\n\n isProductLineSelected: boolean = false;\n isProductSeriesSelected: boolean = false;\n isProductModelSelected: boolean = false;\n chartData: { category: string; value: number; }[];\n selectedProductLine: any;\n selectedProductSeries: any;\n productlineData: any;\n regionData: any;\n customerclassdata: any;\n customertypedata: any;\n segmentData: any;\n YearList: any[]=[];\n currYear: number = new Date().getFullYear();\n productseriesData: { category: string; value: number; }[];\n producModeleData: { category: string; value: number; }[];\n selectedSegment: any;\n isSegmentSelected: boolean = false;\n isAllSegments: boolean = true;\n CurrencyList: any;\n CurrencyLabel: string = \"\";\n VariantLabel: string = \"\";\n @ViewChild('fiterElement') fiterElement: ElementRef;\n\n\n constructor(private toastr: ToastrService, private commonService: CommonService,\n private titleService: Title, private route: ActivatedRoute, private appConfigService : AppConfigService) { }\n \n ngOnInit() {\n this.commonService.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.showLoader = true;\n this.reportFilterObj = new ReportFilterViewModel();\n this.reportFilterObj.EnqType = \"quotation\";\n this.reportFilterObj.ReportValueType = \"amount\";\n this.reportFilterObj.Segment = \"0\";\n this.reportFilterObj.reporttype = \"Segment\";\n this.reportFilterObj.Year = new Date().getFullYear();\n // this.YearList = AppGlobals.YearsConstant;\n let k = 1;\n for (let i = 2018; i <= this.currYear; i++) {\n let batch =i;\n this.YearList.push(batch);\n k++;\n }\n this.getCurrencyList();\n }\n onYearChange() {\n this.SegmentWisePieChart();\n }\n // getYearList() {\n // this.commonService.GetData(\"Dashboard\", \"GetYearList\", null).subscribe((data: any) => {\n // this.YearList = data;\n // var check = this.YearList.filter(x=>x==new Date().getFullYear())[0];\n // if (check.length==0) this.YearList.push(new Date().getFullYear());\n // },\n // error => {\n // this.toastr.error(\"Failed to load year list!\");\n // this.showLoader = false;\n // });\n // }\n getCurrencyList() {\n this.commonService.GetData(\"Currency\", \"GetAll\", null).subscribe((data: any) => {\n this.CurrencyList = data;\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Name == 'Euro (€)')[0]?.CurrencyCode;\n this.reportFilterObj.curency = this.CurrencyList.filter(x => x.CurrencyCode == this.reportFilterObj.currencycode)[0]?.Id;\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.SegmentWisePieChart();\n setTimeout(() => {\n this.fiterElement.nativeElement.focus();\n }, 0);\n },\n error => {\n this.toastr.error(\"Failed to load currency list!\");\n this.showLoader = false;\n });\n }\n SegmentWisePieChart() {\n const that = this;\n this.showLoader = true;\n this.isSegmentSelected = false;\n this.isProductLineSelected = false;\n this.isProductSeriesSelected = false;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"SegmentWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n chart.legend.labels.template.text = \"{category}: {value.value}\";\n chart.hiddenState.properties.opacity = 0;\n\n setTimeout(() => {\n this.ProductWisePieChart();\n this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.RegionWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n chart.data = this.segmentData;\n // //*************************************************************************** */\n\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SegmentReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Segment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"legenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"legenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n var series = chart.series.push(new am4charts.PieSeries());\n\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onSegmentSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n }, error => {\n this.showLoader = false;\n });\n }\n onSegmentSliceClick(sliceObj) {\n const that = this;\n this.showLoader = true;\n this.reportFilterObj.Segment = sliceObj.Id;\n this.selectedSegment = sliceObj;\n this.isSegmentSelected = true;\n this.isAllSegments = false;\n this.isProductSeriesSelected = false;\n this.SubSegmentWisePieChart();\n this.callSegmentChart();\n }\n callSegmentChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionReport\", queryString).subscribe((data: any) => {\n this.regionData = data.Region;\n this.productlineData = data.ProductLine;\n this.customerclassdata = data.CustomerClass;\n this.customertypedata = data.CustomerType;\n this.segmentData = data.Segment;\n setTimeout(() => {\n this.ProductWisePieChart();\n this.CustomerClassWisePieChart();\n this.CustomerTypeWisePieChart();\n this.RegionWisePieChart();\n this.showLoader = false;\n }, 3000);\n\n }, error => {\n this.showLoader = false;\n });\n\n }\n SubSegmentWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSubSegmentReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"SubSegmentWiseBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedSegment.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n\n\n chart.data = data.SubSegment;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"SubSegmentReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"SubSegment\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n //categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n CustomerClassWisePieChart() {\n let chart = am4core.create(\"CustomerClassWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Classification\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.customerclassdata;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerClassificationReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerClassification\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"cclegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"cclegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n }\n CustomerTypeWisePieChart() {\n let chart = am4core.create(\"CustomerTypeWisePieChart\", am4charts.PieChart);\n let title = chart.titles.create();\n title.text = \"Customer Type\";\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.legend = new am4charts.Legend();\n chart.hiddenState.properties.opacity = 0;\n chart.data = this.customertypedata;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"CustomerTypeReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"CustomerType\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n\n let legendContainer = am4core.create(\"ctlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"ctlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n }\n ProductWisePieChart() {\n const that = this;\n let chart = am4core.create(\"ProductWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n let title = chart.titles.create();\n chart.legend = new am4charts.Legend();\n let legendContainer = am4core.create(\"productlinelegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height = am4core.percent(100);\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n function resizeLegend(ev) {\n document.getElementById(\"productlinelegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n chart.data = this.productlineData;\n // //*************************************************************************** */\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductLineReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductLine\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n var series = chart.series.push(new am4charts.PieSeries());\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\"\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n that.onProductSliceClick(ev.target.dataItem.dataContext);\n });\n\n }\n onProductSliceClick(sliceObj) {\n this.isProductLineSelected = true;\n this.isProductSeriesSelected = false;\n this.selectedProductLine = sliceObj;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.ProductLine = sliceObj.Id;\n this.ProductSeriesWisePieChart();\n }\n ProductSeriesWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionSeriesReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductSeriesBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n chart.hiddenState.properties.opacity = 0;\n this.chartData = this.productseriesData;\n chart.data = data.ProductSeries;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductSeriesReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductSeries\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.wrap = true;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n columnSeries.columns.template.interactionsEnabled = true;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n var item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = false;\n this.selectedProductSeries = item;\n this.reportFilterObj.Productmodal = 0;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.ProductSeries = item.Id;\n this.ProductModelWisePieChart();\n },\n );\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n\n }\n ProductModelWisePieChart() {\n\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductModelReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductModelBarChart\", am4charts.XYChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductSeries.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n\n chart.hiddenState.properties.opacity = 0;\n this.chartData = this.producModeleData;\n chart.data = data.ProductModel;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"ProductModelReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"ProductModel\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n columnSeries.columns.template.events.on(\"hit\", ev => {\n var item: any = ev.target.dataItem.dataContext;\n this.isProductSeriesSelected = true;\n this.isProductModelSelected = true;\n this.selectedProductLine = item;\n this.reportFilterObj.ProductSeries = 0;\n this.reportFilterObj.ProductLine = 0;\n this.reportFilterObj.Productmodal = item.Id;\n this.ProductStationWisePieChart();\n });\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n ProductStationWisePieChart() {\n this.showLoader = true;\n let queryString = \"\";\n queryString += \"EnqType=\" + this.reportFilterObj.EnqType;\n queryString += \"&ReportValueType=\" + this.reportFilterObj.ReportValueType;\n queryString += \"&Year=\" + this.reportFilterObj.Year;\n queryString += \"&Region=\" + this.reportFilterObj.Region;\n queryString += \"&ProductLine=\" + this.reportFilterObj.ProductLine;\n queryString += \"&ProductSeries=\" + this.reportFilterObj.ProductSeries;\n queryString += \"&Productmodal=\" + this.reportFilterObj.Productmodal;\n queryString += \"&CustomerClass=\" + this.reportFilterObj.CustomerClass;\n queryString += \"&CustomerType=\" + this.reportFilterObj.CustomerType;\n queryString += \"&Segment=\" + this.reportFilterObj.Segment;\n queryString += \"&reporttype=\" + this.reportFilterObj.reporttype;\n queryString += \"¤cy=\" + this.reportFilterObj.curency;\n this.commonService.GetData(\"Report\", \"GetRegionProductStationReport\", queryString).subscribe((data: any) => {\n let chart = am4core.create(\"ProductStationBarChart\", am4charts.XYChart);\n this.VariantLabel = data.ProductModelStation_label;\n // chart.exporting.menu = new am4core.ExportMenu();\n\n let title = chart.titles.create();\n title.text = this.selectedProductLine.category;\n title.fontSize = 15;\n title.fontWeight = \"bold\";\n title.marginBottom = 30;\n title.wrap = true;\n title.maxWidth=350;\n \n chart.hiddenState.properties.opacity = 0;\n chart.data = data.ProductModelStation;\n // //*************************************************************************** */\n const that = this;\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarY = new am4core.Scrollbar();\n // chart.cursor = new am4charts.XYCursor();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY.exportable = false;\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = that.VariantLabel + \"Report\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": that.VariantLabel,\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 30;\n // categoryAxis.renderer.labels.template.rotation = -45;\n categoryAxis.renderer.labels.template.maxWidth = 100;\n categoryAxis.renderer.labels.template.wrap = true;\n // categoryAxis.renderer.labels.template.truncate = true;\n categoryAxis.renderer.labels.template.tooltipText = '{category}';\n /**************Scrolling Start End Point**************** */\n categoryAxis.start=0;\n categoryAxis.end=0.5;\n /**************End Scrolling Start End Point**************** */\n var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.extraMax = 0.5;\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = text == \"0.000\" ? \"0\" : text;\n return val;\n });\n if (this.reportFilterObj.ReportValueType == \"units\") {\n valueAxis.title.text = \"No.\";\n chart.numberFormatter.numberFormat = \"0\";\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text, target) {\n var val = parseFloat(text) % 1 != 0 ? \"\" : parseInt(text).toString();\n return val;\n });\n }\n else {\n // if (this.reportFilterObj.curency == 1) valueAxis.title.text = \"USD\";\n // if (this.reportFilterObj.curency == 2) valueAxis.title.text = \"EURO\";\n // if (this.reportFilterObj.curency == 3) valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"USD\") valueAxis.title.text = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") valueAxis.title.text = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") valueAxis.title.text = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") valueAxis.title.text = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") valueAxis.title.text = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") valueAxis.title.text = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") valueAxis.title.text = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") valueAxis.title.text = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") valueAxis.title.text= 'SGD';\n // chart.numberFormatter.numberFormat = \"0.000\";\n }\n // Create series\n var columnSeries = chart.series.push(new am4charts.ColumnSeries());\n if (this.reportFilterObj.ReportValueType == \"units\") {\n columnSeries.dataFields.valueY = \"unitvalue\";\n } else {\n columnSeries.dataFields.valueY = \"amountvalue\";\n }\n columnSeries.dataFields.categoryX = \"category\";\n columnSeries.columns.template.tooltipText = \"{categoryX}: [bold]{valueY}[/]\";\n columnSeries.columns.template.propertyFields.fillOpacity = \"fillOpacity\";\n columnSeries.columns.template.propertyFields.stroke = \"stroke\";\n columnSeries.columns.template.propertyFields.strokeWidth = \"strokeWidth\";\n columnSeries.columns.template.propertyFields.strokeDasharray = \"columnDash\";\n columnSeries.tooltip.label.textAlign = \"middle\";\n columnSeries.tooltip.getFillFromObject = false;\n columnSeries.tooltip.background.fill = am4core.color(\"#4a463c\");\n let colLabel = columnSeries.bullets.push(new am4charts.LabelBullet);\n colLabel.label.text = \"{valueY}\";\n //colLabel.label.rotation = 0;\n colLabel.label.fontSize = 9;\n colLabel.label.padding(0, 0, 20, 0);\n colLabel.label.truncate = false;\n colLabel.label.hideOversized = false;\n\n this.showLoader = false;\n }, error => {\n this.showLoader = false;\n });\n }\n RegionWisePieChart() {\n const that = this;\n let chart = am4core.create(\"RegionWisePieChart\", am4charts.PieChart);\n // chart.exporting.menu = new am4core.ExportMenu();\n chart.hiddenState.properties.opacity = 0;\n // chart.data = this.segmentData;\n chart.data = this.regionData;\n // //*************************************************************************** */\n chart.events.on(\"beforedatavalidated\", function (ev) {\n // check if there's data\n var IsDataEmpty = false;\n var emptyUnits;\n if (that.reportFilterObj.ReportValueType == 'units') emptyUnits = chart.data.filter(x => x.unitvalue == 0);\n if (that.reportFilterObj.ReportValueType == 'amount') emptyUnits = chart.data.filter(x => x.amountvalue == 0);\n if (emptyUnits.length == chart.data.length) {\n chart.hidden = true;\n IsDataEmpty = true;\n }\n var indicator;\n if (IsDataEmpty) {\n that.showIndicator(chart, indicator);\n }\n else if (indicator) {\n that.hideIndicator(indicator);\n }\n else {\n chart.exporting.menu = new am4core.ExportMenu();\n let options = chart.exporting.getFormatOptions(\"pdf\");\n options.addURL = false;\n chart.exporting.setFormatOptions(\"pdf\", options);\n chart.exporting.filePrefix = \"RegionReport\";\n /**************Custom Export**************** */\n chart.exporting.menu.items = [\n {\n \"label\": \"...\",\n \"menu\": [\n {\n \"label\": \"Image\",\n \"menu\": [\n { \"type\": \"png\", \"label\": \"PNG\" },\n { \"type\": \"jpg\", \"label\": \"JPG\" },\n // { \"type\": \"svg\", \"label\": \"SVG\" },\n { \"type\": \"pdf\", \"label\": \"PDF\" }\n ]\n }, {\n \"label\": \"Data\",\n \"menu\": [\n { \"type\": \"xlsx\", \"label\": \"XLSX\" },\n ]\n }, {\n \"label\": \"Print\", \"type\": \"print\"\n }\n ]\n }\n ];\n chart.exporting.extraSprites.push({\n \"sprite\": legendContainer,\n \"position\": \"bottom\",\n \"marginTop\": 30\n });\n if (that.reportFilterObj.ReportValueType == \"amount\") {\n let title = chart.titles.create();\n title.text = \"[bold]All values are in \" + that.CurrencyLabel;\n title.fill = am4core.color(\"red\");\n title.fontSize = '14px';\n title.disabled = false;\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"amountvalue\": \"Amount(\" + that.CurrencyLabel + \")\",\n }\n }\n else {\n chart.exporting.dataFields = {\n \"category\": \"Region\",\n \"unitvalue\": that.CurrencyLabel,\n }\n }\n\n /**************End Custom Export**************** */\n\n }\n });\n // //*************************************************************************** */\n chart.legend = new am4charts.Legend();\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n let legendContainer = am4core.create(\"regionlegenddiv\", am4core.Container);\n legendContainer.width = am4core.percent(100);\n legendContainer.height =300;\n chart.legend.parent = legendContainer;\n chart.events.on(\"datavalidated\", resizeLegend);\n chart.events.on(\"maxsizechanged\", resizeLegend);\n\n chart.legend.events.on(\"datavalidated\", resizeLegend);\n chart.legend.events.on(\"maxsizechanged\", resizeLegend);\n chart.legend.itemContainers.template.clickable = false;\n chart.legend.itemContainers.template.focusable = false;\n chart.legend.itemContainers.template.cursorOverStyle = am4core.MouseCursorStyle.default;\n\n function resizeLegend(ev) {\n document.getElementById(\"regionlegenddiv\").style.height = chart.legend.contentHeight + \"px\";\n }\n let markerTemplate = chart.legend.markers.template;\n markerTemplate.width = 20;\n markerTemplate.height = 20;\n chart.legend.valueLabels.template.align = \"left\"\n chart.legend.valueLabels.template.textAlign = \"start\";\n chart.legend.labels.template.maxWidth = 150;\n chart.legend.labels.template.wrap = true;\n chart.legend.labels.template.truncate = false;\n chart.legend.itemContainers.template.tooltipText = \"{category}\";\n\n var series = chart.series.push(new am4charts.PieSeries());\n\n series.dataFields.category = \"category\";\n if (this.reportFilterObj.ReportValueType == \"units\") {\n series.dataFields.value = \"unitvalue\";\n } else {\n series.dataFields.value = \"amountvalue\";\n }\n chart.legend.labels.template.text = \"[normal]{category}: [bold]{value.value}\";\n // chart.legend.scrollable = true;\n chart.legend.valueLabels.template.disabled = true;\n series.labels.template.text = \"{category}: {value.value}\";\n series.slices.template.tooltipText = \"{category}: {value.value}\";\n chart.legend.valueLabels.template.text = \"{value.value}\";\n series.slices.template.cursorOverStyle = am4core.MouseCursorStyle.pointer;\n //\n series.slices.template.events.on(\"hit\", function (ev) {\n // that.onSegmentSliceClick(ev.target.dataItem.dataContext);\n series.slices.each(function (item) {\n if (item.isActive && item != ev.target) {\n item.isActive = false;\n }\n })\n });\n this.showLoader = false;\n }\n onEnqTypeChange() {\n this.SegmentWisePieChart();\n }\n onReportValueTypeChange() {\n if (this.reportFilterObj.ReportValueType == \"amount\") {\n // if (this.reportFilterObj.curency == 1) this.CurrencyLabel = \"USD\";\n // if (this.reportFilterObj.curency == 2) this.CurrencyLabel = \"EURO\";\n // if (this.reportFilterObj.curency == 3) this.CurrencyLabel = \"INR\";\n this.reportFilterObj.currencycode = this.CurrencyList.filter(x => x.Id == this.reportFilterObj.curency)[0]?.CurrencyCode;\n if (this.reportFilterObj.currencycode == \"USD\") this.CurrencyLabel = \"USD\";\n if (this.reportFilterObj.currencycode == \"Euro\") this.CurrencyLabel = \"EURO\";\n //if (this.reportFilterObj.currencycode == \"INR\") this.CurrencyLabel = \"INR\";\n if (this.reportFilterObj.currencycode == \"VND\") this.CurrencyLabel = 'VND';\n if (this.reportFilterObj.currencycode == \"IDR\") this.CurrencyLabel = 'IDR';\n if (this.reportFilterObj.currencycode == \"PHP\") this.CurrencyLabel = 'PHP';\n if (this.reportFilterObj.currencycode == \"THB\") this.CurrencyLabel = 'THB';\n if (this.reportFilterObj.currencycode == \"MYR\") this.CurrencyLabel = 'MYR';\n if (this.reportFilterObj.currencycode == \"SGD\") this.CurrencyLabel = 'SGD';\n }\n else {\n this.CurrencyLabel = \"No's\";\n }\n this.SegmentWisePieChart();\n }\n AllRegionChange(event: any) {\n if (event.checked) {\n this.reportFilterObj.Segment = 0;\n this.selectedSegment = undefined;\n this.isSegmentSelected = false;\n this.SegmentWisePieChart();\n }\n }\n showIndicator(chart, indicator) {\n if (indicator) {\n indicator.show();\n }\n else {\n indicator = chart.tooltipContainer.createChild(am4core.Container);\n indicator.background.fill = am4core.color(\"#fff\");\n indicator.background.fillOpacity = 0.8;\n indicator.width = am4core.percent(100);\n indicator.height = am4core.percent(100);\n\n var indicatorLabel = indicator.createChild(am4core.Label);\n indicatorLabel.text = \"No data available for the selection...\";\n indicatorLabel.align = \"center\";\n indicatorLabel.valign = \"middle\";\n indicatorLabel.fontSize = 20;\n }\n }\n\n hideIndicator(indicator) {\n indicator.hide();\n }\n}\n","\n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Segment Data\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n All Segments\n \n
    \n
    \n
    \n \n * Click on slice to see data Segment wise.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n

    \n Sub Segment (Segment:\n {{selectedSegment == undefined ? 'All': selectedSegment.category}})\n

    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Region Data (Segment:\n {{selectedSegment == undefined ? 'All': selectedSegment.category}})\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Line Data (Segment:\n {{selectedSegment == undefined ? 'All': selectedSegment.category}})\n

    \n
    \n
    \n
    \n\n
    \n
    \n \n * Click on slice to see data in details.\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Product Series Data (Segment:\n {{selectedSegment == undefined ? 'All': selectedSegment.category}})\n

    \n
    \n
    \n
    \n\n
    \n
    \n \n * Click on bar to see data in details.\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Classification Data (Segment:\n {{selectedSegment == undefined ? 'All': selectedSegment.category}})\n

    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    \n Customer Type Data (Segment:\n {{selectedSegment == undefined ? 'All': selectedSegment.category}})\n

    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n\n\n
    \n
    \n\n\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { Sort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { SingleFieldModel } from 'src/app/Model/SingleFieldModel';\nimport { SiteActivityLogModel, SiteActivityLogGridFilterList, SiteActivityPaginationGrid } from 'src/app/Model/SiteActivityLogModel';\nimport { AppConfigService } from 'src/app/Service/app-config.service';\nimport { CommonService } from 'src/app/Service/common.service';\n\n@Component({\n selector: 'app-site-activity',\n templateUrl: './site-activity.component.html',\n styleUrls: ['./site-activity.component.scss']\n})\nexport class SiteActivityComponent implements OnInit {\n\n minDate: NgbDate;\n maxDate: NgbDate;\n SiteActivityLogGridFilterList: SiteActivityLogGridFilterList = new SiteActivityLogGridFilterList();\n\n EnquiryngbDateFromFiter: NgbDate | null;\n EnquiryngbDateToFiter: NgbDate | null;\n hoveredDate: NgbDate | null = null;\n\n \n displayedColumns: string[] = ['Name', 'Http_Method', 'Route', 'CreatedOn'];\n dataSource: MatTableDataSource;\n UserRole: any;\n\n /*************************************************************************\n Server side Pagination purpose\n *************************************************************************/\n pageNumber: number = 1;\n @Input() pageSize: number = 5;\n @Input() length: number;\n @Input() pageIndex: number = this.pageNumber - 1;\n direction: string = 'desc';\n ColumnName: string = 'CreatedOn';\n @Output('matSortChange') sortChange: EventEmitter;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n PaginationModel: SiteActivityPaginationGrid = new SiteActivityPaginationGrid();\n /*************************************************************************\n End here\n *************************************************************************/\n\n @Input()\n showLoader: boolean = false;\n data: SiteActivityLogModel[] = [];\n\n constructor(private toastr: ToastrService, private Service: CommonService, private route: ActivatedRoute, private titleService: Title,\n private calendar: NgbCalendar, public formatter: NgbDateParserFormatter, private cd: ChangeDetectorRef,\n private appConfigService : AppConfigService) { }\n\n ngOnInit() {\n this.Service.RefreshHeaderFun();\n const appConfig = this.appConfigService.getConfig();\n const dynamicTitle = this.route.snapshot.data['title'];\n this.titleService.setTitle(`${dynamicTitle} - ${appConfig.titleName}`);\n // this.titleService.setTitle(this.route.snapshot.data['title'] + \" - ECOTECH\");\n this.showLoader = true;\n \n this.UserRole = localStorage.getItem(\"UserRole\");\n this.GetAllSiteActivityGridFilterList()\n this.GetAllSiteActivityLogDetails();\n }\n\n \n\n GetAllSiteActivityGridFilterList()\n {\n this.Service.GetData(\"SiteActivityLog\", \"SiteActivityGridFilterList\", null).subscribe((data: any) => {\n \n this.SiteActivityLogGridFilterList.InitiatorName = data.InitiatorName;\n\n });\n }\n\n GetAllSiteActivityLogDetails() {\n this.showLoader = true;\n\n this.PaginationModel.pageNumber = this.pageNumber;\n this.PaginationModel.pageSize = this.pageSize; \n this.PaginationModel.direction = this.direction;\n this.PaginationModel.ColumnName = this.ColumnName;\n\n\n if (this.EnquiryngbDateFromFiter != undefined && this.EnquiryngbDateFromFiter != null) {\n this.PaginationModel.EnquiryDateFromFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateFromFiter = null;\n }\n\n if (this.EnquiryngbDateToFiter != undefined && this.EnquiryngbDateToFiter != null) {\n this.PaginationModel.EnquiryDateToFiter = (this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)).toDateString();\n }\n else {\n this.PaginationModel.EnquiryDateToFiter = null;\n }\n\n this.Service.PostData('SiteActivityLog', 'GetAllSiteActivityLogs', this.PaginationModel, null).subscribe((data: any) => {\n this.data = data.Data;\n this.length = data.Total;\n this.dataSource = new MatTableDataSource(this.data);\n \n this.showLoader = false;\n\n }, error => {\n this.toastr.error(\"Failed to load data!\");\n this.showLoader = false;\n });\n }\n\n\n pageEvent(event: any) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n this.pageNumber = event.pageIndex + 1;\n this.pageSize = event.pageSize;\n this.GetAllSiteActivityLogDetails();\n }\n\n sortData(event: any) {\n if (this.dataSource.filteredData != null) {\n this.direction = event.direction;\n this.ColumnName = event.active;\n this.GetAllSiteActivityLogDetails();\n }\n }\n\n /************************Date Range*************************************** */\n\n onDateSelection(date: NgbDate) {\n if (!this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter) {\n this.EnquiryngbDateFromFiter = date;\n } else if (this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && date && date.after(this.EnquiryngbDateFromFiter)) {\n this.EnquiryngbDateToFiter = date;\n } else {\n this.EnquiryngbDateToFiter = null;\n this.EnquiryngbDateFromFiter = date;\n }\n }\n\n isRange(date: NgbDate) {\n return date.equals(this.EnquiryngbDateFromFiter) || (this.EnquiryngbDateToFiter && date.equals(this.EnquiryngbDateToFiter)) || this.isInside(date) || this.isHovered(date);\n }\n\n isHovered(date: NgbDate) {\n return this.EnquiryngbDateFromFiter && !this.EnquiryngbDateToFiter && this.hoveredDate && date.after(this.EnquiryngbDateFromFiter) && date.before(this.hoveredDate);\n }\n\n isInside(date: NgbDate) {\n return this.EnquiryngbDateToFiter && date.after(this.EnquiryngbDateFromFiter) && date.before(this.EnquiryngbDateToFiter);\n }\n\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\n }\n\n /************************End Date Range*************************************** */\n\n \n OnFromDateFilterChange() {\n let EnquiryDateFromFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateFromFiter)\n let EnquiryDateToFiter = this.ConvertNgbDateToDate(this.EnquiryngbDateToFiter)\n if (EnquiryDateToFiter < EnquiryDateFromFiter) {\n this.EnquiryngbDateToFiter = this.EnquiryngbDateFromFiter;\n this.cd.detectChanges();\n\n } \n }\n\n OnToDateFilterChange() {\n\n // this.GetAllEnquiry();\n }\n \n ConvertNgbDateToDate(ngbdate: any) {\n if (ngbdate != null) {\n return new Date(ngbdate.year, ngbdate.month - 1, ngbdate.day)\n }\n\n }\n\n ResetAllFilters() {\n this.PaginationModel.EnquiryDateFromFiter = null;\n this.PaginationModel.EnquiryDateToFiter = null;\n \n this.PaginationModel.InitiatorNameFilter = [];\n this.EnquiryngbDateFromFiter = null;\n this.EnquiryngbDateToFiter = null;\n\n this.GetAllSiteActivityLogDetails();\n\n }\n}\n","\n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Activity Data\n

    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n \n
    \n 0 && PaginationModel.InitiatorNameFilter != []) ? 'InputFiledWithbtn' : 'GridFilter'\"\n [multiple]=\"true\" appendTo=\"body\" bindLabel=\"Name\"\n [clearable]=\"false\" [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\" [closeOnSelect]=\"false\"\n bindValue=\"Name\" placeholder=\"Select User\"\n [(ngModel)]=\"PaginationModel.InitiatorNameFilter\" style=\"height: 40px; line-height:30px;\n \">\n\n \n \n {{item.Name}}\n \n\n \n
    0 && PaginationModel.InitiatorNameFilter != [])\"\n (click)=\"PaginationModel.InitiatorNameFilter=[];\">\n \n \n \n
    \n\n
    \n
    \n\n
    \n\n \n\n
    \n \n
    \n \n \n
    \n \n \n \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n
    \n\n \n
    \n\n
    \n\n \n\n
    \n \n       \n\n \n
    \n \n
    \n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n \n\n \n \n\n
    User Name {{row.Name}} Action {{row.Http_Method}} Route {{row.Route}} Date {{row.CreatedOn | date:'medium':'+0530'}}
    \n
    No records found
    \n \n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { FormGroup } from '@angular/forms';\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n // return null if controls haven't initialised yet\n if (!control || !matchingControl) {\n return null;\n }\n\n // return null if another validator has already found an error on the matchingControl\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n return null;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n }\n}","import { number } from \"@amcharts/amcharts4/core\";\n\nexport const AppConfig = {\n \n footerName : getFooterName(),\n titleName : 'WSEA',\n backroundImagePath : 'assets/images/login-bg.jpg', //assets/images/eco_bg.png\n logoImageUrlPresentAboveLogin : 'assets/images/weiss-logo.png', //assets/images/eco_login_logo.png\n logoImageUrl : 'assets/images/logo-sm.png', //assets/images/ecotech_logo.png\n mailIdFormat : 'e.g. user@gmail.com',\n attendeesOfWhichComapany : 'WSEA',\n salesPersonOfWhichComapany : 'WSEA',\n documentOfWhichComapany : 'WSEA',\n businessOfWhichComapany : 'WSEA',\n opportunitiesForWhichCompany : 'WSEA',\n weissContactDetailsOfWhichCountry : 'WSEA',\n weissWithAbbreviatedCountry : 'WSEA',\n QuotationPdfGenerationHostPath:'https://sea-crm.weiss-world.com/api/',\n // QuotationPdfGenerationHostPath:'http://democrm.ecotechservices.com/api/',\n //QuotationPdfGenerationHostPath:'http://localhost:64591/',\n //QuotationPdfGenerationHostPath:'https://uat-sea.ecotechinfra.com/api/'\n };\n\n function getFooterName() {\n const currentYear = new Date().getFullYear();\n return `© ${currentYear}, WEISS ASIA AUTOMATION COMPONENTS PTE LTD`;\n }","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false \n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}